Created
September 11, 2017 19:59
-
-
Save xmrig/8a63dc63877bcc01ed82e4911e269fb6 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
cmake_minimum_required(VERSION 3.0) | |
project(xmrig-proxy) | |
option(WITH_GOOGLE_BREAKPAD "Use Google Breakpad" OFF) | |
include (CheckIncludeFile) | |
set(HEADERS | |
src/3rdparty/align.h | |
src/App.h | |
src/Console.h | |
src/interfaces/IClientListener.h | |
src/interfaces/IConsoleListener.h | |
src/interfaces/ILogBackend.h | |
src/interfaces/IMinerListener.h | |
src/interfaces/IServerListener.h | |
src/interfaces/ISplitter.h | |
src/interfaces/IStrategy.h | |
src/interfaces/IStrategyListener.h | |
src/log/ConsoleLog.h | |
src/log/FileLog.h | |
src/log/Log.h | |
src/net/Client.h | |
src/net/Job.h | |
src/net/strategies/FailoverStrategy.h | |
src/net/strategies/SinglePoolStrategy.h | |
src/net/Url.h | |
src/Options.h | |
src/Platform.h | |
src/proxy/Addr.h | |
src/proxy/Counters.h | |
src/proxy/Hashrate.h | |
src/proxy/JobResult.h | |
src/proxy/JobResult.h | |
src/proxy/Miner.h | |
src/proxy/Miners.h | |
src/proxy/Proxy.h | |
src/proxy/Server.h | |
src/proxy/splitters/NonceMapper.h | |
src/proxy/splitters/NonceSplitter.h | |
src/proxy/splitters/NonceStorage.h | |
src/proxy/Uuid.h | |
src/Summary.h | |
src/version.h | |
) | |
set(SOURCES | |
src/App.cpp | |
src/Console.cpp | |
src/log/ConsoleLog.cpp | |
src/log/FileLog.cpp | |
src/log/Log.cpp | |
src/net/Client.cpp | |
src/net/Job.cpp | |
src/net/strategies/FailoverStrategy.cpp | |
src/net/strategies/SinglePoolStrategy.cpp | |
src/net/Url.cpp | |
src/Options.cpp | |
src/Platform.cpp | |
src/proxy/Counters.cpp | |
src/proxy/Hashrate.cpp | |
src/proxy/JobResult.cpp | |
src/proxy/LoginRequest.cpp | |
src/proxy/Miner.cpp | |
src/proxy/Miners.cpp | |
src/proxy/Proxy.cpp | |
src/proxy/Server.cpp | |
src/proxy/splitters/NonceMapper.cpp | |
src/proxy/splitters/NonceSplitter.cpp | |
src/proxy/splitters/NonceStorage.cpp | |
src/Summary.cpp | |
src/xmrig.cpp | |
) | |
if (WIN32) | |
set(SOURCES_OS | |
res/app.rc | |
src/App_win.cpp | |
src/Platform_win.cpp | |
src/proxy/Uuid_win.cpp | |
) | |
add_definitions(/DWIN32) | |
set(EXTRA_LIBS ws2_32 psapi iphlpapi userenv) | |
elseif (APPLE) | |
set(SOURCES_OS | |
src/App_unix.cpp | |
src/Platform_mac.cpp | |
src/proxy/Uuid_mac.cpp | |
) | |
find_library(CFLIB CoreFoundation) | |
set(EXTRA_LIBS ${CFLIB}) | |
else() | |
set(SOURCES_OS | |
src/App_unix.cpp | |
src/Platform_unix.cpp | |
src/proxy/Uuid_unix.cpp | |
) | |
set(EXTRA_LIBS pthread uuid) | |
endif() | |
add_definitions(/DXMRIG_PROXY_PROJECT) | |
add_definitions(/DUNICODE) | |
add_definitions(/D__STDC_FORMAT_MACROS) | |
add_definitions(/DAPP_DEVEL) | |
#add_definitions(/DAPP_DEBUG) | |
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake") | |
find_package(UV REQUIRED) | |
if ("${CMAKE_BUILD_TYPE}" STREQUAL "") | |
set(CMAKE_BUILD_TYPE Release) | |
endif() | |
set(CMAKE_CXX_STANDARD_REQUIRED ON) | |
set(CMAKE_CXX_EXTENSIONS OFF) | |
set(CMAKE_CXX_STANDARD 11) | |
# https://cmake.org/cmake/help/latest/variable/CMAKE_LANG_COMPILER_ID.html | |
if (CMAKE_CXX_COMPILER_ID MATCHES GNU) | |
if (WIN32) | |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static") | |
else() | |
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -static-libgcc -static-libstdc++") | |
endif() | |
add_definitions(/D_GNU_SOURCE) | |
#set(CMAKE_C_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -gdwarf-2") | |
if (WITH_GOOGLE_BREAKPAD) | |
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -g") | |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -g") | |
endif() | |
elseif (CMAKE_CXX_COMPILER_ID MATCHES MSVC) | |
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} /Ox /Ot /Oi /MT /GL") | |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Ox /Ot /Oi /MT /GL") | |
add_definitions(/D_CRT_SECURE_NO_WARNINGS) | |
add_definitions(/D_CRT_NONSTDC_NO_WARNINGS) | |
elseif (CMAKE_CXX_COMPILER_ID MATCHES Clang) | |
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -maes -Wall") | |
set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Ofast -funroll-loops -fmerge-all-constants") | |
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -maes -Wall -std=c++14 -fno-exceptions -fno-rtti") | |
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Ofast") | |
endif() | |
CHECK_INCLUDE_FILE (syslog.h HAVE_SYSLOG_H) | |
if (HAVE_SYSLOG_H) | |
add_definitions(/DHAVE_SYSLOG_H) | |
set(SOURCES_SYSLOG src/log/SysLog.h src/log/SysLog.cpp) | |
endif() | |
if (WITH_GOOGLE_BREAKPAD) | |
include_directories(/usr/local/include/breakpad) | |
set(GOOGLE_BREAKPAD_LIBS breakpad_client) | |
else() | |
add_definitions(/DXMRIG_NO_GOOGLE_BREAKPAD) | |
endif() | |
include_directories(src) | |
include_directories(src/3rdparty) | |
include_directories(src/3rdparty/jansson) | |
include_directories(${UV_INCLUDE_DIR}) | |
add_subdirectory(src/3rdparty/jansson) | |
add_executable(${CMAKE_PROJECT_NAME} ${HEADERS} ${SOURCES} ${SOURCES_OS} ${SOURCES_SYSLOG}) | |
target_link_libraries(${CMAKE_PROJECT_NAME} jansson ${UV_LIBRARIES} ${EXTRA_LIBS} ${GOOGLE_BREAKPAD_LIBS}) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment