86 lines
3.7 KiB
CMake
86 lines
3.7 KiB
CMake
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(Req 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} ./src/Aurora.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 ${Req_INCLUDES_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 Req)
|
||
target_link_libraries(UR PUBLIC Parser)
|
||
|
||
target_link_libraries(UR PUBLIC URDepends::TransDetection)
|
||
target_link_libraries(UR PUBLIC URDepends::eikonal)
|
||
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} )
|
||
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::TransDetection)
|
||
target_link_libraries(UR_Test PUBLIC URDepends::eikonal)
|
||
target_link_libraries(UR_Test PUBLIC URDepends::TVALGPU)
|
||
target_link_libraries(UR_Test PUBLIC URDepends::SaftTofi)
|
||
# target_link_libraries(UR_Test PUBLIC URDepends::SaftATT)
|
||
|
||
gtest_discover_tests(UR_Test) |