at master 48 lines 1.8 kB view raw
1From 32944bbdbf2c7611e72ec9828464978ca42824ce Mon Sep 17 00:00:00 2001 2From: Jakob Kukla <jakob.kukla@gmail.com> 3Date: Fri, 12 Sep 2025 10:31:22 +0000 4Subject: [PATCH] cmake: support absolute paths for install dirs in pkg-config 5 6The GNUInstallDirs module supports absolute paths for CMAKE_INSTALL_LIBDIR and CMAKE_INSTALL_INCLUDEDIR. Some package managers like Nix depend on this behaviour. See https://github.com/NixOS/nixpkgs/issues/144170 for the nixpkgs tracking issue. 7--- 8 host/CMakeLists.txt | 12 ++++++++++++ 9 host/uhd.pc.in | 4 ++-- 10 2 files changed, 14 insertions(+), 2 deletions(-) 11 12diff --git a/host/CMakeLists.txt b/host/CMakeLists.txt 13index 3e93ea1f0c..4cd0afad9d 100644 14--- a/host/CMakeLists.txt 15+++ b/host/CMakeLists.txt 16@@ -559,6 +559,18 @@ if(CMAKE_CROSSCOMPILING) 17 set(UHD_PC_LIBS) 18 endif(CMAKE_CROSSCOMPILING) 19 20+# Support absolute paths for LIBDIR and INCLUDEDIR 21+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}") 22+ set(UHD_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}") 23+else() 24+ set(UHD_PC_LIBDIR "\${exec_prefix}/${CMAKE_INSTALL_LIBDIR}") 25+endif() 26+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}") 27+ set(UHD_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}") 28+else() 29+ set(UHD_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}") 30+endif() 31+ 32 configure_file( 33 ${CMAKE_CURRENT_SOURCE_DIR}/uhd.pc.in 34 ${CMAKE_CURRENT_BINARY_DIR}/uhd.pc 35diff --git a/host/uhd.pc.in b/host/uhd.pc.in 36index 4a5f67c969..f121e2fb70 100644 37--- a/host/uhd.pc.in 38+++ b/host/uhd.pc.in 39@@ -1,7 +1,7 @@ 40 prefix=@CMAKE_INSTALL_PREFIX@ 41 exec_prefix=${prefix} 42-libdir=${exec_prefix}/@CMAKE_INSTALL_LIBDIR@ 43-includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ 44+libdir=@UHD_PC_LIBDIR@ 45+includedir=@UHD_PC_INCLUDEDIR@ 46 47 Name: @CPACK_PACKAGE_NAME@ 48 Description: @CPACK_PACKAGE_DESCRIPTION_SUMMARY@