From 93f77d8183bbe5a215385cd4bc7da2f83c9776d7 Mon Sep 17 00:00:00 2001 From: Vito Gamberini Date: Wed, 13 Aug 2025 11:56:58 -0400 Subject: [PATCH] PkgC: Allow system paths during IMPORT, POPULATE Fixes: #27138 --- Source/cmCMakePkgConfigCommand.cxx | 3 +++ .../cmake_pkg_config/ImportSystem-check.cmake | 11 +++++++++++ Tests/RunCMake/cmake_pkg_config/ImportSystem.cmake | 12 ++++++++++++ Tests/RunCMake/cmake_pkg_config/RunCMakeTest.cmake | 1 + 4 files changed, 27 insertions(+) create mode 100644 Tests/RunCMake/cmake_pkg_config/ImportSystem-check.cmake create mode 100644 Tests/RunCMake/cmake_pkg_config/ImportSystem.cmake diff --git a/Source/cmCMakePkgConfigCommand.cxx b/Source/cmCMakePkgConfigCommand.cxx index 181c7d8624..0d753bb86e 100644 --- a/Source/cmCMakePkgConfigCommand.cxx +++ b/Source/cmCMakePkgConfigCommand.cxx @@ -911,6 +911,9 @@ std::pair PopulatePCTarget(PopulateArguments& args, auto& pcEnv = maybeEnv->first; auto& imEnv = maybeEnv->second; + pcEnv.AllowSysCflags = true; + pcEnv.AllowSysLibs = true; + pkgProviders providers; if (args.Providers) { for (auto const& provider_str : *args.Providers) { diff --git a/Tests/RunCMake/cmake_pkg_config/ImportSystem-check.cmake b/Tests/RunCMake/cmake_pkg_config/ImportSystem-check.cmake new file mode 100644 index 0000000000..a6f4eb3f07 --- /dev/null +++ b/Tests/RunCMake/cmake_pkg_config/ImportSystem-check.cmake @@ -0,0 +1,11 @@ +set(expected +"Include Directories: /TestDirectories/Include +Link Directories: /TestDirectories/Library +" +) + +file(READ "${RunCMake_TEST_BINARY_DIR}/import-system.txt" actual) + +if(NOT(expected STREQUAL actual)) + set(RunCMake_TEST_FAILED "cmake_pkg_config import-system.txt does not match expected:\n${actual}") +endif() diff --git a/Tests/RunCMake/cmake_pkg_config/ImportSystem.cmake b/Tests/RunCMake/cmake_pkg_config/ImportSystem.cmake new file mode 100644 index 0000000000..bf0fb1468b --- /dev/null +++ b/Tests/RunCMake/cmake_pkg_config/ImportSystem.cmake @@ -0,0 +1,12 @@ +set(CMAKE_PKG_CONFIG_SYS_INCLUDE_DIRS /TestDirectories/Include) +set(CMAKE_PKG_CONFIG_SYS_LIB_DIRS /TestDirectories/Library) + +cmake_pkg_config(IMPORT import-simple REQUIRED) + +file(GENERATE + OUTPUT import-system.txt + CONTENT +"Include Directories: $ +Link Directories: $ +" +) diff --git a/Tests/RunCMake/cmake_pkg_config/RunCMakeTest.cmake b/Tests/RunCMake/cmake_pkg_config/RunCMakeTest.cmake index 422a993fdd..b2e38fc2f5 100644 --- a/Tests/RunCMake/cmake_pkg_config/RunCMakeTest.cmake +++ b/Tests/RunCMake/cmake_pkg_config/RunCMakeTest.cmake @@ -20,6 +20,7 @@ run_cmake(ImportName) run_cmake(ImportPrefix) run_cmake(ImportRequires) run_cmake(ImportSimple) +run_cmake(ImportSystem) run_cmake(ImportTransitiveFail) run_cmake(ImportTransitiveVersion) run_cmake(ImportTransitiveVersionFail)