From 469cc3700e224198ebeef9933d0981b4543f0132 Mon Sep 17 00:00:00 2001 From: yhmtsai Date: Tue, 24 Sep 2019 23:29:27 +0200 Subject: [PATCH] move the additional library after cudart --- cuda/CMakeLists.txt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/cuda/CMakeLists.txt b/cuda/CMakeLists.txt index acc0ab793f2..ac49073eab6 100644 --- a/cuda/CMakeLists.txt +++ b/cuda/CMakeLists.txt @@ -33,7 +33,6 @@ set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS}" PARENT_SCOPE) set(CMAKE_CUDA_COMPILER_VERSION ${CMAKE_CUDA_COMPILER_VERSION} PARENT_SCOPE) set(CUDA_INCLUDE_DIRS ${CUDA_INCLUDE_DIRS} PARENT_SCOPE) -add_library(ginkgo_cuda $ "") # nvcc uses static cudartlibrary by default # add `-cudart shared` or `-cudart=shared` according system into CMAKE_CUDA_FLAGS/GINKGO_CUDA_COMPILER_FLAGS @@ -42,13 +41,15 @@ find_library(CUDA_RUNTIME_LIBS_DYNAMIC cudart HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}) find_library(CUDA_RUNTIME_LIBS_STATIC cudart_static HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}) +add_library(cudart INTERFACE IMPORTED) if("${CMAKE_CUDA_FLAGS}" MATCHES "-cudart(=| )shared" OR "${GINKGO_CUDA_COMPILER_FLAGS}" MATCHES "-cudart(=| )shared") set(CUDA_RUNTIME_LIBS "${CUDA_RUNTIME_LIBS_DYNAMIC}" CACHE STRING "Path to a library" FORCE) + target_link_libraries(cudart INTERFACE ${CUDA_RUNTIME_LIBS}) else() set(CUDA_RUNTIME_LIBS "${CUDA_RUNTIME_LIBS_STATIC}" CACHE STRING "Path to a library" FORCE) if(NOT MSVC) # link cudart_static need rt, pthread, and dl - target_link_libraries(ginkgo_cuda INTERFACE rt pthread -Wl,--no-as-needed dl) + target_link_libraries(cudart INTERFACE ${CUDA_RUNTIME_LIBS} rt pthread -Wl,--no-as-needed dl) endif() endif() find_library(CUBLAS cublas @@ -56,6 +57,7 @@ find_library(CUBLAS cublas find_library(CUSPARSE cusparse HINT ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES}) +add_library(ginkgo_cuda $ "") target_sources(ginkgo_cuda PRIVATE base/exception.cpp @@ -103,7 +105,7 @@ target_compile_options(ginkgo_cuda PRIVATE $<$:${GINKGO_CO ginkgo_compile_features(ginkgo_cuda) target_include_directories(ginkgo_cuda SYSTEM PRIVATE ${CUDA_INCLUDE_DIRS}) -target_link_libraries(ginkgo_cuda PRIVATE ${CUDA_RUNTIME_LIBS} ${CUBLAS} ${CUSPARSE}) +target_link_libraries(ginkgo_cuda PRIVATE cudart ${CUBLAS} ${CUSPARSE}) cas_target_cuda_architectures(ginkgo_cuda ARCHITECTURES ${GINKGO_CUDA_ARCHITECTURES}