mirror of
https://github.com/leejet/stable-diffusion.cpp.git
synced 2026-06-09 15:56:39 +00:00
fix: make macOS binaries use relocatable rpaths (#1552)
This commit is contained in:
parent
0baf721215
commit
72e512a0cc
@ -22,6 +22,31 @@ endif()
|
|||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
function(sd_set_macos_rpaths target)
|
||||||
|
get_target_property(target_type ${target} TYPE)
|
||||||
|
if(target_type STREQUAL "EXECUTABLE")
|
||||||
|
set(runtime_paths "@executable_path" "@executable_path/../lib")
|
||||||
|
elseif(target_type STREQUAL "SHARED_LIBRARY" OR target_type STREQUAL "MODULE_LIBRARY")
|
||||||
|
set(runtime_paths "@loader_path" "@loader_path/../lib")
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
MACOSX_RPATH ON
|
||||||
|
INSTALL_NAME_DIR "@rpath"
|
||||||
|
BUILD_WITH_INSTALL_NAME_DIR ON
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
return()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Release artifacts zip the build output directly, so keep macOS rpaths relocatable.
|
||||||
|
set_target_properties(${target} PROPERTIES
|
||||||
|
BUILD_RPATH "${runtime_paths}"
|
||||||
|
INSTALL_RPATH "${runtime_paths}"
|
||||||
|
BUILD_WITH_INSTALL_RPATH ON
|
||||||
|
)
|
||||||
|
endfunction()
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
|
||||||
set(SD_STANDALONE ON)
|
set(SD_STANDALONE ON)
|
||||||
else()
|
else()
|
||||||
@ -237,6 +262,10 @@ else()
|
|||||||
add_library(${SD_LIB} STATIC ${SD_LIB_SOURCES})
|
add_library(${SD_LIB} STATIC ${SD_LIB_SOURCES})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(APPLE)
|
||||||
|
sd_set_macos_rpaths(${SD_LIB})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(SD_SYCL)
|
if(SD_SYCL)
|
||||||
message("-- Use SYCL as backend stable-diffusion")
|
message("-- Use SYCL as backend stable-diffusion")
|
||||||
set(GGML_SYCL ON)
|
set(GGML_SYCL ON)
|
||||||
|
|||||||
@ -7,6 +7,9 @@ add_executable(${TARGET}
|
|||||||
image_metadata.cpp
|
image_metadata.cpp
|
||||||
main.cpp
|
main.cpp
|
||||||
)
|
)
|
||||||
|
if(APPLE)
|
||||||
|
sd_set_macos_rpaths(${TARGET})
|
||||||
|
endif()
|
||||||
target_include_directories(${TARGET} PRIVATE
|
target_include_directories(${TARGET} PRIVATE
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/.."
|
"${CMAKE_CURRENT_SOURCE_DIR}/.."
|
||||||
"${PROJECT_SOURCE_DIR}/src"
|
"${PROJECT_SOURCE_DIR}/src"
|
||||||
|
|||||||
@ -74,6 +74,9 @@ add_executable(${TARGET}
|
|||||||
routes_sdapi.cpp
|
routes_sdapi.cpp
|
||||||
routes_sdcpp.cpp
|
routes_sdcpp.cpp
|
||||||
)
|
)
|
||||||
|
if(APPLE)
|
||||||
|
sd_set_macos_rpaths(${TARGET})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(HAVE_FRONTEND_BUILD)
|
if(HAVE_FRONTEND_BUILD)
|
||||||
add_dependencies(${TARGET} ${TARGET}_frontend)
|
add_dependencies(${TARGET} ${TARGET}_frontend)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user