Add a compileTestWithPkgConfig helper function to configure
... and use it with the opengl compile tests. Change-Id: I402574be332e41c721a758e63a233d193224f16b Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@theqtcompany.com>
This commit is contained in:
parent
0d49ebdf30
commit
6cec75a730
61
configure
vendored
61
configure
vendored
@ -4026,6 +4026,46 @@ compileTest()
|
|||||||
"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS "$@"
|
"$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" $I_FLAGS $D_FLAGS $L_FLAGS "$@"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
compileTestWithPkgConfig()
|
||||||
|
{
|
||||||
|
if [ $# -lt 4 ]; then
|
||||||
|
echo "CompileTestWithPkgConfig requires at least 4 arguments."
|
||||||
|
echo "compileTestWithPkgConfig pkg_name configtest configtest_name qmake_postfix + additional arguments to compileTest"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
local pkg_name=$1
|
||||||
|
local configtest=$2
|
||||||
|
local configtest_name="$3"
|
||||||
|
local qmake_postfix=$4
|
||||||
|
shift 4
|
||||||
|
|
||||||
|
local has_used_pkg_config="no"
|
||||||
|
|
||||||
|
local incdir_raw incdir_mod cflags
|
||||||
|
local libdir_raw libdir_mod libs
|
||||||
|
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists $pkg_name 2>/dev/null; then
|
||||||
|
incdir_raw=`$PKG_CONFIG --cflags-only-I $pkg_name 2>/dev/null`
|
||||||
|
cflags=`$PKG_CONFIG --cflags-only-other $pkg_name 2>/dev/null`
|
||||||
|
libdir_raw=`$PKG_CONFIG --libs-only-L $pkg_name 2>/dev/null`
|
||||||
|
libs=`$PKG_CONFIG --libs-only-l --libs-only-other $pkg_name 2>/dev/null`
|
||||||
|
incdir_mod=`echo $incdir_raw | sed -e 's,^-I,,g' -e 's, -I, ,g'`
|
||||||
|
libdir_mod=`echo $libdir_raw | sed -e 's,^-L,,g' -e 's, -L, ,g'`
|
||||||
|
has_used_pkg_config="yes"
|
||||||
|
fi
|
||||||
|
if compileTest $configtest $configtest_name $libdir_raw $incdir_raw $libs $cflags "$@"; then
|
||||||
|
if [ "$has_used_pkg_config" = "yes" ] && [ -n "$qmake_postfix" ]; then
|
||||||
|
QMakeVar set QMAKE_INCDIR_$qmake_postfix "`shellArgumentListToQMakeList $incdir_mod`"
|
||||||
|
QMakeVar set QMAKE_LIBDIR_$qmake_postfix "`shellArgumentListToQMakeList $libdir_mod`"
|
||||||
|
QMakeVar set QMAKE_LIBS_$qmake_postfix "`shellArgumentListToQMakeList $libs`"
|
||||||
|
QMakeVar set QMAKE_CFLAGS_$qmake_postfix "`shellArgumentListToQMakeList $cflags`"
|
||||||
|
fi
|
||||||
|
return 0
|
||||||
|
else
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
# determine the target and host architectures
|
# determine the target and host architectures
|
||||||
#-------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------
|
||||||
@ -4914,9 +4954,9 @@ fi
|
|||||||
|
|
||||||
# auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher)
|
# auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher)
|
||||||
if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
|
if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
|
||||||
if compileTest unix/opengldesktop "OpenGL"; then
|
if compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL; then
|
||||||
CFG_OPENGL=desktop
|
CFG_OPENGL=desktop
|
||||||
elif compileTest unix/opengles2 "OpenGL ES 2.0"; then
|
elif compileTestWithPkgConfig glesv2 unix/opengles2 "OpenGL ES 2.0" OPENGL_ES2; then
|
||||||
CFG_OPENGL=es2
|
CFG_OPENGL=es2
|
||||||
else
|
else
|
||||||
if [ "$CFG_OPENGL" = "yes" ]; then
|
if [ "$CFG_OPENGL" = "yes" ]; then
|
||||||
@ -4930,17 +4970,8 @@ if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then
|
|||||||
fi
|
fi
|
||||||
elif [ "$CFG_OPENGL" = "es2" ]; then
|
elif [ "$CFG_OPENGL" = "es2" ]; then
|
||||||
#OpenGL ES 2.0
|
#OpenGL ES 2.0
|
||||||
if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists glesv2 2>/dev/null; then
|
|
||||||
QMAKE_INCDIR_OPENGL_ES2=`$PKG_CONFIG --cflags-only-I glesv2 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'`
|
|
||||||
QMAKE_LIBDIR_OPENGL_ES2=`$PKG_CONFIG --libs-only-L glesv2 2>/dev/null | sed -e 's,^-L,,g' -e 's, -L, ,g'`
|
|
||||||
QMAKE_LIBS_OPENGL_ES2=`$PKG_CONFIG --libs glesv2 2>/dev/null`
|
|
||||||
QMAKE_CFLAGS_OPENGL_ES2=`$PKG_CONFIG --cflags glesv2 2>/dev/null`
|
|
||||||
QMakeVar set QMAKE_INCDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`"
|
|
||||||
QMakeVar set QMAKE_LIBDIR_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBDIR_OPENGL_ES2"`"
|
|
||||||
QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`"
|
|
||||||
fi
|
|
||||||
|
|
||||||
compileTest unix/opengles2 "OpenGL ES 2.0" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2
|
compileTestWithPkgConfig glesv2 unix/opengles2 "OpenGL ES 2.0" OPENGL_ES2
|
||||||
if [ $? != "0" ]; then
|
if [ $? != "0" ]; then
|
||||||
echo "The OpenGL ES 2.0 functionality test failed!"
|
echo "The OpenGL ES 2.0 functionality test failed!"
|
||||||
echo " You might need to modify the include and library search paths by editing"
|
echo " You might need to modify the include and library search paths by editing"
|
||||||
@ -4950,7 +4981,7 @@ elif [ "$CFG_OPENGL" = "es2" ]; then
|
|||||||
fi
|
fi
|
||||||
elif [ "$CFG_OPENGL" = "desktop" ]; then
|
elif [ "$CFG_OPENGL" = "desktop" ]; then
|
||||||
# Desktop OpenGL support
|
# Desktop OpenGL support
|
||||||
compileTest unix/opengldesktop "OpenGL"
|
compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL
|
||||||
if [ $? != "0" ]; then
|
if [ $? != "0" ]; then
|
||||||
echo "The OpenGL functionality test failed!"
|
echo "The OpenGL functionality test failed!"
|
||||||
echo " You might need to modify the include and library search paths by editing"
|
echo " You might need to modify the include and library search paths by editing"
|
||||||
@ -4965,11 +4996,11 @@ fi
|
|||||||
# compatible) ES headers (for example, GLES3/gl31.h). Other than that, there is
|
# compatible) ES headers (for example, GLES3/gl31.h). Other than that, there is
|
||||||
# no difference in the configuration, even the library is the same.
|
# no difference in the configuration, even the library is the same.
|
||||||
if [ "$CFG_OPENGL" = "es2" ]; then
|
if [ "$CFG_OPENGL" = "es2" ]; then
|
||||||
if compileTest unix/opengles3 "OpenGL ES 3.0" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2; then
|
if compileTestWithPkgConfig glesv2 unix/opengles3 "OpenGL ES 3.0" ""; then
|
||||||
# Add a define for ES3, in addition to ES and ES2.
|
# Add a define for ES3, in addition to ES and ES2.
|
||||||
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3"
|
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3"
|
||||||
fi
|
fi
|
||||||
if compileTest unix/opengles31 "OpenGL ES 3.1" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2; then
|
if compileTestWithPkgConfig glesv2 unix/opengles31 "OpenGL ES 3.1" ""; then
|
||||||
# Add a define for ES31.
|
# Add a define for ES31.
|
||||||
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3_1"
|
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3_1"
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user