Skip to content

Commit ed32073

Browse files
author
XMRig
committed
Initial import.
0 parents  commit ed32073

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

93 files changed

+21078
-0
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
/build

CMakeLists.txt

+127
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
cmake_minimum_required(VERSION 3.0)
2+
project(xmrig C)
3+
4+
set(HEADERS
5+
compat.h
6+
algo/cryptonight/cryptonight.h
7+
elist.h
8+
xmrig.h
9+
version.h
10+
options.h
11+
cpu.h
12+
persistent_memory.h
13+
stratum.h
14+
stats.h
15+
util.h
16+
donate.h
17+
)
18+
19+
set(HEADERS_CRYPTO
20+
crypto/c_groestl.h
21+
crypto/c_blake256.h
22+
crypto/c_jh.h
23+
crypto/c_skein.h
24+
crypto/oaes_lib.h
25+
crypto/oaes_config.h
26+
crypto/aesb.h
27+
)
28+
29+
set(HEADERS_COMPAT
30+
compat/winansi.h
31+
)
32+
33+
set(HEADERS_UTILS
34+
utils/applog.h
35+
utils/threads.h
36+
utils/summary.h
37+
)
38+
39+
set(SOURCES
40+
xmrig.c
41+
algo/cryptonight/cryptonight_common.c
42+
util.c
43+
options.c
44+
cpu.c
45+
stratum.c
46+
stats.c
47+
memory.c
48+
)
49+
50+
set(SOURCES_CRYPTO
51+
crypto/c_keccak.c
52+
crypto/c_groestl.c
53+
crypto/c_blake256.c
54+
crypto/c_jh.c
55+
crypto/c_skein.c
56+
crypto/oaes_lib.c
57+
crypto/aesb.c
58+
)
59+
60+
set(SOURCES_UTILS
61+
utils/applog.c
62+
utils/summary.c
63+
)
64+
65+
if (WIN32)
66+
set(SOURCES_OS win/cpu_win.c win/memory_win.c win/xmrig_win.c compat/winansi.c)
67+
set(EXTRA_LIBS ws2_32)
68+
add_definitions(/D_WIN32_WINNT=0x600)
69+
else()
70+
set(SOURCES_OS unix/cpu_unix.c unix/memory_unix.c unix/xmrig_unix.c)
71+
set(EXTRA_LIBS pthread)
72+
endif()
73+
74+
include_directories(.)
75+
add_definitions(/DUSE_NATIVE_THREADS)
76+
add_definitions(/D_GNU_SOURCE)
77+
add_definitions(/DDEBUG_THREADS)
78+
79+
if ("${CMAKE_BUILD_TYPE}" STREQUAL "")
80+
set(CMAKE_BUILD_TYPE Release)
81+
endif()
82+
83+
#set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes -mbmi2")
84+
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes -Wno-pointer-to-int-cast")
85+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Ofast -funroll-loops -fvariable-expansion-in-unroller -ftree-loop-if-convert-stores -fmerge-all-constants -fbranch-target-load-optimize2")
86+
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -gdwarf-2")
87+
#set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-generate")
88+
#set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -fprofile-use -fprofile-correction")
89+
90+
if (WIN32)
91+
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static")
92+
endif()
93+
94+
include_directories(compat/jansson)
95+
add_subdirectory(compat/jansson)
96+
97+
find_package(CURL REQUIRED)
98+
99+
if (CURL_FOUND)
100+
include_directories(${CURL_INCLUDE_DIRS})
101+
add_definitions(/DCURL_STATICLIB)
102+
link_directories(${CURL_LIBRARIES})
103+
endif()
104+
105+
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
106+
add_subdirectory(algo/cryptonight/bmi2)
107+
108+
set(CRYPTONIGHT64
109+
algo/cryptonight/cryptonight_av1_aesni.c
110+
algo/cryptonight/cryptonight_av2_aesni_wolf.c
111+
algo/cryptonight/cryptonight_av4_legacy.c
112+
algo/cryptonight/cryptonight_av5_aesni_experimental.c
113+
)
114+
115+
add_executable(xmrig ${HEADERS} ${HEADERS_CRYPTO} ${SOURCES} ${SOURCES_CRYPTO} ${HEADERS_UTILS} ${SOURCES_UTILS} ${HEADERS_COMPAT} ${SOURCES_COMPAT} ${SOURCES_OS} ${CRYPTONIGHT64})
116+
target_link_libraries(xmrig jansson curl cryptonight_av3_aesni_bmi2 ${EXTRA_LIBS})
117+
else()
118+
set(CRYPTONIGHT32
119+
algo/cryptonight/cryptonight_av1_aesni32.c
120+
algo/cryptonight/cryptonight_av4_legacy.c
121+
)
122+
123+
add_executable(xmrig32 ${HEADERS} ${HEADERS_CRYPTO} ${SOURCES} ${SOURCES_CRYPTO} ${HEADERS_UTILS} ${SOURCES_UTILS} ${HEADERS_COMPAT} ${SOURCES_COMPAT} ${SOURCES_OS} ${CRYPTONIGHT32})
124+
target_link_libraries(xmrig32 jansson -L${CURL_LIBRARIES} ${EXTRA_LIBS})
125+
endif()
126+
127+
source_group("HEADERS" FILES ${HEADERS})

0 commit comments

Comments
 (0)