From 9982c9caae5d48472d2931c626e1a8ca301177ed Mon Sep 17 00:00:00 2001 From: leejet Date: Sat, 19 Sep 2026 18:04:59 +0800 Subject: [PATCH] fix: propagate CUDA driver dependency to shared library consumers --- CMakeLists.txt | 3 ++- cmake/stable-diffusion-config.cmake.in | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) 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()