From 223e2ecd142034c3de4b15e8e10bb9211eb2f1e6 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Wed, 7 May 2025 15:22:12 +0200 Subject: [PATCH] CMake: Make generated pkgconfig files relocatable Don't write an absolute prefix into generated .pc files but one that's relative to ${pcfiledir}. This makes the files relocatable, and we don't have to patch them in the Qt online installer. Pick-to: 6.8 Fixes: QTBUG-136210 Change-Id: I5c2f9398917be03f6c63286e553c87ff52971285 Reviewed-by: Alexey Edelev (cherry picked from commit 731d9a13956ef40e3f563f5ff5ff5c250b8d6d94) Reviewed-by: Qt Cherry-pick Bot --- cmake/PkgConfigLibrary.pc.in | 2 +- cmake/QtPkgConfigHelpers.cmake | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/PkgConfigLibrary.pc.in b/cmake/PkgConfigLibrary.pc.in index b840e79e794..5a6665c85c5 100644 --- a/cmake/PkgConfigLibrary.pc.in +++ b/cmake/PkgConfigLibrary.pc.in @@ -1,4 +1,4 @@ -prefix=@CMAKE_INSTALL_PREFIX@ +prefix=${pcfiledir}/@relative_install_prefix@ exec_prefix=${prefix} bindir=${prefix}/@INSTALL_BINDIR@ libexecdir=${prefix}/@INSTALL_LIBEXECDIR@ diff --git a/cmake/QtPkgConfigHelpers.cmake b/cmake/QtPkgConfigHelpers.cmake index 2790498bf2c..a0eff0d6a2c 100644 --- a/cmake/QtPkgConfigHelpers.cmake +++ b/cmake/QtPkgConfigHelpers.cmake @@ -125,6 +125,9 @@ function(qt_internal_generate_pkg_config_file module) qt_path_join(pc_step1_path "${build_dir}" ${step_prefix}_step1.pc) qt_path_join(pc_step2_path "${build_dir}" ${step_prefix}_$_step2.pc) + file(RELATIVE_PATH relative_install_prefix "/${path_suffix}" "/foo") + get_filename_component(relative_install_prefix "${relative_install_prefix}" DIRECTORY) + configure_file("${template_pc}" "${pc_step1_path}" @ONLY) file(GENERATE OUTPUT "${pc_step2_path}" INPUT "${pc_step1_path}")