mirror of
https://github.com/Kitware/CMake.git
synced 2025-10-14 02:08:27 +08:00

It's common for some people to use the PKG_CONFIG environment variable to not only load a custom pkg-config/pkgconf but also to load some default arguments such as `--static` or `--keep-system-libs` which often worked since shell scripts would call `$PKG_CONFIG --libs pkg` without quotes, but this breaks FindPkgConfig since it uses the full string as `argv[0]` and might try looking for a binary called `pkgconf --static`, instead of looking for `pkgconf` and adding `--static` as the `argv[1]` Additionally adds RunCMake.FindPkgConfig ARGN test case Fixes: #22305 Signed-off-by: Christopher Degawa <ccom@randomderp.com>
35 lines
1.1 KiB
CMake
35 lines
1.1 KiB
CMake
include(RunCMake)
|
|
|
|
# Isolate test cases from caller's environment.
|
|
set(ENV{CMAKE_PREFIX_PATH} "")
|
|
set(ENV{CMAKE_APPBUNDLE_PATH} "")
|
|
set(ENV{CMAKE_FRAMEWORK_PATH} "")
|
|
|
|
run_cmake(PkgConfigDoesNotExist)
|
|
|
|
run_cmake(FindPkgConfig_NO_PKGCONFIG_PATH)
|
|
run_cmake(FindPkgConfig_PKGCONFIG_PATH)
|
|
run_cmake(FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_PATH)
|
|
run_cmake(FindPkgConfig_PKGCONFIG_PATH_NO_CMAKE_ENVIRONMENT_PATH)
|
|
run_cmake(FindPkgConfig_extract_frameworks)
|
|
run_cmake(FindPkgConfig_GET_MATCHING_ARGN)
|
|
|
|
if(APPLE)
|
|
run_cmake(FindPkgConfig_extract_frameworks_target)
|
|
run_cmake(FindPkgConfig_CMAKE_FRAMEWORK_PATH)
|
|
run_cmake(FindPkgConfig_CMAKE_APPBUNDLE_PATH)
|
|
endif()
|
|
|
|
# We need a real pkg-config to run the test for get_variable.
|
|
find_package(PkgConfig)
|
|
if (PKG_CONFIG_FOUND)
|
|
run_cmake(FindPkgConfig_GET_VARIABLE)
|
|
run_cmake(FindPkgConfig_GET_VARIABLE_PREFIX_PATH)
|
|
run_cmake(FindPkgConfig_GET_VARIABLE_PKGCONFIG_PATH)
|
|
run_cmake(FindPkgConfig_cache_variables)
|
|
run_cmake(FindPkgConfig_IMPORTED_TARGET)
|
|
run_cmake(FindPkgConfig_VERSION_OPERATORS)
|
|
run_cmake(FindPkgConfig_GET_MATCHING_MODULE_NAME)
|
|
run_cmake(FindPkgConfig_empty_target)
|
|
endif ()
|