Browse Source

CUDA: Cuda* tests add rpath entry only for need cuda lib directory

Found when developing https://github.com/conda-forge/cuda-nvcc-feedstock/pull/13/
We previously added RPATH entries for all implicit directories and therefore
started to load the incorrect pthread library.
Robert Maynard 2 years ago
parent
commit
4f10111e95

+ 2 - 1
Tests/Cuda/Complex/CMakeLists.txt

@@ -53,5 +53,6 @@ endif()
 if(UNIX)
   # Help the shared cuda runtime find libcudart as it is not located
   # in a default system searched location
-  set_property(TARGET CudaComplexMixedLib PROPERTY BUILD_RPATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+  find_package(CUDAToolkit REQUIRED)
+  set_property(TARGET CudaComplexMixedLib PROPERTY BUILD_RPATH "${CUDAToolkit_LIBRARY_DIR}")
 endif()

+ 2 - 1
Tests/CudaOnly/SharedRuntimePlusToolkit/CMakeLists.txt

@@ -40,5 +40,6 @@ target_link_libraries(CudaOnlySharedRuntimePlusToolkit PRIVATE SharedToolkit
 if(UNIX)
   # Help the shared cuda runtime find libcudart as it is not located
   # in a default system searched location
-  set_property(TARGET CudaOnlySharedRuntimePlusToolkit PROPERTY BUILD_RPATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+  find_package(CUDAToolkit REQUIRED)
+  set_property(TARGET CudaOnlySharedRuntimePlusToolkit PROPERTY BUILD_RPATH "${CUDAToolkit_LIBRARY_DIR}")
 endif()

+ 2 - 1
Tests/CudaOnly/SharedRuntimeViaCUDAFlags/CMakeLists.txt

@@ -11,5 +11,6 @@ add_executable(CudaOnlySharedRuntimeViaCUDAFlags main.cu)
 if(UNIX)
   # Help the shared cuda runtime find libcudart as it is not located
   # in a default system searched location
-  set_property(TARGET CudaOnlySharedRuntimeViaCUDAFlags PROPERTY BUILD_RPATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+  find_package(CUDAToolkit REQUIRED)
+  set_property(TARGET CudaOnlySharedRuntimeViaCUDAFlags PROPERTY BUILD_RPATH "${CUDAToolkit_LIBRARY_DIR}")
 endif()

+ 2 - 1
Tests/CudaOnly/StaticRuntimePlusToolkit/CMakeLists.txt

@@ -39,5 +39,6 @@ target_link_libraries(CudaOnlyStaticRuntimePlusToolkit PRIVATE SharedToolkit
 if(UNIX)
   # Help the shared cuda runtime find libcurand and libnppif when they are not located
   # in a default system searched location
-  set_property(TARGET CudaOnlyStaticRuntimePlusToolkit PROPERTY BUILD_RPATH ${CMAKE_CUDA_IMPLICIT_LINK_DIRECTORIES})
+  find_package(CUDAToolkit REQUIRED)
+  set_property(TARGET CudaOnlyStaticRuntimePlusToolkit PROPERTY BUILD_RPATH "${CUDAToolkit_LIBRARY_DIR}")
 endif()