From 715b442682f3cac6e04636d8beaf4104c20bac23 Mon Sep 17 00:00:00 2001 From: Felix Date: Mon, 18 Nov 2024 12:30:32 +0100 Subject: [PATCH] Only prepend $prefix for relative paths (#389) --- cmake/GenPkgConfig/GenPkgConfig.cmake | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/cmake/GenPkgConfig/GenPkgConfig.cmake b/cmake/GenPkgConfig/GenPkgConfig.cmake index 28ef4a050..e04e7a425 100644 --- a/cmake/GenPkgConfig/GenPkgConfig.cmake +++ b/cmake/GenPkgConfig/GenPkgConfig.cmake @@ -120,10 +120,23 @@ function(configure_pkg_config_file_vars TARGET _NAME _INSTALL_LIB_DIR _INSTALL_I string(REPLACE "," "$" NEEDS_LIBS_ESCAPED "${NEEDS_LIBS}") string(REPLACE ">" "$" NEEDS_LIBS_ESCAPED "${NEEDS_LIBS_ESCAPED}") - list(APPEND header "prefix=${CMAKE_INSTALL_PREFIX}") - list(APPEND header "$,${NEEDS_LIB_DIR}>,libdir=\${prefix}/${INSTALL_LIB_DIR},>") - list(APPEND header "$,includedir=\${prefix}/${INSTALL_INCLUDE_DIR},>") - + # Only use prefix if paths are not absolute like they are with nix + # See also: https://github.com/NixOS/nixpkgs/issues/144170 + if(NOT(IS_ABSOLUTE ${INSTALL_LIB_DIR} AND IS_ABSOLUTE ${INSTALL_INCLUDE_DIR})) + list(APPEND header "prefix=${CMAKE_INSTALL_PREFIX}") + endif() + + if(IS_ABSOLUTE ${INSTALL_LIB_DIR}) + list(APPEND header "$,${NEEDS_LIB_DIR}>,libdir=${INSTALL_LIB_DIR},>") + else() + list(APPEND header "$,${NEEDS_LIB_DIR}>,libdir=\${prefix}/${INSTALL_LIB_DIR},>") + endif() + + if(IS_ABSOLUTE ${INSTALL_INCLUDE_DIR}) + list(APPEND header "$,includedir=${INSTALL_INCLUDE_DIR},>") + else() + list(APPEND header "$,includedir=\${prefix}/${INSTALL_INCLUDE_DIR},>") + endif() list(APPEND libSpecific "Name: ${_NAME}") if(_DESCRIPTION)