diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 296 |
1 files changed, 181 insertions, 115 deletions
@@ -1,42 +1,34 @@ #!/bin/sh ############################################################################# ## -## Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies). +## Copyright (C) 2014 Digia Plc and/or its subsidiary(-ies). ## Copyright (C) 2013 Intel Corporation. ## Contact: http://www.qt-project.org/legal ## ## This file is the build configuration utility of the Qt Toolkit. ## -## $QT_BEGIN_LICENSE:LGPL$ +## $QT_BEGIN_LICENSE:LGPL21$ ## Commercial License Usage ## Licensees holding valid commercial Qt licenses may use this file in ## accordance with the commercial license agreement provided with the ## Software or, alternatively, in accordance with the terms contained in -## a written agreement between you and Digia. For licensing terms and -## conditions see http://qt.digia.com/licensing. For further information +## a written agreement between you and Digia. For licensing terms and +## conditions see http://qt.digia.com/licensing. For further information ## use the contact form at http://qt.digia.com/contact-us. ## ## GNU Lesser General Public License Usage ## Alternatively, this file may be used under the terms of the GNU Lesser -## General Public License version 2.1 as published by the Free Software -## Foundation and appearing in the file LICENSE.LGPL included in the -## packaging of this file. Please review the following information to -## ensure the GNU Lesser General Public License version 2.1 requirements -## will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +## General Public License version 2.1 or version 3 as published by the Free +## Software Foundation and appearing in the file LICENSE.LGPLv21 and +## LICENSE.LGPLv3 included in the packaging of this file. Please review the +## following information to ensure the GNU Lesser General Public License +## requirements will be met: https://www.gnu.org/licenses/lgpl.html and +## http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ## ## In addition, as a special exception, Digia gives you certain additional -## rights. These rights are described in the Digia Qt LGPL Exception +## rights. These rights are described in the Digia Qt LGPL Exception ## version 1.1, included in the file LGPL_EXCEPTION.txt in this package. ## -## GNU General Public License Usage -## Alternatively, this file may be used under the terms of the GNU -## General Public License version 3.0 as published by the Free Software -## Foundation and appearing in the file LICENSE.GPL included in the -## packaging of this file. Please review the following information to -## ensure the GNU General Public License version 3.0 requirements will be -## met: http://www.gnu.org/copyleft/gpl.html. -## -## ## $QT_END_LICENSE$ ## ############################################################################# @@ -364,6 +356,7 @@ filterDefaultPaths() { local path path=`cat` + path=`"$relpath/config.tests/unix/makeabs" "$path"` echo "$1" | grep "^$path\$" > /dev/null || echo "$path" } @@ -616,7 +609,7 @@ CFG_EGL=auto CFG_EGL_X=auto CFG_FONTCONFIG=auto CFG_FREETYPE=auto -CFG_HARFBUZZ=auto +CFG_HARFBUZZ=qt CFG_SQL_AVAILABLE= QT_ALL_BUILD_PARTS=" libs tools examples tests " QT_DEFAULT_BUILD_PARTS="libs tools examples" @@ -634,6 +627,7 @@ CFG_PPS=auto CFG_QNX_IMF=auto CFG_LGMON=auto CFG_SYSTEM_PROXIES=no +CFG_ANDROID_STYLE_ASSETS=yes # Target architecture CFG_ARCH= @@ -648,7 +642,7 @@ CFG_USE_GNUMAKE=no CFG_XINPUT2=auto CFG_XINPUT=runtime CFG_XKB=auto -CFG_XKBCOMMON=auto +CFG_XKBCOMMON=yes CFG_XKB_CONFIG_ROOT=auto CFG_XCB=auto CFG_XCB_XLIB=auto @@ -682,7 +676,6 @@ CFG_AVX2=auto CFG_REDUCE_RELOCATIONS=auto CFG_ACCESSIBILITY=auto CFG_ACCESSIBILITY_ATSPI_BRIDGE=no # will be enabled depending on dbus and accessibility being enabled -CFG_IWMMXT=no CFG_NEON=auto CFG_MIPS_DSP=auto CFG_MIPS_DSPR2=auto @@ -697,6 +690,7 @@ CFG_INOTIFY=auto CFG_EVENTFD=auto CFG_RPATH=yes CFG_FRAMEWORK=auto +CFG_USE_GOLD_LINKER=auto DEFINES= INCLUDES= D_FLAGS= @@ -706,11 +700,10 @@ RPATH_FLAGS= W_FLAGS= QCONFIG_FLAGS= XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++" -XPLATFORM_MAC=no -XPLATFORM_IOS=no +XPLATFORM_MAC=no # Whether target platform is OS X or iOS +XPLATFORM_IOS=no # Whether target platform is iOS XPLATFORM_ANDROID=no XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*) -XPLATFORM_MAEMO=no XPLATFORM_QNX=no PLATFORM=$QMAKESPEC QT_CROSS_COMPILE=no @@ -722,7 +715,6 @@ CFG_SILENT=no CFG_ALSA=auto CFG_PULSEAUDIO=auto CFG_COREWLAN=auto -CFG_PROCESS=yes CFG_ICU=auto CFG_FORCE_ASSERTS=no CFG_PCRE=auto @@ -1149,6 +1141,23 @@ while [ "$#" -gt 0 ]; do ;; qreal) CFG_QREAL="$VAL" + if [ "$CFG_QREAL" = "float" ]; then + CFG_QREAL_STRING="\"float\"" + elif [ "$CFG_QREAL" != "double" ]; then + if [ -z "$PERL" ]; then + echo "configure needs perl in \$PATH if the -qreal option is used with" >&2 + echo "a value different from \"float\"" >&2 + exit 1 + fi + CFG_QREAL_STRING=`perl -e '$_ = $ARGV[0]; + s/ +/ /g; s/^ +//; s/ +$//; + while (/(.)/g) { + $c = $1; + if ($c =~ /[a-zA-Z0-9]/) { $result .= $c; } + else { $result .= "_" . unpack("H*", $c); } + } + print "\"$result\"";' "$CFG_QREAL"` + fi ;; sysroot) CFG_SYSROOT="$VAL" @@ -1329,6 +1338,7 @@ while [ "$#" -gt 0 ]; do XPLATFORM_MINGW=yes CFG_RPATH=no CFG_REDUCE_EXPORTS=no + CFG_ICU=no ;; esac ;; @@ -1550,9 +1560,6 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi ;; - iwmmxt) - CFG_IWMMXT="yes" - ;; mips_dsp) if [ "$VAL" = "no" ]; then CFG_MIPS_DSP="$VAL" @@ -1574,6 +1581,13 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi ;; + use-gold-linker) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_USE_GOLD_LINKER="$VAL" + else + UNKNOWN_OPT=yes + fi + ;; zlib) [ "$VAL" = "qt" ] && VAL=yes if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then @@ -2050,15 +2064,6 @@ while [ "$#" -gt 0 ]; do silent) CFG_SILENT="$VAL" ;; - dont-process) - CFG_PROCESS=no - ;; - process) - CFG_PROCESS=partial - ;; - fully-process) - CFG_PROCESS=full - ;; audio-backend) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_AUDIO_BACKEND="$VAL" @@ -2140,6 +2145,13 @@ while [ "$#" -gt 0 ]; do android-toolchain-version) CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION="$VAL" ;; + android-style-assets) + if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then + CFG_ANDROID_STYLE_ASSETS="$VAL" + else + UNKNOWN_OPT=yes + fi + ;; l*) # -lfoo if [ "$VAL" = "yes" ]; then L_FLAGS="$L_FLAGS -l\"${VAR#l}\"" @@ -2257,10 +2269,6 @@ Configure options: * -shared ............ Create and use shared Qt libraries. -static ............ Create and use static Qt libraries. - * -process ........... Generate only a top-level Makefile. - -fully-process ..... Generate Makefiles for the entire Qt tree. - -dont-process ...... Do not generate any Makefiles. - -no-largefile ...... Disables large file support. + -largefile ......... Enables Qt to access files larger than 4 GB. @@ -2349,13 +2357,14 @@ Third Party Libraries: + -system-freetype.... Use the libfreetype provided by the system (enabled if -fontconfig is active). See http://www.freetype.org - * -no-harfbuzz ....... Do not compile HarfBuzz-NG support. - -qt-harfbuzz ....... (experimental) Use HarfBuzz-NG bundled with Qt - to do text shaping. It can still be disabled - by setting QT_HARFBUZZ environment variable to "old". - -system-harfbuzz ... (experimental) Use HarfBuzz-NG from the operating system + -no-harfbuzz ....... Do not compile HarfBuzz-NG support. + * -qt-harfbuzz ....... Use HarfBuzz-NG bundled with Qt to do text shaping. + It can still be disabled by setting + the QT_HARFBUZZ environment variable to "old". + -system-harfbuzz ... Use HarfBuzz-NG from the operating system to do text shaping. It can still be disabled - by setting QT_HARFBUZZ environment variable to "old". + by setting the QT_HARFBUZZ environment variable to "old". + See http://www.harfbuzz.org -no-openssl ........ Do not compile support for OpenSSL. + -openssl ........... Enable run-time OpenSSL support. @@ -2460,6 +2469,9 @@ Additional options: linker optimizations (Qt/X11 and Qt for Embedded Linux only; experimental; needs GNU ld >= 2.18). + -no-use-gold-linker ..... Do not link using the GNU gold linker. + + -use-gold-linker ........ Link using the GNU gold linker if available. + -force-asserts ........ Force Q_ASSERT to be enabled even in release builds. -device <name> ............... Cross-compile for device <name> (experimental) @@ -2504,7 +2516,7 @@ Additional options: -no-opengl .......... Do not support OpenGL. -opengl <api> ....... Enable OpenGL support With no parameter, this will attempt to auto-detect - OpenGL ES 2, or regular desktop OpenGL. + OpenGL ES 2.0 and higher, or regular desktop OpenGL. Use es2 for <api> to override auto-detection. * -no-system-proxies .. Do not use system network proxies by default. @@ -2561,6 +2573,14 @@ Android options: -android-toolchain-version ..... Sets the android toolchain version (default $CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION) + + -no-android-style-assets ....... Do not compile in the code which automatically extracts + style assets from the run-time device. Setting this will + make the Android style behave incorrectly, but will enable + compatibility with the LGPL2.1 license. + * -android-style-assets .......... Compile the code which automatically extracts style assets + from the run-time device. This option will make the + Android platform plugin incompatible with the LGPL2.1. EOF exit 0 @@ -2743,9 +2763,6 @@ case "$XPLATFORM" in *win32-g++*) XPLATFORM_MINGW=yes ;; - *-maemo*) - XPLATFORM_MAEMO=yes - ;; *qnx-*|*blackberry-*) XPLATFORM_QNX=yes ;; @@ -2811,7 +2828,7 @@ elif [ $COMMERCIAL_USER = "yes" ]; then exit 1 fi elif [ $COMMERCIAL_USER = "no" ]; then - # Open Source edition - may only be used under the terms of the GPL or LGPL. + # Open Source edition - may only be used under the terms of the LGPLv3 or LGPLv21. Licensee="Open Source" Edition="OpenSource" EditionString="Open Source" @@ -2825,24 +2842,31 @@ fi if [ "$Edition" = "OpenSource" ]; then while true; do - echo "You are licensed to use this software under the terms of" - echo "the Lesser GNU General Public License (LGPL) versions 2.1." - if [ -f "$relpath/LICENSE.GPL" ]; then + if [ "$CFG_ANDROID_STYLE_ASSETS" = "no" ] || [ "$XPLATFORM_ANDROID" = "no" ]; then + echo "You are licensed to use this software under the terms of" + echo "the Lesser GNU General Public License (LGPL) versions 2.1." echo "You are also licensed to use this software under the terms of" - echo "the GNU General Public License (GPL) versions 3." + echo "the GNU Lesser General Public License (LGPL) versions 3." affix="either" + showLGPL2="yes" else + echo "You are licensed to use this software under the terms of" + echo "the GNU Lesser General Public License (LGPL) versions 3." + showLGPL2="no" affix="the" fi + echo if [ "$OPT_CONFIRM_LICENSE" = "yes" ]; then echo "You have already accepted the terms of the $EditionString license." acceptance=yes else - if [ -f "$relpath/LICENSE.GPL" ]; then - echo "Type '3' to view the GNU General Public License version 3." + if [ -f "$relpath/LICENSE.LGPLv3" ]; then + echo "Type '3' to view the GNU Lesser General Public License version 3." + fi + if [ "$showLGPL2" = "yes" ]; then + echo "Type 'L' to view the Lesser GNU General Public License version 2.1." fi - echo "Type 'L' to view the Lesser GNU General Public License version 2.1." echo "Type 'yes' to accept this license offer." echo "Type 'no' to decline this license offer." echo @@ -2857,9 +2881,9 @@ if [ "$Edition" = "OpenSource" ]; then echo exit 1 elif [ "$acceptance" = "3" ]; then - more "$relpath/LICENSE.GPL" - elif [ "$acceptance" = "L" ]; then - more "$relpath/LICENSE.LGPL" + more "$relpath/LICENSE.LGPLv3" + elif [ "$acceptance" = "L" ] && [ "$showLGPL2" = "yes" ]; then + more "$relpath/LICENSE.LGPLv21" fi done elif [ "$Edition" = "Preview" ]; then @@ -3119,9 +3143,12 @@ if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then QMAKE_CONFIG="$QMAKE_CONFIG force_debug_info" fi +if [ "$XPLATFORM_MAC" = "yes" ]; then + [ "$CFG_PKGCONFIG" = "auto" ] && CFG_PKGCONFIG="no" +fi + if [ "$XPLATFORM_IOS" = "yes" ]; then CFG_RPATH="no" - CFG_PKGCONFIG="no" CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS examples" CFG_SHARED="no" # iOS builds should be static to be able to submit to the App Store CFG_SKIP_MODULES="$CFG_SKIP_MODULES qtconnectivity qtdoc qtmacextras qtserialport qtwebkit qtwebkit-examples" @@ -3167,6 +3194,9 @@ if [ "$XPLATFORM_ANDROID" = "yes" ] ; then esac QMAKE_CONF_COMPILER=$CFG_DEFAULT_ANDROID_NDK_ROOT/toolchains/$ANDROID_NDK_TOOLS_PREFIX-$CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION/prebuilt/$CFG_DEFAULT_ANDROID_NDK_HOST/bin/$ANDROID_NDK_TOOLS_PREFIX-g++ TEST_COMPILER="$QMAKE_CONF_COMPILER --sysroot=$CFG_DEFAULT_ANDROID_NDK_ROOT/platforms/$CFG_DEFAULT_ANDROID_PLATFORM/$ANDROID_PLATFORM_ARCH/" + if [ "$CFG_ANDROID_STYLE_ASSETS" = "yes" ]; then + QMAKE_CONFIG="$QMAKE_CONFIG android-style-assets" + fi fi if [ "$XPLATFORM_SYMBIAN_SBSV2" = "no" ]; then @@ -3225,6 +3255,19 @@ if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then fi fi +# auto-detect -fuse-ld=gold support +if [ "$CFG_USE_GOLD_LINKER" != "no" ]; then + if linkerSupportsFlag $TEST_COMPILER -fuse-ld=gold; then + CFG_USE_GOLD_LINKER=yes + else + if [ "$CFG_USE_GOLD_LINKER" = "yes" ]; then + echo "-use-gold-linker was requested but this compiler does not support it" + exit 1 + fi + CFG_USE_GOLD_LINKER=no + fi +fi + # auto-detect -fstack-protector-strong support (for QNX only currently) if [ "$XPLATFORM_QNX" = "yes" ]; then if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then @@ -4088,14 +4131,14 @@ if [ "${CFG_AVX2}" = "auto" ]; then fi fi -# check iWMMXt support -if [ "$CFG_IWMMXT" = "yes" ]; then - compileTest unix/iwmmxt "iwmmxt" - if [ $? != "0" ]; then - echo "The iWMMXt functionality test failed!" - echo " Please make sure your compiler supports iWMMXt intrinsics!" - exit 1 - fi +# check Neon support +if [ "$CFG_NEON" = "auto" ]; then + # no compile test, just check what the compiler has + case "$CFG_CPUFEATURES" in + *neon*) + CFG_NEON=yes + ;; + esac fi # detect mips_dsp support @@ -4708,7 +4751,7 @@ fi # X11/MINGW OpenGL if [ "$XPLATFORM_MINGW" = "yes" ]; then - # auto-detect OpenGL support (es2 = OpenGL ES 2.x) + # auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher) if [ "$CFG_GUI" = "no" ]; then if [ "$CFG_OPENGL" = "auto" ]; then CFG_OPENGL=no @@ -4722,7 +4765,7 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then if compileTest x11/opengl "OpenGL"; then CFG_OPENGL=desktop - elif compileTest unix/opengles2 "OpenGL ES 2.x"; then + elif compileTest unix/opengles2 "OpenGL ES 2.0"; then CFG_OPENGL=es2 else if [ "$CFG_OPENGL" = "yes" ]; then @@ -4748,8 +4791,8 @@ if [ "$XPLATFORM_MINGW" = "yes" ]; then ;; esac elif [ "$CFG_OPENGL" = "es2" ]; then - #OpenGL ES 2.x - compileTest unix/opengles2 "OpenGL ES 2.x" + #OpenGL ES 2.0 + compileTest unix/opengles2 "OpenGL ES 2.0" if [ $? != "0" ]; then echo "The OpenGL ES 2.0 functionality test failed!" echo " You might need to modify the include and library search paths by editing" @@ -4791,11 +4834,11 @@ if [ "$XPLATFORM_MAC" = "yes" ]; then fi fi -# auto-detect OpenGL support (es2 = OpenGL ES 2.x) +# auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher) if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then if compileTest unix/opengldesktop "OpenGL"; then CFG_OPENGL=desktop - elif compileTest unix/opengles2 "OpenGL ES 2.x"; then + elif compileTest unix/opengles2 "OpenGL ES 2.0"; then CFG_OPENGL=es2 else if [ "$CFG_OPENGL" = "yes" ]; then @@ -4808,7 +4851,7 @@ if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then CFG_OPENGL=no fi elif [ "$CFG_OPENGL" = "es2" ]; then - #OpenGL ES 2.x + #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'` @@ -4819,7 +4862,7 @@ elif [ "$CFG_OPENGL" = "es2" ]; then QMakeVar set QMAKE_LIBS_OPENGL_ES2 "`shellArgumentListToQMakeList "$QMAKE_LIBS_OPENGL_ES2"`" fi - compileTest unix/opengles2 "OpenGL ES 2.x" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2 + compileTest unix/opengles2 "OpenGL ES 2.0" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2 if [ $? != "0" ]; then echo "The OpenGL ES 2.0 functionality test failed!" echo " You might need to modify the include and library search paths by editing" @@ -4839,6 +4882,21 @@ elif [ "$CFG_OPENGL" = "desktop" ]; then fi fi +# If OpenGL ES 2.0 is enabled, check for 3.0 and higher. This is used to allow +# compile-time differentiation and including the version specific (but backwards +# compatible) ES headers (for example, GLES3/gl31.h). Other than that, there is +# no difference in the configuration, even the library is the same. +if [ "$CFG_OPENGL" = "es2" ]; then + if compileTest unix/opengles3 "OpenGL ES 3.0" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2; then + # Add a define for ES3, in addition to ES and ES2. + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3" + fi + if compileTest unix/opengles31 "OpenGL ES 3.1" $QMAKE_LIBS_OPENGL_ES2 $QMAKE_CFLAGS_OPENGL_ES2; then + # Add a define for ES31. + QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3_1" + fi +fi + # auto-detect FontConfig support if [ "$CFG_FONTCONFIG" != "no" ]; then if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then @@ -5088,10 +5146,10 @@ fi # Detect libxkbcommon MIN_REQ_XKBCOMMON="0.4.1" -ORIG_CFG_XKBCOMMON="$CFG_XKBCOMMON" # currently only xcb platform plugin supports building xkbcommon if [ "$CFG_XCB" != "no" ]; then - if [ "$CFG_XKBCOMMON" = "auto" ] || [ "$CFG_XKBCOMMON" = "system" ]; then + if [ "$CFG_XKBCOMMON" != "no" ] && [ "$CFG_XKBCOMMON" != "qt" ]; then + # Check if there is a suitable system-wide xkbcommon if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xkbcommon xkbcommon-x11 >= $MIN_REQ_XKBCOMMON" 2>/dev/null; then QMAKE_CFLAGS_XKBCOMMON="`$PKG_CONFIG --cflags xkbcommon xkbcommon-x11 2>/dev/null`" QMAKE_LIBS_XKBCOMMON="`$PKG_CONFIG --libs xkbcommon xkbcommon-x11 2>/dev/null`" @@ -5099,6 +5157,13 @@ if [ "$CFG_XCB" != "no" ]; then QMakeVar set QMAKE_CFLAGS_XKBCOMMON "$QMAKE_CFLAGS_XKBCOMMON" QMakeVar set QMAKE_LIBS_XKBCOMMON "$QMAKE_LIBS_XKBCOMMON" CFG_XKBCOMMON=system + elif [ "$CFG_XKBCOMMON" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then + echo " xkbcommon support cannot be enabled because either xkbcommon or " + echo " xkbcommon-x11 >= $MIN_REQ_XKBCOMMON was not found via pkg-config!" + echo " Turn on verbose messaging (-v) to $0 to see the final report." + echo " If you believe this message is in error you may use the continue" + echo " switch (-continue) to $0 to continue." + exit 101 else # use the bundled version instead CFG_XKBCOMMON=qt @@ -5258,18 +5323,22 @@ if [ "$CFG_FREETYPE" = "auto" ]; then fi # harfbuzz support -[ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_HARFBUZZ" = "auto" ] && CFG_HARFBUZZ=yes -[ "$CFG_HARFBUZZ" = "auto" ] && CFG_HARFBUZZ=no # disable auto-detection on non-Mac for now -if [ "$CFG_HARFBUZZ" = "auto" ]; then - if compileTest unix/harfbuzz "HarfBuzz"; then - CFG_HARFBUZZ=system - else - CFG_HARFBUZZ=yes +if [ "$CFG_HARFBUZZ" = "system" ]; then + if ! compileTest unix/harfbuzz "HarfBuzz"; then + if [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then + echo " HarfBuzz system library support cannot be enabled due to functionality tests!" + echo " Turn on verbose messaging (-v) to $0 to see the final report." + echo " If you believe this message is in error you may use the continue" + echo " switch (-continue) to $0 to continue." + exit 101 + else + CFG_HARFBUZZ=qt + fi fi fi -if [ "$XPLATFORM_MAC" = "yes" -a "$CFG_HARFBUZZ" = "system" ]; then +if [ "$XPLATFORM_MAC" = "yes" -a "$CFG_HARFBUZZ" != "qt" ]; then echo - echo "WARNING: AAT is not supported with -system-harfbuzz on Mac OS X." + echo "WARNING: On OS X, AAT is supported only with -qt-harfbuzz." echo fi @@ -5586,6 +5655,7 @@ fi [ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations" [ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip" [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header" +[ "$CFG_USE_GOLD_LINKER" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG use_gold_linker" if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then QT_CONFIG="$QT_CONFIG separate_debug_info" fi @@ -5596,7 +5666,7 @@ fi [ "$CFG_SSE4_2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_2" [ "$CFG_AVX" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx" [ "$CFG_AVX2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG avx2" -[ "$CFG_IWMMXT" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG iwmmxt" +[ "$CFG_NEON" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG neon" if [ "$CFG_ARCH" = "mips" ]; then [ "$CFG_MIPS_DSP" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dsp" [ "$CFG_MIPS_DSPR2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG mips_dspr2" @@ -5994,6 +6064,7 @@ fi if [ "$CFG_QREAL" != double ]; then echo "#define QT_COORD_TYPE $CFG_QREAL" >>"$outpath/src/corelib/global/qconfig.h.new" + echo "#define QT_COORD_TYPE_STRING $CFG_QREAL_STRING" >>"$outpath/src/corelib/global/qconfig.h.new" fi if [ "$CFG_FRAMEWORK" = "yes" ]; then @@ -6022,12 +6093,11 @@ fi echo "" >>"$outpath/src/corelib/global/qconfig.h.new" echo "// Compiler sub-arch support" >>"$outpath/src/corelib/global/qconfig.h.new" for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \ - IWMMXT \ MIPS_DSP MIPS_DSPR2; do eval "VAL=\$CFG_$SUBARCH" case "$VAL" in yes) - echo "#define QT_COMPILER_SUPPORTS_$SUBARCH" \ + echo "#define QT_COMPILER_SUPPORTS_$SUBARCH 1" \ >>"$outpath/src/corelib/global/qconfig.h.new" ;; esac @@ -6422,10 +6492,10 @@ echo " Configure summary" echo if [ "$XPLATFORM" = "$PLATFORM" ]; then # the missing space before $CFG_FEATURES is intentional - echo "Build type: $PLATFORM ($CFG_ARCH, CPU features:${CFG_CPUFEATURES- none detected})" + echo "Build type: $PLATFORM ($CFG_ARCH, CPU features:${CFG_CPUFEATURES:- none detected})" else - echo "Building on: $PLATFORM ($CFG_HOST_ARCH, CPU features:${CFG_HOST_CPUFEATURES- none detected})" - echo "Building for: $XPLATFORM ($CFG_ARCH, CPU features:${CFG_CPUFEATURES- none detected})" + echo "Building on: $PLATFORM ($CFG_HOST_ARCH, CPU features:${CFG_HOST_CPUFEATURES:- none detected})" + echo "Building for: $XPLATFORM ($CFG_ARCH, CPU features:${CFG_CPUFEATURES:- none detected})" fi @@ -6459,6 +6529,7 @@ else fi unset build_mode release echo " Using C++11 ............ $CFG_CXX11" +echo " Using gold linker....... $CFG_USE_GOLD_LINKER" echo " Using PCH .............. $CFG_PRECOMPILE" echo " Target compiler supports:" if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then @@ -6466,7 +6537,7 @@ if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then echo " SSE4.1/SSE4.2 ........ ${CFG_SSE4_1}/${CFG_SSE4_2}" echo " AVX/AVX2 ............. ${CFG_AVX}/${CFG_AVX2}" elif [ "$CFG_ARCH" = "arm" ]; then - echo " iWMMXt/Neon .......... ${CFG_IWMMXT}/${CFG_NEON}" + echo " Neon ................. ${CFG_NEON}" elif [ "$CFG_ARCH" = "mips" ]; then echo " DSP/DSPr2 ............ ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}" fi @@ -6497,7 +6568,7 @@ report_support " FontConfig ............." "$CFG_FONTCONFIG" report_support " FreeType ..............." "$CFG_FREETYPE" system "system library" yes "bundled copy" report_support " Glib ..................." "$CFG_GLIB" report_support " GTK theme .............." "$CFG_QGTKSTYLE" -report_support " HarfBuzz ..............." "$CFG_HARFBUZZ" +report_support " HarfBuzz ..............." "$CFG_HARFBUZZ" system "system library" qt "bundled copy" report_support " Iconv .................." "$CFG_ICONV" report_support " ICU ...................." "$CFG_ICU" report_support " Image formats:" @@ -6516,7 +6587,7 @@ report_support " OpenSSL .............." "$CFG_OPENSSL" yes "loading librarie report_support " NIS ...................." "$CFG_NIS" report_support " OpenGL / OpenVG:" report_support " EGL .................." "$CFG_EGL" -report_support " OpenGL ..............." "$CFG_OPENGL" yes "Desktop OpenGL" es2 "OpenGL ES 2.x" +report_support " OpenGL ..............." "$CFG_OPENGL" yes "Desktop OpenGL" es2 "OpenGL ES 2.0+" report_support " OpenVG ..............." "$CFG_OPENVG-$CFG_OPENVG_SHIVA" yes-yes "ShivaVG" yes-no "native" report_support " PCRE ..................." "$CFG_PCRE" yes "system library" qt "bundled copy" if [ -n "$PKG_CONFIG" ]; then @@ -6577,7 +6648,6 @@ if [ "$CFG_SHARED" = "no" ]; then echo "WARNING: Using static linking will disable the use of dynamically" echo "loaded plugins. Make sure to import all needed static plugins," echo "or compile needed modules into the library." - echo fi if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then echo @@ -6585,17 +6655,21 @@ if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then echo "library names through OPENSSL_LIBS." echo "For example:" echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" - echo fi -if [ "$ORIG_CFG_XKBCOMMON" != qt ] && [ "$CFG_XKBCOMMON" = qt ]; then - echo "NOTE: libxkbcommon and libxkbcommon-x11 $MIN_REQ_XKBCOMMON or higher not found on the system, will use " - echo "the bundled version from 3rd party directory." +if [ "$CFG_JOURNALD" = "yes" ] || [ "$CFG_SLOG2" = "yes" ]; then + echo + echo "NOTE: journald or slog2 integration is enabled." + echo "If your users intend on developing applications against this build," + echo "ensure that the IDEs they use either set QT_LOGGING_TO_CONSOLE to 1" + echo "or the IDE is able to read the logged output from journald or slog2." fi if [ "$CFG_XKBCOMMON" = "qt" ] && [ "$CFG_XKB_CONFIG_ROOT" = "not found" ]; then + echo echo "WARNING: Could not find XKB config root, use -xkb-config-root to set a path to " echo "XKB configuration data. This is required for keyboard input support." fi if [ "$CFG_QREAL" = double ] && [ "$CFG_ARCH" = arm ]; then + echo echo "NOTE: Qt is using double for qreal on this system. This is binary incompatible against Qt 5.1." echo "Configure with '-qreal float' to create a build that is binary compatible with 5.1." fi @@ -6621,7 +6695,6 @@ rm -f "$QMAKE_VARS_FILE" 2>/dev/null # build makefiles based on the configuration #------------------------------------------------------------------------------- -if [ "$CFG_PROCESS" != "no" ]; then ( # fork to make the cd stay local relpathMangled=$relpath @@ -6630,16 +6703,9 @@ if [ "$CFG_PROCESS" != "no" ]; then cd .. fi - if [ "$CFG_PROCESS" = "full" ]; then - echo "Creating makefiles. Please wait..." - "$outpath/bin/qmake" -r "$relpathMangled" - echo "Done" - else - "$outpath/bin/qmake" "$relpathMangled" - fi + "$outpath/bin/qmake" "$relpathMangled" -) -fi +) || exit #------------------------------------------------------------------------------- # check for platforms that we don't yet know about |