Files
CMake/Tests/RunCMake/FindPkgConfig/dummy-pkg-config.sh
T
Christopher Degawa 35d3e00e4e FindPkgConfig: split args if loaded from environment
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>
2021-06-18 11:10:12 -04:00

43 lines
876 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.
# variables to get around `--static --version` printing the received
# message and then version
static=false
print_errors=false
while [ $# -gt 0 ]; do
case $1 in
--version)
echo "0.0-cmake-dummy"
exit 0
;;
--exists)
shift
eval last=\${$#}
echo "Expected: ${last}"
echo "Found: ${PKG_CONFIG_PATH}"
[ "${last}" = "${PKG_CONFIG_PATH}" ] && exit 0 || exit 1
;;
--static)
static=true
;;
--print-errors)
print_errors=true
;;
esac
shift
done
$static && echo "Received --static"
$print_errors && echo "Received --print-errors"
if $static || $print_errors; then
exit 0
fi
exit 255