diff --git a/CMakeLists.txt b/CMakeLists.txt index 2c4b8a69..6991393e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -345,7 +345,8 @@ target_link_libraries(${SD_LIB} PUBLIC ggml) target_link_libraries(${SD_LIB} PRIVATE onig sd-utf8proc) if (SD_CUDA) find_package(CUDAToolkit REQUIRED) - target_link_libraries(${SD_LIB} PRIVATE CUDA::cuda_driver) + # Keep the driver stub on downstream link lines when no driver is installed. + target_link_libraries(${SD_LIB} PUBLIC CUDA::cuda_driver) set_property(SOURCE src/core/ggml_extend_backend.cpp APPEND PROPERTY COMPILE_DEFINITIONS SD_USE_CUDA) endif() target_include_directories(${SD_LIB} PUBLIC . src include) diff --git a/cmake/stable-diffusion-config.cmake.in b/cmake/stable-diffusion-config.cmake.in index b31f4416..f3be7c03 100644 --- a/cmake/stable-diffusion-config.cmake.in +++ b/cmake/stable-diffusion-config.cmake.in @@ -10,7 +10,7 @@ set(SD_BIN_DIR "@PACKAGE_SD_BIN_INSTALL_DIR@") include(CMakeFindDependencyMacro) find_dependency(ggml REQUIRED HINTS "${SD_LIB_DIR}/cmake") -if(@SD_CUDA@ AND NOT SD_SHARED_LIB) +if(@SD_CUDA@) find_dependency(CUDAToolkit REQUIRED) endif() @@ -31,7 +31,7 @@ if(NOT TARGET stable-diffusion) INTERFACE_COMPILE_FEATURES "c_std_11;cxx_std_17" POSITION_INDEPENDENT_CODE ON) - if(@SD_CUDA@ AND NOT SD_SHARED_LIB) + if(@SD_CUDA@) set_property(TARGET stable-diffusion APPEND PROPERTY INTERFACE_LINK_LIBRARIES CUDA::cuda_driver) endif()