mirror of
https://gitlab.kitware.com/cmake/cmake.git
synced 2026-10-07 04:02:23 +03:00
FindCUDAToolkit: Link CUDA::nvml_static against DL libraries
And fix a potential failure mode where CUDA::sanitizer was already added in a different project.
This commit is contained in:
1 file changed
+24
-17
@@ -1486,7 +1486,12 @@ if(CUDAToolkit_FOUND)
|
||||
endif()
|
||||
|
||||
_CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml)
|
||||
_CUDAToolkit_find_and_add_import_lib(nvml_static ONLY_SEARCH_FOR libnvidia-ml.a libnvml.a)
|
||||
if(NOT TARGET CUDA::nvml_static)
|
||||
_CUDAToolkit_find_and_add_import_lib(nvml_static ONLY_SEARCH_FOR libnvidia-ml.a libnvml.a)
|
||||
if(TARGET CUDA::nvml_static)
|
||||
target_link_libraries(CUDA::nvml_static INTERFACE ${CMAKE_DL_LIBS})
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 10.0)
|
||||
# Header-only variant. Uses dlopen().
|
||||
@@ -1538,22 +1543,24 @@ if(CUDAToolkit_FOUND)
|
||||
set_property(TARGET CUDA::bin2c PROPERTY IMPORTED_LOCATION "${CUDA_bin2c_EXECUTABLE}")
|
||||
endif()
|
||||
|
||||
_CUDAToolkit_find_and_add_import_lib(
|
||||
sanitizer
|
||||
ONLY_SEARCH_FOR sanitizer-public
|
||||
EXTRA_PATH_SUFFIXES
|
||||
"../compute-sanitizer"
|
||||
"../../../compute-sanitizer"
|
||||
"../Sanitizer"
|
||||
"../../../Sanitizer"
|
||||
"../extras/Sanitizer"
|
||||
"../../../extras/Sanitizer"
|
||||
EXTRA_INCLUDE_DIRS "${CUDAToolkit_CUPTI_INCLUDE_DIR}"
|
||||
)
|
||||
if(TARGET CUDA::sanitizer)
|
||||
get_property(loc TARGET CUDA::sanitizer PROPERTY IMPORTED_LOCATION)
|
||||
get_filename_component(sanitizer_dir "${loc}" DIRECTORY)
|
||||
target_include_directories(CUDA::sanitizer INTERFACE "${sanitizer_dir}/include")
|
||||
if(NOT TARGET CUDA::sanitizer)
|
||||
_CUDAToolkit_find_and_add_import_lib(
|
||||
sanitizer
|
||||
ONLY_SEARCH_FOR sanitizer-public
|
||||
EXTRA_PATH_SUFFIXES
|
||||
"../compute-sanitizer"
|
||||
"../../../compute-sanitizer"
|
||||
"../Sanitizer"
|
||||
"../../../Sanitizer"
|
||||
"../extras/Sanitizer"
|
||||
"../../../extras/Sanitizer"
|
||||
EXTRA_INCLUDE_DIRS "${CUDAToolkit_CUPTI_INCLUDE_DIR}"
|
||||
)
|
||||
if(TARGET CUDA::sanitizer)
|
||||
get_property(loc TARGET CUDA::sanitizer PROPERTY IMPORTED_LOCATION)
|
||||
get_filename_component(sanitizer_dir "${loc}" DIRECTORY)
|
||||
target_include_directories(CUDA::sanitizer INTERFACE "${sanitizer_dir}/include")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
|
||||
Reference in new issue
Block a user