Use CMAKE_PREFIX_PATH, CMAKE_FRAMEWORK_PATH, and CMAKE_APPBUNDLE_PATH cache and environment variables to extend PKG_CONFIG_PATH before calling pkg-config. In each of the path in these variables it searches for lib/pkgconfig. Then, depending on the system, it searches for lib/${CMAKE_LIBRARY_ARCHITECTURE}/pkgconfig (debian) or for lib64/pkgconfig (other 64 bit unixes). If any of these path is found, it is appended to the PKG_CONFIG_PATH enviromnent variable. Add two new arguments to the pkg_check_module and pkg_search_module macro, NO_CMAKE_PATH and NO_CMAKE_ENVIRONMENT_PATH. The new signature are therefore: pkg_check_modules(<PREFIX> [REQUIRED] [QUIET] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] <MODULE> [<MODULE>]*) pkg_search_module(<PREFIX> [REQUIRED] [QUIET] [NO_CMAKE_PATH] [NO_CMAKE_ENVIRONMENT_PATH] <MODULE> [<MODULE>]*) By default, if CMAKE_MINIMUM_REQUIRED_VERSION is 3.1 or later (in order to keep compatibility with the previous behavior), or if PKG_CONFIG_USE_CMAKE_PREFIX_PATH is set, the CMAKE_PREFIX_PATH, CMAKE_FRAMEWORK_PATH, and CMAKE_APPBUNDLE_PATH cache and environment variables will be added to pkgconfig search path. The NO_CMAKE_PATH and NO_CMAKE_ENVIRONMENT_PATH arguments disable this behavior for the cache variables and the environment variables, respectively, similarly to the find_package() command.
21 lines
402 B
Bash
Executable File
21 lines
402 B
Bash
Executable File
#!/bin/sh
|
|
|
|
# This is a replacement for pkg-config that compares the string passed
|
|
# to the --exists argument with the PKG_CONFIG_PATH environment variable
|
|
# and returns 1 if they are different.
|
|
|
|
case $1 in
|
|
--version)
|
|
echo "0.0-cmake-dummy"
|
|
;;
|
|
--exists)
|
|
shift
|
|
echo "$@"
|
|
echo "${PKG_CONFIG_PATH}"
|
|
[ "$@" = "${PKG_CONFIG_PATH}" ] || exit 1
|
|
;;
|
|
*)
|
|
exit 255
|
|
;;
|
|
esac
|