|
|
@@ -1012,17 +1012,26 @@ if(CUDAToolkit_FOUND)
|
|
|
)
|
|
|
# Don't try any stub directories until we have exhausted all other
|
|
|
# search locations.
|
|
|
- find_library(CUDA_${lib_name}_LIBRARY
|
|
|
- NAMES ${search_names}
|
|
|
- HINTS ${CUDAToolkit_LIBRARY_SEARCH_DIRS}
|
|
|
- ENV CUDA_PATH
|
|
|
- PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
|
|
|
- )
|
|
|
+ set(CUDA_IMPORT_PROPERTY IMPORTED_LOCATION)
|
|
|
+ set(CUDA_IMPORT_TYPE UNKNOWN)
|
|
|
+ if(NOT CUDA_${lib_name}_LIBRARY)
|
|
|
+ find_library(CUDA_${lib_name}_LIBRARY
|
|
|
+ NAMES ${search_names}
|
|
|
+ HINTS ${CUDAToolkit_LIBRARY_SEARCH_DIRS}
|
|
|
+ ENV CUDA_PATH
|
|
|
+ PATH_SUFFIXES lib64/stubs lib/x64/stubs lib/stubs stubs
|
|
|
+ )
|
|
|
+ if(CUDA_${lib_name}_LIBRARY AND NOT WIN32)
|
|
|
+ # Use `IMPORTED_IMPLIB` so that we don't add a `-rpath` entry for stub directories
|
|
|
+ set(CUDA_IMPORT_PROPERTY IMPORTED_IMPLIB)
|
|
|
+ set(CUDA_IMPORT_TYPE SHARED)
|
|
|
+ endif()
|
|
|
+ endif()
|
|
|
|
|
|
mark_as_advanced(CUDA_${lib_name}_LIBRARY)
|
|
|
|
|
|
if (NOT TARGET CUDA::${lib_name} AND CUDA_${lib_name}_LIBRARY)
|
|
|
- add_library(CUDA::${lib_name} UNKNOWN IMPORTED)
|
|
|
+ add_library(CUDA::${lib_name} ${CUDA_IMPORT_TYPE} IMPORTED)
|
|
|
target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_INCLUDE_DIRS}")
|
|
|
if(DEFINED CUDAToolkit_MATH_INCLUDE_DIR)
|
|
|
string(FIND ${CUDA_${lib_name}_LIBRARY} "math_libs" math_libs)
|
|
|
@@ -1030,7 +1039,7 @@ if(CUDAToolkit_FOUND)
|
|
|
target_include_directories(CUDA::${lib_name} SYSTEM INTERFACE "${CUDAToolkit_MATH_INCLUDE_DIR}")
|
|
|
endif()
|
|
|
endif()
|
|
|
- set_property(TARGET CUDA::${lib_name} PROPERTY IMPORTED_LOCATION "${CUDA_${lib_name}_LIBRARY}")
|
|
|
+ set_property(TARGET CUDA::${lib_name} PROPERTY ${CUDA_IMPORT_PROPERTY} "${CUDA_${lib_name}_LIBRARY}")
|
|
|
foreach(dep ${arg_DEPS})
|
|
|
if(TARGET CUDA::${dep})
|
|
|
target_link_libraries(CUDA::${lib_name} INTERFACE CUDA::${dep})
|