FindCUDAToolkit: Restore usage from multiple directories

Fixes #24119
This commit is contained in:
Robert Maynard 2022-11-02 12:13:41 -04:00
parent 301815eb62
commit 62f13ed588
5 changed files with 37 additions and 2 deletions

View File

@ -1058,8 +1058,10 @@ if(CUDAToolkit_FOUND)
_CUDAToolkit_find_and_add_import_lib(nvrtc DEPS cuda_driver)
if(CUDAToolkit_VERSION VERSION_GREATER_EQUAL 11.1.0)
_CUDAToolkit_find_and_add_import_lib(nvptxcompiler_static DEPS cuda_driver)
target_link_libraries(CUDA::nvptxcompiler_static INTERFACE Threads::Threads)
if(NOT TARGET CUDA::nvptxcompiler_static)
_CUDAToolkit_find_and_add_import_lib(nvptxcompiler_static DEPS cuda_driver)
target_link_libraries(CUDA::nvptxcompiler_static INTERFACE Threads::Threads)
endif()
endif()
_CUDAToolkit_find_and_add_import_lib(nvml ALT nvidia-ml nvml)

View File

@ -13,6 +13,7 @@ add_cuda_test_macro(CudaOnly.SharedRuntimePlusToolkit CudaOnlySharedRuntimePlusT
add_cuda_test_macro(CudaOnly.Standard98 CudaOnlyStandard98)
add_cuda_test_macro(CudaOnly.Toolkit CudaOnlyToolkit)
add_cuda_test_macro(CudaOnly.ToolkitBeforeLang CudaOnlyToolkitBeforeLang)
add_cuda_test_macro(CudaOnly.ToolkitMultipleDirs CudaOnlyToolkitMultipleDirs)
add_cuda_test_macro(CudaOnly.WithDefs CudaOnlyWithDefs)
add_cuda_test_macro(CudaOnly.CircularLinkLine CudaOnlyCircularLinkLine)
add_cuda_test_macro(CudaOnly.ResolveDeviceSymbols CudaOnlyResolveDeviceSymbols)

View File

@ -0,0 +1,22 @@
cmake_minimum_required(VERSION 3.15)
project(CudaOnlyToolkitMultipleDirs CUDA)
find_package(CUDAToolkit REQUIRED)
add_subdirectory(subdir)
if(NOT DEFINED CUDAToolkit_VERSION)
message(FATAL_ERROR "expected CUDAToolkit variable CUDAToolkit_VERSION not found")
endif()
message(STATUS "CUDAToolkit_VERSION: ${CUDAToolkit_VERSION}")
message(STATUS "CUDAToolkit_VERSION_MAJOR: ${CUDAToolkit_VERSION_MAJOR}")
message(STATUS "CUDAToolkit_VERSION_MINOR: ${CUDAToolkit_VERSION_MINOR}")
message(STATUS "CUDAToolkit_VERSION_PATCH: ${CUDAToolkit_VERSION_PATCH}")
message(STATUS "CUDAToolkit_BIN_DIR: ${CUDAToolkit_BIN_DIR}")
message(STATUS "CUDAToolkit_INCLUDE_DIRS: ${CUDAToolkit_INCLUDE_DIRS}")
message(STATUS "CUDAToolkit_LIBRARY_DIR: ${CUDAToolkit_LIBRARY_DIR}")
message(STATUS "CUDAToolkit_NVCC_EXECUTABLE ${CUDAToolkit_NVCC_EXECUTABLE}")
add_executable(CudaOnlyToolkitMultipleDirs main.cu)
target_link_libraries(CudaOnlyToolkitMultipleDirs PRIVATE CUDA::toolkit)

View File

@ -0,0 +1,8 @@
// Only thing we care about is that these headers are found
#include <cuda.h>
#include <cuda_runtime_api.h>
int main(int argc, char** argv)
{
return 0;
}

View File

@ -0,0 +1,2 @@
find_package(CUDAToolkit REQUIRED)