Advertisement
Guest User

Untitled

a guest
Feb 28th, 2018
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.29 KB | None | 0 0
  1. cmake_minimum_required(VERSION 2.8)
  2. project(xmrig)
  3.  
  4. option(WITH_LIBCPUID "Use Libcpuid" ON)
  5. option(WITH_AEON "CryptoNight-Lite support" ON)
  6. option(WITH_HTTPD "HTTP REST API" ON)
  7.  
  8. include (CheckIncludeFile)
  9. include (cmake/cpu.cmake)
  10.  
  11.  
  12. set(HEADERS
  13. src/3rdparty/align.h
  14. src/api/Api.h
  15. src/api/ApiState.h
  16. src/api/NetworkState.h
  17. src/App.h
  18. src/Console.h
  19. src/Cpu.h
  20. src/interfaces/IClientListener.h
  21. src/interfaces/IConsoleListener.h
  22. src/interfaces/IJobResultListener.h
  23. src/interfaces/ILogBackend.h
  24. src/interfaces/IStrategy.h
  25. src/interfaces/IStrategyListener.h
  26. src/interfaces/IWorker.h
  27. src/log/ConsoleLog.h
  28. src/log/FileLog.h
  29. src/log/Log.h
  30. src/Mem.h
  31. src/net/Client.h
  32. src/net/Job.h
  33. src/net/JobId.h
  34. src/net/JobResult.h
  35. src/net/Network.h
  36. src/net/strategies/DonateStrategy.h
  37. src/net/strategies/FailoverStrategy.h
  38. src/net/strategies/SinglePoolStrategy.h
  39. src/net/SubmitResult.h
  40. src/net/Url.h
  41. src/Options.h
  42. src/Platform.h
  43. src/Summary.h
  44. src/version.h
  45. src/workers/DoubleWorker.h
  46. src/workers/Handle.h
  47. src/workers/Hashrate.h
  48. src/workers/SingleWorker.h
  49. src/workers/Worker.h
  50. src/workers/Workers.h
  51. )
  52.  
  53. set(HEADERS_CRYPTO
  54. src/crypto/c_blake256.h
  55. src/crypto/c_groestl.h
  56. src/crypto/c_jh.h
  57. src/crypto/c_keccak.h
  58. src/crypto/c_skein.h
  59. src/crypto/CryptoNight.h
  60. src/crypto/CryptoNight_test.h
  61. src/crypto/groestl_tables.h
  62. src/crypto/hash.h
  63. src/crypto/skein_port.h
  64. src/crypto/soft_aes.h
  65. )
  66.  
  67. if (XMRIG_ARM)
  68. set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/CryptoNight_arm.h)
  69. else()
  70. set(HEADERS_CRYPTO "${HEADERS_CRYPTO}" src/crypto/CryptoNight_x86.h)
  71. endif()
  72.  
  73. set(SOURCES
  74. src/api/Api.cpp
  75. src/api/ApiState.cpp
  76. src/api/NetworkState.cpp
  77. src/App.cpp
  78. src/Console.cpp
  79. src/log/ConsoleLog.cpp
  80. src/log/FileLog.cpp
  81. src/log/Log.cpp
  82. src/Mem.cpp
  83. src/net/Client.cpp
  84. src/net/Job.cpp
  85. src/net/Network.cpp
  86. src/net/strategies/DonateStrategy.cpp
  87. src/net/strategies/FailoverStrategy.cpp
  88. src/net/strategies/SinglePoolStrategy.cpp
  89. src/net/SubmitResult.cpp
  90. src/net/Url.cpp
  91. src/Options.cpp
  92. src/Platform.cpp
  93. src/Summary.cpp
  94. src/workers/DoubleWorker.cpp
  95. src/workers/Handle.cpp
  96. src/workers/Hashrate.cpp
  97. src/workers/SingleWorker.cpp
  98. src/workers/Worker.cpp
  99. src/workers/Workers.cpp
  100. src/xmrig.cpp
  101. )
  102.  
  103. set(SOURCES_CRYPTO
  104. src/crypto/c_keccak.c
  105. src/crypto/c_groestl.c
  106. src/crypto/c_blake256.c
  107. src/crypto/c_jh.c
  108. src/crypto/c_skein.c
  109. src/crypto/CryptoNight.cpp
  110. )
  111.  
  112. if (WIN32)
  113. set(SOURCES_OS
  114. res/app.rc
  115. src/App_win.cpp
  116. src/Cpu_win.cpp
  117. src/Mem_win.cpp
  118. src/Platform_win.cpp
  119. )
  120.  
  121. add_definitions(/DWIN32)
  122. set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv)
  123. elseif (APPLE)
  124. set(SOURCES_OS
  125. src/App_unix.cpp
  126. src/Cpu_mac.cpp
  127. src/Mem_unix.cpp
  128. src/Platform_mac.cpp
  129. )
  130. else()
  131. set(SOURCES_OS
  132. src/App_unix.cpp
  133. src/Cpu_unix.cpp
  134. src/Mem_unix.cpp
  135. src/Platform_unix.cpp
  136. )
  137.  
  138. set(EXTRA_LIBS pthread rt)
  139. endif()
  140.  
  141. if (CMAKE_SYSTEM_NAME STREQUAL FreeBSD)
  142. set(EXTRA_LIBS ${EXTRA_LIBS} kvm)
  143. endif()
  144.  
  145. if (CMAKE_SYSTEM_NAME MATCHES "Linux")
  146. EXECUTE_PROCESS(COMMAND uname -o COMMAND tr -d '\n' OUTPUT_VARIABLE OPERATING_SYSTEM)
  147. if (OPERATING_SYSTEM MATCHES "Android")
  148. set(EXTRA_LIBS ${EXTRA_LIBS} log)
  149. endif()
  150. endif()
  151.  
  152. add_definitions(/D__STDC_FORMAT_MACROS)
  153. add_definitions(/DUNICODE)
  154. #add_definitions(/DAPP_DEBUG)
  155.  
  156. set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
  157.  
  158. find_package(UV REQUIRED)
  159.  
  160. include(cmake/flags.cmake)
  161.  
  162. if (WITH_LIBCPUID)
  163. add_subdirectory(src/3rdparty/libcpuid)
  164.  
  165. include_directories(src/3rdparty/libcpuid)
  166. set(CPUID_LIB cpuid)
  167. set(SOURCES_CPUID src/Cpu.cpp)
  168. else()
  169. add_definitions(/DXMRIG_NO_LIBCPUID)
  170.  
  171. if (XMRIG_ARM)
  172. set(SOURCES_CPUID src/Cpu_arm.cpp)
  173. else()
  174. set(SOURCES_CPUID src/Cpu_stub.cpp)
  175. endif()
  176. endif()
  177.  
  178. CHECK_INCLUDE_FILE (syslog.h HAVE_SYSLOG_H)
  179. if (HAVE_SYSLOG_H)
  180. add_definitions(/DHAVE_SYSLOG_H)
  181. set(SOURCES_SYSLOG src/log/SysLog.h src/log/SysLog.cpp)
  182. endif()
  183.  
  184. if (NOT WITH_AEON)
  185. add_definitions(/DXMRIG_NO_AEON)
  186. endif()
  187.  
  188. if (WITH_HTTPD)
  189. find_package(MHD)
  190.  
  191. if (MHD_FOUND)
  192. include_directories(${MHD_INCLUDE_DIRS})
  193. set(HTTPD_SOURCES src/api/Httpd.h src/api/Httpd.cpp)
  194. else()
  195. message(FATAL_ERROR "microhttpd NOT found: use `-DWITH_HTTPD=OFF` to build without http deamon support")
  196. endif()
  197. else()
  198. set(MHD_LIBRARY "")
  199. add_definitions(/DXMRIG_NO_HTTPD)
  200. add_definitions(/DXMRIG_NO_API)
  201. endif()
  202.  
  203. include_directories(src)
  204. include_directories(src/3rdparty)
  205. include_directories(${UV_INCLUDE_DIR})
  206. set(CMAKE_EXE_LINKER_FLAGS "-static")
  207. #
  208. add_executable(xmrig ${HEADERS} ${SOURCES} ${SOURCES_OS} ${SOURCES_CPUID} ${HEADERS_CRYPTO} ${SOURCES_CRYPTO} ${SOURCES_SYSLOG} ${HTTPD_SOURCES})
  209. #
  210. target_link_libraries(xmrig -static-libgcc -static-libstdc++)
  211. target_link_libraries(xmrig ${UV_LIBRARIES} ${MHD_LIBRARY} ${EXTRA_LIBS} ${CPUID_LIB})
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement