From e78ef6a03b3f876e84271916f853e6c83cbc74e7 Mon Sep 17 00:00:00 2001 From: Tal Regev Date: Tue, 8 Jul 2025 15:29:35 +0300 Subject: [PATCH] Initial work to add pc files in static linkage --- cmake/QtBaseGlobalTargets.cmake | 2 ++ cmake/QtPkgConfigHelpers.cmake | 10 +++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/cmake/QtBaseGlobalTargets.cmake b/cmake/QtBaseGlobalTargets.cmake index 405b5e226358..5a09e1c5400b 100644 --- a/cmake/QtBaseGlobalTargets.cmake +++ b/cmake/QtBaseGlobalTargets.cmake @@ -471,3 +471,5 @@ endif() qt_copy_or_install(FILES "util/json_schema/modules.json" DESTINATION "${INSTALL_QT_SHAREDIR}/json_schema/") + +qt_internal_generate_pkg_config_file(GlobalConfig) diff --git a/cmake/QtPkgConfigHelpers.cmake b/cmake/QtPkgConfigHelpers.cmake index 2790498bf2c5..834b59e55dc1 100644 --- a/cmake/QtPkgConfigHelpers.cmake +++ b/cmake/QtPkgConfigHelpers.cmake @@ -25,9 +25,6 @@ function(qt_internal_generate_pkg_config_file module) if(NOT UNIX AND NOT MINGW OR CMAKE_VERSION VERSION_LESS "3.20" OR ANDROID) return() endif() - if(NOT BUILD_SHARED_LIBS) - return() - endif() set(pkgconfig_file "${QT_CMAKE_EXPORT_NAMESPACE}${module}") set(pkgconfig_name "${QT_CMAKE_EXPORT_NAMESPACE} ${module}") @@ -46,6 +43,7 @@ function(qt_internal_generate_pkg_config_file module) get_target_property(loose_link_options ${target} INTERFACE_LINK_OPTIONS) get_target_property(loose_compile_defs ${target} INTERFACE_COMPILE_DEFINITIONS) get_target_property(loose_include_dirs ${target} INTERFACE_INCLUDE_DIRECTORIES) + get_target_property(link_libs ${target} LINK_LIBRARIES) list(TRANSFORM loose_include_dirs REPLACE "${INSTALL_INCLUDEDIR}" "\${includedir}") list(TRANSFORM loose_include_dirs REPLACE "${INSTALL_MKSPECSDIR}" "\${mkspecsdir}") if(QT_FEATURE_framework) @@ -116,6 +114,12 @@ function(qt_internal_generate_pkg_config_file module) endforeach() string(APPEND link_options " $, >") + foreach(lib IN LISTS link_libs) + if(lib MATCHES "^-") + list(APPEND link_options "${lib}") + else() + endforeach() + qt_path_join(path_suffix "${INSTALL_LIBDIR}" pkgconfig) qt_path_join(build_dir "${QT_BUILD_DIR}" "${path_suffix}") qt_path_join(install_dir "${QT_INSTALL_DIR}" "${path_suffix}")