summaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorpsychocrypt <psychocrypt@users.noreply.github.com>2017-09-29 23:46:11 +0200
committerpsychocrypt <psychocrypt@users.noreply.github.com>2017-09-30 23:46:08 +0200
commit75fa2c7ec014c89812ae26e200f7083560bea372 (patch)
treea7080884ea0d1d50fd6ba50014f1b65b9bb87a0c /CMakeLists.txt
parent9e987fc079d243996995e7fac110a3bbc2d7fb1b (diff)
downloadxmr-stak-75fa2c7ec014c89812ae26e200f7083560bea372.zip
xmr-stak-75fa2c7ec014c89812ae26e200f7083560bea372.tar.gz
fix clang CUDA compile
- add clang compile section - cleanup CMake file - fix missing return value
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt33
1 files changed, 25 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 5c60292..9a24885 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -315,13 +315,17 @@ if(CMAKE_LINK_STATIC)
set(LIBS "-static-libgcc -static-libstdc++ ${LIBS}")
endif()
+# compile C files
file(GLOB SRCFILES_C "xmrstak/backend/cpu/crypto/*.c")
add_library(xmr-stak-c
STATIC
${SRCFILES_C}
)
+set_property(TARGET xmr-stak-c PROPERTY C_STANDARD 99)
+target_link_libraries(xmr-stak-c ${LIBS})
+# compile generic backend files
file(GLOB BACKEND_CPP
"xmrstak/*.cpp"
"xmrstak/backend/cpu/*.cpp"
@@ -337,22 +341,37 @@ add_library(xmr-stak-backend
)
target_link_libraries(xmr-stak-backend xmr-stak-c ${CMAKE_DL_LIBS})
+# compile CUDA backend
if(CUDA_FOUND)
file(GLOB CUDASRCFILES
"xmrstak/backend/nvidia/nvcc_code/*.cu"
"xmrstak/backend/nvidia/*.cpp")
- # build device code with nvcc
- cuda_add_library(xmrstak_cuda_backend
- SHARED
- ${CUDASRCFILES}
- )
+ if("${CUDA_COMPILER}" STREQUAL "clang")
+ # build device code with clang
+ add_library(
+ xmrstak_cuda_backend
+ SHARED
+ ${CUDASRCFILES}
+ )
+ set_target_properties(xmrstak_cuda_backend PROPERTIES COMPILE_FLAGS ${CLANG_BUILD_FLAGS})
+ set_target_properties(xmrstak_cuda_backend PROPERTIES LINKER_LANGUAGE CXX)
+ set_source_files_properties(${CUDASRCFILES} PROPERTIES LANGUAGE CXX)
+ else()
+ # build device code with nvcc
+ cuda_add_library(
+ xmrstak_cuda_backend
+ SHARED
+ ${CUDASRCFILES}
+ )
+ endif()
target_link_libraries(xmrstak_cuda_backend ${CUDA_LIBRARIES})
if(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
target_link_libraries(xmrstak_cuda_backend xmr-stak-backend)
endif()
endif()
+# compile AMD backend
if(OpenCL_FOUND)
file(GLOB OPENCLSRCFILES
"xmrstak/backend/amd/amd_gpu/*.cpp"
@@ -367,12 +386,10 @@ if(OpenCL_FOUND)
endif()
endif()
+# compile final binary
file(GLOB SRCFILES_CPP "xmrstak/cli/*.cpp")
set_source_files_properties(${SRCFILES_CPP} PROPERTIES LANGUAGE CXX)
-set_property(TARGET xmr-stak-c PROPERTY C_STANDARD 99)
-target_link_libraries(xmr-stak-c ${LIBS})
-
add_executable(xmr-stak
${SRCFILES_CPP}
)
OpenPOWER on IntegriCloud