fix: propagate CUDA driver dependency to shared library consumers

This commit is contained in:
leejet 2026-09-19 18:04:59 +08:00
parent 3e037a81e4
commit 9982c9caae
2 changed files with 4 additions and 3 deletions

View File

@ -345,7 +345,8 @@ target_link_libraries(${SD_LIB} PUBLIC ggml)
target_link_libraries(${SD_LIB} PRIVATE onig sd-utf8proc) target_link_libraries(${SD_LIB} PRIVATE onig sd-utf8proc)
if (SD_CUDA) if (SD_CUDA)
find_package(CUDAToolkit REQUIRED) 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) set_property(SOURCE src/core/ggml_extend_backend.cpp APPEND PROPERTY COMPILE_DEFINITIONS SD_USE_CUDA)
endif() endif()
target_include_directories(${SD_LIB} PUBLIC . src include) target_include_directories(${SD_LIB} PUBLIC . src include)

View File

@ -10,7 +10,7 @@ set(SD_BIN_DIR "@PACKAGE_SD_BIN_INSTALL_DIR@")
include(CMakeFindDependencyMacro) include(CMakeFindDependencyMacro)
find_dependency(ggml REQUIRED HINTS "${SD_LIB_DIR}/cmake") find_dependency(ggml REQUIRED HINTS "${SD_LIB_DIR}/cmake")
if(@SD_CUDA@ AND NOT SD_SHARED_LIB) if(@SD_CUDA@)
find_dependency(CUDAToolkit REQUIRED) find_dependency(CUDAToolkit REQUIRED)
endif() endif()
@ -31,7 +31,7 @@ if(NOT TARGET stable-diffusion)
INTERFACE_COMPILE_FEATURES "c_std_11;cxx_std_17" INTERFACE_COMPILE_FEATURES "c_std_11;cxx_std_17"
POSITION_INDEPENDENT_CODE ON) 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) set_property(TARGET stable-diffusion APPEND PROPERTY INTERFACE_LINK_LIBRARIES CUDA::cuda_driver)
endif() endif()