-
Notifications
You must be signed in to change notification settings - Fork 0
/
CMakeLists.txt
30 lines (26 loc) · 1.23 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
cmake_minimum_required(VERSION 3.17)
project("tensor-coin LANGUAGES CXX CUDA")
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CUDA_HASH_FILES src/hash/runtime_detection.cuh src/hash/runtime_detection.cu
src/hash/cudahash.hpp src/hash/cudahash.cpp
src/hash/cudamultiply.cuh src/hash/cudamultiply.cu)
set(HASH_FILES src/hash/uhash.hpp src/hash/uhash.cpp src/hash/cpuhash.hpp
src/hash/cpuhash.cpp)
set(BLOCKCHAIN_FILES src/blockchain/block.hpp src/blockchain/block.cpp
src/blockchain/chain.hpp src/blockchain/chain.cpp
src/blockchain/auth_wallet.cpp src/blockchain/auth_wallet.hpp)
set(TEST_FILES test/main.cpp test/tests.hpp test/tests.cpp)
set(CPU_FILES ${TEST_FILES} ${BLOCKCHAIN_FILES} ${HASH_FILES})
find_package(CUDA)
if (CUDA_FOUND)
enable_language(CUDA)
add_executable(tensor-coin ${CPU_FILES} ${CUDA_HASH_FILES})
target_compile_definitions(tensor-coin PRIVATE COMPILE_WITH_CUDA)
set_target_properties(tensor-coin PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_link_libraries(tensor-coin -lcublas) # Works on Arch linux/CUDA11
else ()
add_executable(tensor-coin ${CPU_FILES})
endif ()
find_package(OpenSSL REQUIRED)
target_link_libraries(tensor-coin OpenSSL::SSL)