From 3ad47114b8ea876848557d5bc809308e16e499a7 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 17 Sep 2023 20:25:01 +0100 Subject: CMakeLists.txt: use CMAKE_INSTALL_FULL_LIBDIR for runpath on darwin Without the change on systems where `CMAKE_INSTALL_LIBDIR` is an absolute path outside `CMAKE_INSTALL_PREFIX` (like `nixpkgs`) libraries ended up embedding wrong RPATH and libraries failed to load. The change uses suggestion from https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html to use `CMAKE_INSTALL_FULL_LIBDIR` (similar to library install code) to enbed it as an RPATH. --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 64b979a..f13b62c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -113,7 +113,7 @@ elseif(${CMAKE_SYSTEM_NAME} MATCHES "FreeBSD") elseif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") add_definitions(-DOS_MACOSX) set(CMAKE_MACOS_RPATH TRUE) - set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_PREFIX}/lib") + set(CMAKE_INSTALL_NAME_DIR "${CMAKE_INSTALL_FULL_LIBDIR}") endif() if(BROTLI_EMSCRIPTEN) -- cgit v1.1 From cff58032160406c170a3dc319ad6e7b288cafcc0 Mon Sep 17 00:00:00 2001 From: Sergei Trofimovich Date: Sun, 17 Sep 2023 20:27:32 +0100 Subject: CMakeLists.txt: use `CMAKE_INSTALL_FULL_MANDIR` for mans install Without the change install just fails for me as `SHARE_INSTALL_PREFIX` is unset for me. Following https://cmake.org/cmake/help/latest/module/GNUInstallDirs.html I'm using absolute path expansion to install mans. --- CMakeLists.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f13b62c..ffb640c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -359,9 +359,9 @@ if(NOT BROTLI_BUNDLED_MODE) DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") endif() # BROTLI_BUNDLED_MODE -INSTALL(FILES "docs/brotli.1" DESTINATION "${SHARE_INSTALL_PREFIX}/man/man1") +INSTALL(FILES "docs/brotli.1" DESTINATION "${CMAKE_INSTALL_FULL_MANDIR}/man1") INSTALL(FILES docs/constants.h.3 docs/decode.h.3 docs/encode.h.3 docs/types.h.3 - DESTINATION "${SHARE_INSTALL_PREFIX}/man/man3") + DESTINATION "${CMAKE_INSTALL_FULL_MANDIR}/man3") if (ENABLE_COVERAGE STREQUAL "yes") SETUP_TARGET_FOR_COVERAGE(coverage test coverage) -- cgit v1.1