qb: Allow checking for multiple pkgconfig files.

This commit is contained in:
orbea 2019-02-11 15:56:39 -08:00
parent 1caa28dea9
commit f6d8f2911d
2 changed files with 22 additions and 18 deletions

View File

@ -485,7 +485,7 @@ else
check_lib '' VULKAN -lvulkan vkCreateInstance check_lib '' VULKAN -lvulkan vkCreateInstance
fi fi
check_pkgconf PYTHON python3 check_pkgconf PYTHON 'python3 python3 python-3.7 python-3.6 python-3.5 python-3.4 python-3.3 python-3.2'
if [ "$HAVE_MENU" != 'no' ]; then if [ "$HAVE_MENU" != 'no' ]; then
if [ "$HAVE_OPENGL" = 'no' ] && [ "$HAVE_OPENGLES" = 'no' ] && [ "$HAVE_VULKAN" = 'no' ]; then if [ "$HAVE_OPENGL" = 'no' ] && [ "$HAVE_OPENGLES" = 'no' ] && [ "$HAVE_VULKAN" = 'no' ]; then

View File

@ -149,7 +149,7 @@ check_lib()
# check_pkgconf: # check_pkgconf:
# If available uses $PKG_CONF_PATH to find a library. # If available uses $PKG_CONF_PATH to find a library.
# $1 = HAVE_$1 # $1 = HAVE_$1
# $2 = package # $2 = package ['package' or 'package package1 package2', $1 = name]
# $3 = version [checked only if non-empty] # $3 = version [checked only if non-empty]
# $4 = critical error message [checked only if non-empty] # $4 = critical error message [checked only if non-empty]
check_pkgconf() check_pkgconf()
@ -160,37 +160,41 @@ check_pkgconf()
ECHOBUF='' ECHOBUF=''
[ "${3:-}" ] && ECHOBUF=" >= ${3##* }" [ "${3:-}" ] && ECHOBUF=" >= ${3##* }"
pkg="${2%% *}"
MSG='Checking presence of package' MSG='Checking presence of package'
[ "$PKG_CONF_PATH" = "none" ] && { [ "$PKG_CONF_PATH" = "none" ] && {
eval "HAVE_$1=no" eval "HAVE_$1=no"
eval "${1#HAVE_}_VERSION=0.0" eval "${1#HAVE_}_VERSION=0.0"
printf %s\\n "$MSG $2$ECHOBUF ... no" printf %s\\n "$MSG $pkg$ECHOBUF ... no"
return 0 return 0
} }
val="$1" val="$1"
pkg="$2" ver="${3:-0.0}"
err="$4" err="${4:-}"
answer='no' answer='no'
version='no' version='no'
printf %s "$MSG $pkg$ECHOBUF" eval "set -- ${2#* }"
for pkgnam do
eval "set -- ${3:-0.0}" [ "$answer" = 'yes' ] && break
for ver do printf %s "$MSG $pkgnam$ECHOBUF"
if $PKG_CONF_PATH --atleast-version="$ver" "$pkg"; then eval "set -- $ver"
answer='yes' for pkgver do
version="$("$PKG_CONF_PATH" --modversion "$pkg")" if $PKG_CONF_PATH --atleast-version="$pkgver" "$pkgnam"; then
eval "${val}_CFLAGS=\"$("$PKG_CONF_PATH" "$pkg" --cflags)\"" answer='yes'
eval "${val}_LIBS=\"$("$PKG_CONF_PATH" "$pkg" --libs)\"" version="$("$PKG_CONF_PATH" --modversion "$pkgnam")"
eval "${val#HAVE_}_VERSION=\"$ver\"" eval "${val}_CFLAGS=\"$("$PKG_CONF_PATH" --cflags "$pkgnam")\""
break eval "${val}_LIBS=\"$("$PKG_CONF_PATH" --libs "$pkgnam")\""
fi eval "${val#HAVE_}_VERSION=\"$pkgver\""
break
fi
done
printf %s\\n " ... $version"
done done
eval "HAVE_$val=\"$answer\"" eval "HAVE_$val=\"$answer\""
printf %s\\n " ... $version"
if [ "$answer" = 'no' ]; then if [ "$answer" = 'no' ]; then
[ "$err" ] && die 1 "$err" [ "$err" ] && die 1 "$err"