Files
UR/CMakeLists.txt

88 lines
3.7 KiB
CMake
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

cmake_minimum_required(VERSION 3.16)
project(UR)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_definitions(-DUSE_CUDA)
set(CMAKE_CUDA_COMPILER /usr/local/cuda/bin/nvcc)
enable_language(CUDA)
find_package(CUDAToolkit REQUIRED)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g")
find_package(Aurora REQUIRED)
find_package(Parser REQUIRED)
find_package(URDepends REQUIRED)
find_package(DCMTK REQUIRED)
set(DCMTK_WITH_JPEG OFF)
file(GLOB_RECURSE cpp_files ./src/*.cpp)
file(GLOB_RECURSE cu_files ./src/*.cu)
file(GLOB_RECURSE cxx_files ./src/*.cxx)
file(GLOB_RECURSE header_files ./src/*.h)
add_executable(UR ${cpp_files} ${cu_files} ${cxx_files} ${header_files} ${Aurora_Source} ${Aurora_Source_Cu} ${Aurora_DIR}/src/CudaMatrixPrivate.cu)
#target_compile_options(UR PUBLIC ${Aurora_Complie_Options} "-march=native")
target_include_directories(UR PUBLIC ./src/)
target_include_directories(UR PUBLIC ${Aurora_INCLUDE_DIRS})
target_include_directories(UR PUBLIC ${DCMTK_INCLUDE_DIRS})
target_include_directories(UR PUBLIC ${Parser_INCLUDE_DIRS})
target_include_directories(UR PUBLIC ${URDepends_INCLUDES_DIRS})
target_include_directories(UR PUBLIC ${DCMTK_INCLUDE_DIRS})
target_link_libraries(UR PUBLIC ${Aurora_Libraries})
target_link_libraries(UR PUBLIC dcmdata)
target_link_libraries(UR PUBLIC matio)
target_link_libraries(UR PUBLIC Parser)
target_link_libraries(UR PUBLIC URDepends::TVALGPU)
target_link_libraries(UR PUBLIC URDepends::SaftTofi)
target_link_libraries(UR PUBLIC dcmdata)
target_include_directories(UR PRIVATE ./src /usr/local/cuda/include)
set_target_properties(UR PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
#target_compile_options(UR PRIVATE ${Aurora_Complie_Options} "-march=native")
# target_compile_options(UR PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:
#                        --use_fast_math
#                        --ptxas-options=-v
#                        -arch sm_75
#                        >)
target_compile_options(UR PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:
-arch=sm_75 --expt-extended-lambda
>)
target_link_libraries(UR PRIVATE ${CUDA_RUNTIME_LIBRARY} CUDA::cufft CUDA::cudart)
# target_link_libraries(UR PUBLIC URDepends::SaftATT)
find_package(GTest REQUIRED)
INCLUDE_DIRECTORIES(${GTEST_INCLUDE_DIRS})
enable_testing()
file(GLOB_RECURSE test_cpp test/*.cpp)
add_executable(UR_Test ${cpp_files} ${header_files} ${Aurora_Source} ${test_cpp} ${cu_files} ${Aurora_Source} ${Aurora_Source_Cu} ${Aurora_DIR}/src/CudaMatrixPrivate.cu)
target_include_directories(UR_Test PUBLIC ./test/ ./src/)
# target_compile_options(UR_Test PUBLIC ${Aurora_Complie_Options} "-march=native")
target_include_directories(UR_Test PUBLIC ${DCMTK_INCLUDE_DIRS})
target_include_directories(UR_Test PUBLIC ${Aurora_INCLUDE_DIRS})
target_include_directories(UR_Test PUBLIC ${Parser_INCLUDE_DIRS})
target_include_directories(UR_Test PUBLIC ${URDepends_INCLUDES_DIRS})
# 必须写前面不然容易出问题
target_link_libraries(UR_Test PUBLIC ${GTEST_BOTH_LIBRARIES})
target_link_libraries(UR_Test PUBLIC ${Aurora_Libraries})
target_link_libraries(UR_Test PUBLIC dcmdata)
target_link_libraries(UR_Test PUBLIC matio)
# target_link_libraries(UR_Test PUBLIC ${Parser_Libraries})
target_link_libraries(UR_Test PUBLIC Parser)
target_link_libraries(UR_Test PUBLIC URDepends::TVALGPU)
target_link_libraries(UR_Test PUBLIC URDepends::SaftTofi)
target_include_directories(UR_Test PRIVATE ./src /usr/local/cuda/include)
set_target_properties(UR_Test PROPERTIES CUDA_SEPARABLE_COMPILATION ON)
target_compile_options(UR_Test PRIVATE $<$<COMPILE_LANGUAGE:CUDA>:
-arch=sm_75 --expt-extended-lambda
>)
target_link_libraries(UR_Test PRIVATE ${CUDA_RUNTIME_LIBRARY} CUDA::cufft CUDA::cudart)
gtest_discover_tests(UR_Test)