diff options
Diffstat (limited to 'configure')
-rwxr-xr-x | configure | 5855 |
1 files changed, 77 insertions, 5778 deletions
@@ -42,7 +42,6 @@ outpath=`/bin/pwd` # where to find which.. unixtests="$relpath/config.tests/unix" -mactests="$relpath/config.tests/mac" WHICH="$unixtests/which.test" PERL=`$WHICH perl 2>/dev/null` @@ -84,6 +83,8 @@ fi # later cache the command line in config.status OPT_CMDLINE= for i in "$@"; do + QMAKE_CMDLINE="$QMAKE_CMDLINE +$i" if [ "x$i" != "x-v" ]; then [ -z "${i##* *}" ] && i="'$i'" OPT_CMDLINE="$OPT_CMDLINE $i" @@ -91,13 +92,6 @@ for i in "$@"; do done # initialize global variables -CONFIG_SEPARATORS=`printf ' \t'` -QMAKE_SWITCHES= -QMAKE_VARS= -QMAKE_CONFIG= -QTCONFIG_CONFIG= -QT_CONFIG= -SUPPORTED= QMAKE_VARS_FILE=.qmake.vars DEVICE_VARS_FILE=.device.vars HOST_VARS_FILE=.host.vars @@ -110,11 +104,6 @@ HOST_VARS_FILE=.host.vars # utility functions #------------------------------------------------------------------------------- -shellEscape() -{ - echo "$@" | sed 's/ /\ /g' -} - makeabs() { local FILE="$1" @@ -158,21 +147,6 @@ QMakeVar() echo "$2" "$eq" "$3" >> "$QMAKE_VARS_FILE" } -shellArgumentListToQMakeListHelper() -{ - local retval - for arg in "$@"; do retval="$retval \"$arg\""; done - echo "$retval" -} - -# Convert a string usable on a shell command line into word-by-word quoted -# qmake list. -shellArgumentListToQMakeList() -{ - # eval is needed for the shell to interpret the backslash escape sequences - eval shellArgumentListToQMakeListHelper "$@" -} - # Helper function for getQMakeConf. It parses include statements in # qmake.conf and prints out the expanded file expandQMakeConf() @@ -295,6 +269,12 @@ macSDKify() iphonesimulator*) version_min_flag="-mios-simulator-version-min=$(getSingleQMakeVariable QMAKE_IOS_DEPLOYMENT_TARGET "$1")" ;; + appletvos*) + version_min_flag="-mappletvos-version-min=$(getSingleQMakeVariable QMAKE_TVOS_DEPLOYMENT_TARGET "$1")" + ;; + appletvsimulator*) + version_min_flag="-mtvos-simulator-version-min=$(getSingleQMakeVariable QMAKE_TVOS_DEPLOYMENT_TARGET "$1")" + ;; *) ;; esac @@ -342,113 +322,6 @@ getXQMakeConf() getSingleQMakeVariable "$1" "$xspecvals" } -testXConfig() -{ - # Put a space on each end of the CONFIG value so that searching for the - # target with whitespace on either side will work even when it's the - # first/last/only item in the CONFIG value. - case \ `getXQMakeConf CONFIG`\ in - *[${CONFIG_SEPARATORS}]$1[${CONFIG_SEPARATORS}]*) - return 0 - ;; - *) - return 1 - ;; - esac -} - -compilerSupportsFlag() -{ - cat >conftest.cpp <<EOF -int main() { return 0; } -EOF - if [ "$OPT_VERBOSE" = "yes" ]; then - "$@" -o conftest-out conftest.cpp - else - "$@" -o conftest-out conftest.cpp >/dev/null 2>&1 - fi - ret=$? - rm -f conftest.cpp conftest-out - return $ret -} - -linkerSupportsFlag() -{ - compiler=$1 - shift - lflags=-Wl - for flag - do - safe_flag=`shellEscape "$flag"` - lflags=$lflags,$safe_flag - done - if [ $CFG_USE_GOLD_LINKER = yes ]; then - lflags="-fuse-ld=gold $lflags" - fi - compilerSupportsFlag $compiler $lflags -} - -# $1: newline-separated list of default paths -# stdin: input path -# stdout: input path or nothing -filterDefaultPaths() -{ - local path - path=`cat` - path=`makeabs "$path"` - echo "$1" | grep "^$path\$" > /dev/null || echo "$path" -} - -filterIncludePath() -{ - filterDefaultPaths "$DEFAULT_INCDIRS" -} - -filterLibraryPath() -{ - filterDefaultPaths "$DEFAULT_LIBDIRS" -} - -filterPathOptionsHelper() -{ - local flag defpaths sep p path - flag=$1; shift - defpaths=$1; shift - sep= - for p in "$@"; do - path=${p#$flag} - if [ "x$path" != "x$p" ]; then - path=`echo "$path" | filterDefaultPaths "$defpaths"` - test -z "$path" && continue - fi - # Re-quote for shell & qmake - p=`echo "$p" | sed 's,[^ ]* .*,"&",g'` - printf "%s%s" "$sep" "$p" - sep=" " - done - echo -} - -# $1: flag -# $2: newline-separated list of default paths -# stdin: list of command line options -# sdout: stdin without the options naming default paths -filterPathOptions() -{ - # The eval does escape interpretation for us - eval filterPathOptionsHelper $1 "\"$2\"" "`cat`" -} - -filterIncludeOptions() -{ - filterPathOptions -I "$DEFAULT_INCDIRS" -} - -filterLibraryOptions() -{ - filterPathOptions -L "$DEFAULT_LIBDIRS" -} - #------------------------------------------------------------------------------- # device options #------------------------------------------------------------------------------- @@ -517,10 +390,6 @@ else ECHO_C='\c' fi -#------------------------------------------------------------------------------- -# window system detection -#------------------------------------------------------------------------------- - BUILD_ON_MAC=no if [ -d /System/Library/Frameworks/Carbon.framework ]; then BUILD_ON_MAC=yes @@ -605,200 +474,27 @@ mkdir -p "$outpath/config.tests" rm -f "$outpath/config.tests/.qmake.cache" cp "$QMAKE_VARS_FILE" "$outpath/config.tests/.qmake.cache" -QMakeVar add styles "mac fusion windows" - # QTDIR may be set and point to an old or system-wide Qt installation unset QTDIR -# the minimum version of libdbus-1 that we require: -MIN_DBUS_1_VERSION=1.2 - # initalize internal variables -CFG_CONFIGURE_EXIT_ON_ERROR=yes -CFG_PROFILE=no -CFG_STRIP=yes -CFG_GUI=auto # (yes|no|auto) -CFG_WIDGETS=yes -CFG_QCONFIG=full -CFG_DEBUG=auto -CFG_MYSQL_CONFIG= -CFG_PSQL_CONFIG= -CFG_DEBUG_RELEASE=no -CFG_FORCEDEBUGINFO=no CFG_RELEASE_TOOLS=no -CFG_SHARED=yes -CFG_SM=auto -CFG_XSHAPE=auto -CFG_XSYNC=auto -CFG_XFIXES=runtime -CFG_ZLIB=auto -CFG_MTDEV=auto -CFG_JOURNALD=no -CFG_SYSLOG=no -CFG_SQLITE=qt -CFG_GIF=auto -CFG_PNG=yes -CFG_LIBPNG=auto -CFG_JPEG=auto -CFG_LIBJPEG=auto -CFG_XCURSOR=runtime -CFG_XRANDR=runtime -CFG_XRENDER=auto -CFG_MITSHM=auto -CFG_OPENGL=auto -CFG_OPENGLES3=yes # still depends on CFG_OPENGL, so auto in practice -CFG_OPENVG=auto -CFG_OPENVG_LC_INCLUDES=no -CFG_OPENVG_SHIVA=auto -CFG_OPENVG_ON_OPENGL=auto -CFG_EGL=auto -CFG_EGL_X=auto -CFG_DOUBLECONVERSION=auto -CFG_FONTCONFIG=auto -CFG_FREETYPE=auto -CFG_HARFBUZZ=auto -CFG_SQL_AVAILABLE= -QT_ALL_BUILD_PARTS=" libs tools examples tests " -QT_DEFAULT_BUILD_PARTS="libs tools examples" -CFG_BUILD_PARTS="" -CFG_NOBUILD_PARTS="" -CFG_SKIP_MODULES="" -CFG_COMPILE_EXAMPLES=yes -CFG_AUDIO_BACKEND=auto -CFG_QML_DEBUG=yes -CFG_PKGCONFIG=auto -CFG_STACK_PROTECTOR_STRONG=auto -CFG_SLOG2=auto -CFG_PPS=auto -CFG_QNX_IMF=auto -CFG_LGMON=auto -CFG_SYSTEM_PROXIES=no CFG_ANDROID_STYLE_ASSETS=yes -CFG_GSTREAMER=auto -CFG_GSTREAMER_VERSION="" -CFG_ATOMIC64=auto - -# Target architecture -CFG_ARCH= -CFG_CPUFEATURES= -# Host architecture, same as CFG_ARCH when not cross-compiling -CFG_HOST_ARCH= -CFG_HOST_CPUFEATURES= -# Set when the -arch or -host-arch arguments are used -OPT_OBSOLETE_HOST_ARG=no - -CFG_USE_GNUMAKE=no -CFG_XINPUT2=auto -CFG_XKB=auto -CFG_XKBCOMMON=yes -CFG_XKBCOMMON_EVDEV=auto -CFG_XKB_CONFIG_ROOT=auto -CFG_XCB=auto -CFG_XCB_XLIB=auto -CFG_XCB_GLX=no -CFG_EGLFS=auto -CFG_EGLFS_BRCM=no -CFG_EGLFS_EGLDEVICE=no -CFG_EGLFS_MALI=no -CFG_EGLFS_VIV=no -CFG_EGLFS_VIV_WL=no -CFG_DIRECTFB=no -CFG_GBM=auto -CFG_LINUXFB=auto -CFG_INTEGRITYFB=no -CFG_KMS=auto -CFG_MIRCLIENT=auto -CFG_LIBUDEV=auto -CFG_LIBINPUT=auto -CFG_OBSOLETE_WAYLAND=no -CFG_EVDEV=auto -CFG_TSLIB=auto -CFG_CUPS=auto -CFG_ICONV=auto -CFG_DBUS=auto -CFG_GLIB=auto -CFG_GTK=auto -CFG_LARGEFILE=auto -CFG_OPENSSL=auto -CFG_LIBPROXY=auto -CFG_SECURETRANSPORT=auto -CFG_PRECOMPILE=auto -CFG_LTCG=no -CFG_SEPARATE_DEBUG_INFO=no -CFG_REDUCE_EXPORTS=auto -CFG_SSE2=auto -CFG_SSE3=auto -CFG_SSSE3=auto -CFG_SSE4_1=auto -CFG_SSE4_2=auto -CFG_AVX=auto -CFG_AVX2=auto -CFG_AVX512=auto -CFG_REDUCE_RELOCATIONS=auto -CFG_ACCESSIBILITY=auto -CFG_ACCESSIBILITY_ATSPI_BRIDGE=no # will be enabled depending on dbus and accessibility being enabled -CFG_NEON=auto -CFG_MIPS_DSP=auto -CFG_MIPS_DSPR2=auto -CFG_CLOCK_GETTIME=auto -CFG_CLOCK_MONOTONIC=auto -CFG_POSIX_FALLOCATE=auto -CFG_MREMAP=auto -CFG_GETADDRINFO=auto -CFG_IPV6IFNAME=auto -CFG_GETIFADDRS=auto -CFG_INOTIFY=auto -CFG_EVENTFD=auto -CFG_CLOEXEC=no -CFG_POLL=auto -CFG_RPATH=yes -CFG_FRAMEWORK=auto -CFG_USE_GOLD_LINKER=auto -CFG_ENABLE_NEW_DTAGS=auto -DEFINES= -INCLUDES= -D_FLAGS= -I_FLAGS= -L_FLAGS= -RPATH_FLAGS= -W_FLAGS= -QCONFIG_FLAGS= + XPLATFORM= # This seems to be the QMAKESPEC, like "linux-g++" -XPLATFORM_MAC=no # Whether target platform is OS X or iOS +XPLATFORM_MAC=no # Whether target platform is OS X, iOS or tvOS XPLATFORM_IOS=no # Whether target platform is iOS +XPLATFORM_TVOS=no # Whether target platform is tvOS XPLATFORM_ANDROID=no XPLATFORM_MINGW=no # Whether target platform is MinGW (win32-g++*) -XPLATFORM_QNX=no -XPLATFORM_HAIKU=no -XPLATFORM_INTEGRITY=no PLATFORM=$QMAKESPEC -QT_CROSS_COMPILE=no OPT_CONFIRM_LICENSE=no OPT_SHADOW=maybe OPT_VERBOSE=no OPT_HELP= CFG_SILENT=no -CFG_ALSA=auto -CFG_PULSEAUDIO=auto -CFG_COREWLAN=auto -CFG_ICU=auto -CFG_FORCE_ASSERTS=no -CFG_SANITIZERS=none -CFG_SANITIZE_ADDRESS=no -CFG_SANITIZE_THREAD=no -CFG_SANITIZE_MEMORY=no -CFG_SANITIZE_UNDEFINED=no -CFG_PCRE=auto -QPA_PLATFORM_GUARD=yes -CFG_STDCXX=auto -CFG_DIRECTWRITE=no -CFG_DIRECTWRITE2=auto -CFG_WERROR=auto -CFG_HEADERSCLEAN=auto -CFG_QREAL=double OPT_MAC_SDK= COMMERCIAL_USER=ask -LICENSE_FILE= CFG_DEV=no # initalize variables used for installation @@ -818,34 +514,13 @@ QT_INSTALL_SETTINGS= QT_INSTALL_EXAMPLES= QT_INSTALL_TESTS= CFG_SYSROOT= -CFG_GCC_SYSROOT="yes" QT_HOST_PREFIX= QT_HOST_BINS= QT_HOST_LIBS= QT_HOST_DATA= QT_EXT_PREFIX= -#flags for SQL drivers -QT_CFLAGS_PSQL= -QT_LFLAGS_PSQL= -QT_CFLAGS_MYSQL= -QT_LFLAGS_MYSQL= -QT_LFLAGS_MYSQL_R= -QT_CFLAGS_SQLITE= -QT_LFLAGS_SQLITE= -QT_LFLAGS_ODBC="-lodbc" -QT_LFLAGS_TDS= - -# flags for libdbus-1 -QT_CFLAGS_DBUS= -QT_LIBS_DBUS= - -# flags for Glib (X11 only) -QT_CFLAGS_GLIB= -QT_LIBS_GLIB= - # default qpa platform -QT_QPA_DEFAULT_PLATFORM= # Android vars CFG_DEFAULT_ANDROID_NDK_ROOT=$ANDROID_NDK_ROOT @@ -856,36 +531,6 @@ CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION=4.9 CFG_DEFAULT_ANDROID_NDK_HOST=$ANDROID_NDK_HOST #------------------------------------------------------------------------------- -# check SQL drivers available in this package -#------------------------------------------------------------------------------- - -# opensource version removes some drivers, so force them to be off -CFG_SQL_tds=no -CFG_SQL_oci=no -CFG_SQL_db2=no - -CFG_SQL_AVAILABLE= -if [ -d "$relpath/src/plugins/sqldrivers" ]; then - for a in "$relpath/src/plugins/sqldrivers/"*; do - if [ -d "$a" ]; then - base_a=`basename "$a"` - CFG_SQL_AVAILABLE="${CFG_SQL_AVAILABLE} ${base_a}" - eval "CFG_SQL_${base_a}=auto" - fi - done -fi - -CFG_IMAGEFORMAT_PLUGIN_AVAILABLE= -if [ -d "$relpath/src/plugins/imageformats" ]; then - for a in "$relpath/src/plugins/imageformats/"*; do - if [ -d "$a" ]; then - base_a=`basename "$a"` - CFG_IMAGEFORMAT_PLUGIN_AVAILABLE="${CFG_IMAGEFORMAT_PLUGIN_AVAILABLE} ${base_a}" - fi - done -fi - -#------------------------------------------------------------------------------- # parse command line arguments #------------------------------------------------------------------------------- @@ -947,7 +592,6 @@ while [ "$#" -gt 0 ]; do -extprefix| \ -sysroot| \ -external-hostbindir| \ - -depths| \ -make| \ -nomake| \ -skip| \ @@ -957,16 +601,6 @@ while [ "$#" -gt 0 ]; do -device-option| \ -host-option| \ -sdk| \ - -arch| \ - -host-arch| \ - -c++std | \ - -mysql_config| \ - -psql_config| \ - -qpa| \ - -qconfig| \ - -qreal| \ - -sanitize| \ - -xkb-config-root| \ -android-sdk| \ -android-ndk| \ -android-ndk-platform| \ @@ -982,54 +616,12 @@ while [ "$#" -gt 0 ]; do VAR=`echo $1 | sed 's,^-\([^-]*\)-.*,\1,'` VAL=`echo $1 | sed 's,^-[^-]*-\(.*\),\1,'` ;; - -system-proxies) - VAR=system-proxies - VAL=yes - ;; - -no-system-proxies) - VAR=system-proxies - VAL=no - ;; #Qt Builtin/System style options -no-*|-system-*|-qt-*) VAR=`echo $1 | sed 's,^-[^-]*-\(.*\),\1,'` VAL=`echo $1 | sed 's,^-\([^-]*\)-.*,\1,'` ;; #Options that cannot be generalized - -k|-continue) - VAR=fatal_error - VAL=no - ;; - -opengl) - VAR=opengl - # this option may or may not be followed by an argument - if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then - VAL=yes - else - shift; - VAL=$1 - fi - ;; - -openvg) - VAR=openvg - # this option may or may not be followed by an argument - if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then - VAL=yes - else - shift; - VAL=$1 - fi - ;; - -gstreamer) - VAR=gstreamer - # this option may or may not be followed by an argument - if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then - VAL=yes - else - shift; - VAL=$1 - fi - ;; -hostprefix) VAR=`echo $1 | sed 's,^-\(.*\),\1,'` # this option may or may not be followed by an argument @@ -1039,124 +631,23 @@ while [ "$#" -gt 0 ]; do shift; VAL=$1 fi - ;; - -qtnamespace) - VAR="qtnamespace" - shift - VAL="$1" - ;; - -qtlibinfix) - VAR="qtlibinfix" - shift - VAL="$1" - ;; - -D?*|-D) - VAR="add_define" - if [ "$1" = "-D" ]; then - shift - VAL="$1" - else - VAL=`echo $1 | sed 's,-D,,'` - fi - ;; - -fpu) - VAR="fpu" - # this option may or may not be followed by an argument - if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then - VAL=no - else - shift - VAL=$1 - fi - ;; - -I?*|-I) - VAR="add_ipath" - if [ "$1" = "-I" ]; then - shift - VAL="$1" - else - VAL=`echo $1 | sed 's,-I,,'` - fi - ;; - -L?*|-L) - VAR="add_lpath" - if [ "$1" = "-L" ]; then - shift - VAL="$1" - else - VAL=`echo $1 | sed 's,-L,,'` - fi - ;; - -R?*|-R) - VAR="add_rpath" - if [ "$1" = "-R" ]; then - shift - VAL="$1" - else - VAL=`echo $1 | sed 's,-R,,'` - fi - ;; - -l) # -lfoo is handled differently - VAR="add_link" - shift - VAL="$1" - ;; - -F?*|-F) - VAR="add_fpath" - if [ "$1" = "-F" ]; then - shift - VAL="$1" - else - VAL=`echo $1 | sed 's,-F,,'` - fi - ;; - -fw) # -fwfoo is handled differently - VAR="add_framework" - shift - VAL="$1" - ;; - -W*) - VAR="add_warn" - VAL="$1" - ;; + ;; #General options, including Qt style yes options -*) VAR=`echo $1 | sed 's,^-\(.*\),\1,'` VAL="yes" ;; + # most options don't need processing in the configure script, skip them. qmake will do the real validation *) - UNKNOWN_ARG=yes - ;; - esac - if [ "$UNKNOWN_ARG" = "yes" ]; then - echo "$1: unknown argument" - ERROR=yes shift continue - fi + ;; + esac + shift UNKNOWN_OPT=no case "$VAR" in - accessibility) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_ACCESSIBILITY="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - license) - LICENSE_FILE="$VAL" - ;; - gnumake) - CFG_USE_GNUMAKE="$VAL" - ;; - mysql_config) - CFG_MYSQL_CONFIG="$VAL" - ;; - psql_config) - CFG_PSQL_CONFIG="$VAL" - ;; prefix) QT_INSTALL_PREFIX="$VAL" ;; @@ -1176,14 +667,8 @@ while [ "$#" -gt 0 ]; do QT_EXT_PREFIX="$VAL" ;; pkg-config) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_PKGCONFIG="$VAL" - else - UNKNOWN_OPT=yes - fi ;; force-pkg-config) - CFG_PKGCONFIG="yes" ;; docdir) QT_INSTALL_DOCS="$VAL" @@ -1209,12 +694,6 @@ while [ "$#" -gt 0 ]; do libdir) QT_INSTALL_LIBS="$VAL" ;; - qtnamespace) - QT_NAMESPACE="$VAL" - ;; - qtlibinfix) - QT_LIBINFIX="$VAL" - ;; translationdir) QT_INSTALL_TRANSLATIONS="$VAL" ;; @@ -1227,54 +706,9 @@ while [ "$#" -gt 0 ]; do testsdir) QT_INSTALL_TESTS="$VAL" ;; - qconfig) - CFG_QCONFIG="$VAL" - ;; - 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 - ;; - sanitize) - if [ "$VAL" = "address" ]; then - CFG_SANITIZE_ADDRESS=yes - elif [ "$VAL" = "thread" ]; then - CFG_SANITIZE_THREAD=yes - elif [ "$VAL" = "memory" ]; then - CFG_SANITIZE_MEMORY=yes - elif [ "$VAL" = "undefined" ]; then - CFG_SANITIZE_UNDEFINED=yes - else - echo "Unknown sanitizer: '$VAL'" - ERROR=true - fi - if [ "$CFG_SANITIZERS" = "none" ]; then - CFG_SANITIZERS=$VAL - else - CFG_SANITIZERS="$CFG_SANITIZERS $VAL" - fi - ;; sysroot) CFG_SYSROOT="$VAL" ;; - gcc-sysroot) - CFG_GCC_SYSROOT="$VAL" - ;; external-hostbindir) CFG_HOST_QT_TOOLS_PATH="$VAL" HostVar set HOST_QT_TOOLS "$VAL" @@ -1285,62 +719,6 @@ while [ "$#" -gt 0 ]; do libexecdir) QT_INSTALL_LIBEXECS="$VAL" ;; - opengl) - if [ "$VAL" = "auto" ] || [ "$VAL" = "desktop" ] || - [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || - [ "$VAL" = "es2" ]; then - CFG_OPENGL="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - opengles3) - if [ "$VAL" = "no" ]; then - CFG_OPENGLES3="no" - else - UNKNOWN_OPT=yes - fi - ;; - openvg) - if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_OPENVG="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - nomake) - if [ -n "${QT_ALL_BUILD_PARTS%%* $VAL *}" ]; then - echo "Unknown part $VAL passed to -nomake." >&2 - exit 1 - fi - CFG_NOBUILD_PARTS="$CFG_NOBUILD_PARTS $VAL" - ;; - make) - if [ "$VAL" = "no" ]; then - UNKNOWN_OPT=yes - else - if [ -n "${QT_ALL_BUILD_PARTS%%* $VAL *}" ]; then - echo "Unknown part $VAL passed to -make." >&2 - exit 1 - fi - CFG_BUILD_PARTS="$CFG_BUILD_PARTS $VAL" - fi - ;; - skip) - VAL=qt${VAL#qt} - if ! [ -d $relpath/../$VAL ]; then - echo "Attempting to skip non-existent module $VAL." >&2 - exit 1 - fi - CFG_SKIP_MODULES="$CFG_SKIP_MODULES $VAL" - ;; - compile-examples) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_COMPILE_EXAMPLES="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; sdk) if [ "$BUILD_ON_MAC" = "yes" ]; then DeviceVar set !host_build:QMAKE_MAC_SDK "$VAL" @@ -1349,107 +727,11 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi ;; - arch|host-arch) - OPT_OBSOLETE_HOST_ARG=yes - ;; - harfbuzz) - [ "$VAL" = "yes" ] && VAL=qt - if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then - CFG_HARFBUZZ="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - - framework) - if [ "$BUILD_ON_MAC" = "yes" ]; then - CFG_FRAMEWORK="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - profile) - if [ "$VAL" = "yes" ]; then - CFG_PROFILE=yes - QMakeVar add QMAKE_CFLAGS -pg - QMakeVar add QMAKE_CXXFLAGS -pg - QMakeVar add QMAKE_LFLAGS -pg - QMAKE_VARS="$QMAKE_VARS CONFIG+=nostrip" - else - UNKNOWN_OPT=yes - fi - ;; - strip) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_STRIP=$VAL - else - UNKNOWN_OPT=yes - fi - ;; - testcocoon) - if [ "$VAL" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG testcocoon" - fi - ;; - gcov) - if [ "$VAL" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG gcov" - fi - ;; platform) PLATFORM="$VAL" - # keep compatibility with old platform names - case $PLATFORM in - aix-64) - PLATFORM=aix-xlc-64 - ;; - hpux-o64) - PLATFORM=hpux-acc-o64 - ;; - hpux-n64) - PLATFORM=hpux-acc-64 - ;; - hpux-acc-n64) - PLATFORM=hpux-acc-64 - ;; - irix-n32) - PLATFORM=irix-cc - ;; - irix-64) - PLATFORM=irix-cc-64 - ;; - irix-cc-n64) - PLATFORM=irix-cc-64 - ;; - reliant-64) - PLATFORM=reliant-cds-64 - ;; - solaris-64) - PLATFORM=solaris-cc-64 - ;; - openunix-cc) - PLATFORM=unixware-cc - ;; - openunix-g++) - PLATFORM=unixware-g++ - ;; - unixware7-cc) - PLATFORM=unixware-cc - ;; - unixware7-g++) - PLATFORM=unixware-g++ - ;; - esac ;; xplatform) XPLATFORM="$VAL" - case `basename "$XPLATFORM"` in win32-g++*) - XPLATFORM_MINGW=yes - CFG_RPATH=no - CFG_REDUCE_EXPORTS=no - CFG_ICU=no - ;; - esac ;; device) XPLATFORM=`resolveDeviceMkspec $VAL` @@ -1465,36 +747,9 @@ while [ "$#" -gt 0 ]; do HOST_VAL=`echo $VAL | cut -d '=' -f 2-` HostVar set $HOST_VAR "$HOST_VAL" ;; - qpa) - QT_QPA_DEFAULT_PLATFORM="$VAL" - ;; - debug-and-release) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_DEBUG_RELEASE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - release) - if [ "$VAL" = "yes" ]; then - CFG_DEBUG=no - elif [ "$VAL" = "no" ]; then - CFG_DEBUG=yes - else - UNKNOWN_OPT=yes - fi - ;; - debug) - CFG_DEBUG="$VAL" - ;; - force-debug-info) - CFG_FORCEDEBUGINFO="$VAL" - ;; optimized-qmake|optimized-tools) if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then CFG_RELEASE_TOOLS="$VAL" - else - UNKNOWN_OPT=yes fi ;; developer-build) @@ -1506,598 +761,21 @@ while [ "$#" -gt 0 ]; do opensource) COMMERCIAL_USER="no" ;; - static) - if [ "$VAL" = "yes" ]; then - CFG_SHARED=no - elif [ "$VAL" = "no" ]; then - CFG_SHARED=yes - else - UNKNOWN_OPT=yes - fi - ;; - fatal_error) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_CONFIGURE_EXIT_ON_ERROR="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; feature-*) FEATURE=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,' | tr 'abcdefghijklmnopqrstuvwxyz-' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ_'` if grep "^Feature: *${FEATURE} *\$" "$relpath"/src/corelib/global/qfeatures.txt >/dev/null 2>&1; then + F=`echo $VAR | sed 's,^[^-]*-\([^-]*\),\1,'` if [ "$VAL" = "no" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_$FEATURE" - elif [ "$VAL" = "yes" ] || [ "$VAL" = "unknown" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_$FEATURE" - else + F="no-$F" + elif [ "$VAL" != "yes" ] && [ "$VAL" != "unknown" ]; then UNKNOWN_OPT=yes fi + CFG_FEATURES="$CFG_FEATURES $F" else echo "ERROR: Unknown feature $FEATURE" UNKNOWN_OPT=yes fi ;; - shared) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SHARED="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - gif) - if [ "$VAL" = "no" ]; then - CFG_GIF="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sm) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SM="$VAL" - else - UNKNOWN_OPT=yes - fi - - ;; - xshape) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XSHAPE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xsync) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XSYNC="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xinput2) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XINPUT2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - egl) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_EGL="$VAL" - CFG_EGL_X="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - pch) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_PRECOMPILE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - ltcg) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LTCG="$VAL" - else - UNKNOWN_OPT=no - fi - ;; - separate-debug-info) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SEPARATE_DEBUG_INFO="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - reduce-exports) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_REDUCE_EXPORTS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sse2) - if [ "$VAL" = "no" ]; then - CFG_SSE2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sse3) - if [ "$VAL" = "no" ]; then - CFG_SSE3="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - ssse3) - if [ "$VAL" = "no" ]; then - CFG_SSSE3="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sse4.1) - if [ "$VAL" = "no" ]; then - CFG_SSE4_1="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sse4.2) - if [ "$VAL" = "no" ]; then - CFG_SSE4_2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - avx) - if [ "$VAL" = "no" ]; then - CFG_AVX="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - avx2) - if [ "$VAL" = "no" ]; then - CFG_AVX2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - avx512) - if [ "$VAL" = "no" ]; then - CFG_AVX512="" - else - UNKNOWN_OPT=yes - fi - ;; - mips_dsp) - if [ "$VAL" = "no" ]; then - CFG_MIPS_DSP="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - mips_dspr2) - if [ "$VAL" = "no" ]; then - CFG_MIPS_DSPR2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - reduce-relocations) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_REDUCE_RELOCATIONS="$VAL" - else - 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 - CFG_ZLIB="$VAL" - else - UNKNOWN_OPT=yes - fi - # No longer supported: - #[ "$VAL" = "no" ] && CFG_LIBPNG=no - ;; - mtdev) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_MTDEV="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - journald) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_JOURNALD="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - syslog) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SYSLOG="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - sqlite) - if [ "$VAL" = "system" ]; then - CFG_SQLITE=system - else - UNKNOWN_OPT=yes - fi - ;; - libpng) - [ "$VAL" = "yes" ] && VAL=qt - if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then - CFG_LIBPNG="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - libjpeg) - [ "$VAL" = "yes" ] && VAL=qt - if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then - CFG_LIBJPEG="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xcursor) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then - CFG_XCURSOR="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xfixes) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then - CFG_XFIXES="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xrandr) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "runtime" ]; then - CFG_XRANDR="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xrender) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XRENDER="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - mitshm) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_MITSHM="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - doubleconversion) - if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then - CFG_DOUBLECONVERSION="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - fontconfig) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_FONTCONFIG="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - freetype) - [ "$VAL" = "yes" ] && VAL=qt - if [ "$VAL" = "qt" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ]; then - CFG_FREETYPE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xkb) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XKB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xkbcommon-evdev) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XKBCOMMON_EVDEV="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xkbcommon|xkbcommon-x11) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then - CFG_XKBCOMMON="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xcb) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ] || [ "$VAL" = "system" ] || [ "$VAL" = "qt" ]; then - CFG_XCB="$VAL" - if [ "$VAL" = "yes" ]; then - CFG_XCB="system" - fi - else - UNKNOWN_OPT=yes - fi - ;; - xcb-xlib) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_XCB_XLIB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - wayland) - CFG_OBSOLETE_WAYLAND=yes - ;; - eglfs) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_EGLFS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - directfb) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_DIRECTFB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - gbm) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_GBM="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - linuxfb) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LINUXFB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - kms) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_KMS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - mirclient) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_MIRCLIENT="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - libudev) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LIBUDEV="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - libinput) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LIBINPUT="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - evdev) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_EVDEV="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - tslib) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_TSLIB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - cups) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_CUPS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - iconv) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_ICONV="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - glib) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_GLIB="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - slog2) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SLOG2="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - imf) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_QNX_IMF="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - pps) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_PPS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - lgmon) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LGMON="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - pulseaudio) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_PULSEAUDIO="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - alsa) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_ALSA="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - gstreamer) - if [ "$VAL" = "auto" ] || [ "$VAL" = "yes" ] || - [ "$VAL" = "0.10" ] || [ "$VAL" = "1.0" ] || - [ "$VAL" = "no" ]; then - CFG_GSTREAMER="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - gtk) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_GTK="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - gui) - if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then - CFG_GUI="yes" - else - if [ "$VAL" = "no" ]; then - CFG_GUI="no" - else - UNKNOWN_OPT=yes - fi - fi - ;; - widgets) - if [ "$VAL" = "yes" ] || [ "$VAL" = "auto" ]; then - CFG_WIDGETS="yes" - elif [ "$VAL" = "no" ]; then - CFG_WIDGETS="no" - else - UNKNOWN_OPT=yes - fi - ;; - qpa-platform-guard) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - QPA_PLATFORM_GUARD="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - dbus) - if [ "$VAL" = "no" ] || [ "$VAL" = "linked" ] || [ "$VAL" = "runtime" ]; then - CFG_DBUS="$VAL" - elif [ "$VAL" = "yes" ]; then - # keep as auto, we'll auto-detect whether to go linked or runtime later - CFG_DBUS=auto - else - UNKNOWN_OPT=yes - fi - ;; - dbus-linked) - if [ "$VAL" = "yes" ]; then - CFG_DBUS="linked" - else - UNKNOWN_OPT=yes - fi - ;; - dbus-runtime) - if [ "$VAL" = "yes" ]; then - CFG_DBUS="runtime" - else - UNKNOWN_OPT=yes - fi - ;; - largefile) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LARGEFILE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - openssl) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_OPENSSL="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - openssl-linked) - if [ "$VAL" = "yes" ]; then - CFG_OPENSSL="linked" - else - UNKNOWN_OPT=yes - fi - ;; - securetransport) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SECURETRANSPORT="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - libproxy) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_LIBPROXY="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - qml-debug) - if [ "$VAL" = "yes" ]; then - CFG_QML_DEBUG="yes" - else - if [ "$VAL" = "no" ]; then - CFG_QML_DEBUG="no" - else - UNKNOWN_OPT=yes - fi - fi - ;; confirm-license) if [ "$VAL" = "yes" ]; then OPT_CONFIRM_LICENSE="$VAL" @@ -2112,216 +790,19 @@ while [ "$#" -gt 0 ]; do UNKNOWN_OPT=yes fi ;; - sql-*|imageformat-*) - # if Qt style options were used, $VAL can be "no", "qt", or "plugin" - # if autoconf style options were used, $VAL can be "yes" or "no" - [ "$VAL" = "yes" ] && VAL=qt - # now $VAL should be "no", "qt", or "plugin"... double-check - if [ "$VAL" != "no" ] && [ "$VAL" != "qt" ] && [ "$VAL" != "plugin" ]; then - UNKNOWN_OPT=yes - fi - # now $VAL is "no", "qt", or "plugin" - OPT="$VAL" - VAL=`echo $VAR | sed 's,^[^-]*-\([^-]*\).*,\1,'` - VAR=`echo $VAR | sed 's,^\([^-]*\).*,\1,'` - - # Grab the available values - case "$VAR" in - sql) - avail="$CFG_SQL_AVAILABLE" - ;; - imageformat) - avail="$CFG_IMAGEFORMAT_PLUGIN_AVAILABLE" - if [ "$OPT" != "plugin" ]; then - # png is always built in - avail="$avail png" - fi - ;; - *) - avail="" - echo "BUG: Unhandled type $VAR used in $CURRENT_OPT" - ;; - esac - - # Check that that user's value is available. - found=no - for d in $avail; do - if [ "$VAL" = "$d" ]; then - found=yes - break - fi - done - if [ "$found" != "yes" ]; then - echo "$CURRENT_OPT: unknown argument" - ERROR=yes - continue - fi - - if [ "$VAR" = "sql" ]; then - # set the CFG_SQL_driver - eval "CFG_SQL_$VAL=\$OPT" - continue - elif [ "$VAR" = "imageformat" ]; then - [ "$OPT" = "qt" ] && OPT=yes - VAL="`echo $VAL |tr a-z A-Z`" - eval "CFG_$VAL=$OPT" - continue - fi - - if [ "$OPT" = "plugin" ] || [ "$OPT" = "qt" ]; then - if [ "$OPT" = "plugin" ]; then - VAR="${VAR}-${OPT}" - fi - QMakeVar add "${VAR}s" "${VAL}" - elif [ "$OPT" = "no" ]; then - PLUG_VAR="${VAR}-plugin" - IN_VAR="${VAR}" - QMakeVar del "${IN_VAR}s" "$VAL" - QMakeVar del "${PLUG_VAR}s" "$VAL" - fi - ;; v|verbose) if [ "$VAL" = "yes" ]; then - if [ "$OPT_VERBOSE" = "$VAL" ]; then # takes two verboses to turn on qmake debugs - QMAKE_SWITCHES="$QMAKE_SWITCHES -d" - else - OPT_VERBOSE=yes - fi + OPT_VERBOSE=yes elif [ "$VAL" = "no" ]; then - if [ "$OPT_VERBOSE" = "$VAL" ] && echo "$QMAKE_SWITCHES" | grep ' -d' >/dev/null 2>&1; then - QMAKE_SWITCHES=`echo $QMAKE_SWITCHES | sed 's, -d,,'` - else - OPT_VERBOSE=no - fi - else - UNKNOWN_OPT=yes - fi - ;; - rpath) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_RPATH="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - add_define) - DEFINES="$DEFINES \"$VAL\"" - D_FLAGS="$D_FLAGS -D\"$VAL\"" - ;; - add_ipath) - INCLUDES="$INCLUDES \"$VAL\"" - I_FLAGS="$I_FLAGS -I\"${VAL}\"" - ;; - add_lpath) - L_FLAGS="$L_FLAGS -L\"${VAL}\"" - ;; - add_rpath) - RPATH_FLAGS="$RPATH_FLAGS \"${VAL}\"" - ;; - add_link) - L_FLAGS="$L_FLAGS -l\"${VAL}\"" - ;; - add_fpath) - if [ "$BUILD_ON_MAC" = "yes" ]; then - L_FLAGS="$L_FLAGS -F\"${VAL}\"" - I_FLAGS="$I_FLAGS -F\"${VAL}\"" + OPT_VERBOSE=no else UNKNOWN_OPT=yes fi ;; - add_framework) - if [ "$BUILD_ON_MAC" = "yes" ]; then - L_FLAGS="$L_FLAGS -framework \"${VAL}\"" - else - UNKNOWN_OPT=yes - fi - ;; - add_warn) - W_FLAGS="$W_FLAGS \"${VAL}\"" - ;; silent) + # need to keep this here, to ensure qmake is built silently CFG_SILENT="$VAL" ;; - audio-backend) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_AUDIO_BACKEND="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - icu) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_ICU="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - force-asserts) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_FORCE_ASSERTS="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - pcre) - if [ "$VAL" = "qt" ] || [ "$VAL" = "system" ]; then - CFG_PCRE="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - c++std) - case "$VAL" in - c++11|c++14|c++1z|auto) - CFG_STDCXX="$VAL" - ;; - 11|14|1z) - CFG_STDCXX="c++$VAL" - ;; - 1y|c++1y) - CFG_STDCXX="c++14" - ;; - *) - echo >&2 "Invalid C++ edition: $VAL; valid options are: c++11 c++14 c++1z auto" - ERROR=yes - ;; - esac - ;; - system-proxies) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_SYSTEM_PROXIES="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - directwrite) - if [ "$XPLATFORM_MINGW" = "yes" ] ; then - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_DIRECTWRITE="$VAL" - else - UNKNOWN_OPT=yes - fi - else - UNKNOWN_OPT=yes - fi - ;; - warnings-are-errors|Werror) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_WERROR="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - headersclean) - if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then - CFG_HEADERSCLEAN="$VAL" - else - UNKNOWN_OPT=yes - fi - ;; - xkb-config-root) - CFG_XKB_CONFIG_ROOT="$VAL" - ;; android-sdk) CFG_DEFAULT_ANDROID_SDK_ROOT="$VAL" ;; @@ -2341,32 +822,12 @@ while [ "$#" -gt 0 ]; do CFG_DEFAULT_ANDROID_NDK_TOOLCHAIN_VERSION="$VAL" ;; android-style-assets) + # Required to be able to show the correct license text 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}\"" - else - UNKNOWN_OPT=yes - fi - ;; - fw*) # -fwfoo - if [ "$VAL" = "yes" ]; then - if [ "$BUILD_ON_MAC" = "yes" ]; then - L_FLAGS="$L_FLAGS -framework \"${VAR#fw}\"" - else - UNKNOWN_OPT=yes - fi - else - UNKNOWN_OPT=yes fi ;; *) - UNKNOWN_OPT=yes ;; esac if [ "$UNKNOWN_OPT" = "yes" ]; then @@ -2381,453 +842,9 @@ done #------------------------------------------------------------------------------- if [ "$OPT_HELP" = "yes" ]; then - cat <<EOF -Usage: $relconf [options] - -Installation options: - - These are optional, but you may specify install directories. - - -prefix <dir> ...... The deployment directory, as seen on the target device. - (default /usr/local/Qt-${QT_VERSION}, \$PWD if -developer-build is active) - - -extprefix <dir> ... The installation directory, as seen on the host machine. - (default SYSROOT/PREFIX) - - -hostprefix [dir] .. The installation directory for build tools running on the - host machine. If [dir] is not given, the current build - directory will be used. (default EXTPREFIX) - - You may use these to change the layout of the install. Note that all directories - except -sysconfdir should be located under -prefix/-hostprefix: - - -bindir <dir> ......... User executables will be installed to <dir> - (default PREFIX/bin) - -headerdir <dir> ...... Headers will be installed to <dir> - (default PREFIX/include) - -libdir <dir> ......... Libraries will be installed to <dir> - (default PREFIX/lib) - -archdatadir <dir> .... Arch-dependent data used by Qt will be installed to <dir> - (default PREFIX) - -plugindir <dir> ...... Plugins will be installed to <dir> - (default ARCHDATADIR/plugins) - -libexecdir <dir> ..... Program executables will be installed to <dir> - (default ARCHDATADIR/libexec, ARCHDATADIR/bin for MinGW) - -importdir <dir> ...... Imports for QML1 will be installed to <dir> - (default ARCHDATADIR/imports) - -qmldir <dir> ......... Imports for QML2 will be installed to <dir> - (default ARCHDATADIR/qml) - -datadir <dir> ........ Arch-independent data used by Qt will be installed to <dir> - (default PREFIX) - -docdir <dir> ......... Documentation will be installed to <dir> - (default DATADIR/doc) - -translationdir <dir> . Translations of Qt programs will be installed to <dir> - (default DATADIR/translations) - -sysconfdir <dir> ..... Settings used by Qt programs will be looked for in <dir> - (default PREFIX/etc/xdg) - -examplesdir <dir> .... Examples will be installed to <dir> - (default PREFIX/examples) - -testsdir <dir> ....... Tests will be installed to <dir> - (default PREFIX/tests) - - -hostbindir <dir> .. Host executables will be installed to <dir> - (default HOSTPREFIX/bin) - -hostlibdir <dir> .. Host libraries will be installed to <dir> - (default HOSTPREFIX/lib) - -hostdatadir <dir> . Data used by qmake will be installed to <dir> - (default HOSTPREFIX) - -Configure options: - - The defaults (*) are usually acceptable. A plus (+) denotes a default value - that needs to be evaluated. If the evaluation succeeds, the feature is - included. Here is a short explanation of each option: - - * -release ........... Compile and link Qt with debugging turned off. - -debug ............. Compile and link Qt with debugging turned on. - -debug-and-release . Compile and link two versions of Qt, with and without - debugging turned on (Mac only). - - -force-debug-info .. Create symbol files for release builds. - - -developer-build ... Compile and link Qt with Qt developer options (including auto-tests exporting) - - * -no-optimized-tools ... Do not build optimized host tools even in debug build. - -optimized-tools ...... Build optimized host tools even in debug build. - - -opensource ........ Compile and link the Open-Source Edition of Qt. - -commercial ........ Compile and link the Commercial Edition of Qt. - - -confirm-license ... Automatically acknowledge the license (use with - either -opensource or -commercial) - - -c++std <edition> .. Compile Qt with C++ standard edition (c++11, c++14, c++1z) - Default: highest supported - - * -shared ............ Create and use shared Qt libraries. - -static ............ Create and use static Qt libraries. - - -no-largefile ...... Disables large file support. - + -largefile ......... Enables Qt to access files larger than 4 GB. - - -no-accessibility .. Do not compile Accessibility support. - Disabling accessibility is not recommended, as it will break QStyle - and may break other internal parts of Qt. - With this switch you create a source incompatible version of Qt, - which is unsupported. - + -accessibility ..... Compile Accessibility support. - - -no-sql-<driver> ... Disable SQL <driver> entirely. - -qt-sql-<driver> ... Enable a SQL <driver> in the Qt SQL module, by default - none are turned on. - -plugin-sql-<driver> Enable SQL <driver> as a plugin to be linked to - at run time. - - Possible values for <driver>: - [$CFG_SQL_AVAILABLE ] - - -system-sqlite ..... Use sqlite from the operating system. - - -no-qml-debug ...... Do not build the in-process QML debugging support. - + -qml-debug ......... Build the QML debugging support. - - -platform target ... The operating system and compiler you are building - on (default detected from host system). - - See the README file for a list of supported - operating systems and compilers. - - -no-sse2 ........... Do not compile with use of SSE2 instructions. - -no-sse3 ........... Do not compile with use of SSE3 instructions. - -no-ssse3 .......... Do not compile with use of SSSE3 instructions. - -no-sse4.1 ......... Do not compile with use of SSE4.1 instructions. - -no-sse4.2 ......... Do not compile with use of SSE4.2 instructions. - -no-avx ............ Do not compile with use of AVX instructions. - -no-avx2 ........... Do not compile with use of AVX2 instructions. - -no-avx512 ......... Do not compile with use of AVX512 instructions. - -no-mips_dsp ....... Do not compile with use of MIPS DSP instructions. - -no-mips_dspr2 ..... Do not compile with use of MIPS DSP rev2 instructions. - - -qtnamespace <name> Wraps all Qt library code in 'namespace <name> {...}'. - -qtlibinfix <infix> Renames all libQt*.so to libQt*<infix>.so. - - -testcocoon ........ Instrument Qt with the TestCocoon code coverage tool. - -gcov .............. Instrument Qt with the GCov code coverage tool. - - -D <string> ........ Add an explicit define to the preprocessor. - -I <string> ........ Add an explicit include path. - -L <string> ........ Add an explicit library path. - - + -pkg-config ........ Use pkg-config to detect include and library paths. By default, - configure determines whether to use pkg-config or not with - some heuristics such as checking the environment variables. - -no-pkg-config ..... Disable use of pkg-config. - -force-pkg-config .. Force usage of pkg-config (skips pkg-config usability - detection heuristic). - - -help, -h .......... Display this information. - -Third Party Libraries: - - -qt-zlib ............ Use the zlib bundled with Qt. - + -system-zlib ........ Use zlib from the operating system. - See http://www.gzip.org/zlib - - -no-mtdev ........... Do not compile mtdev support. - + -mtdev .............. Enable mtdev support. - - + -no-journald ........ Do not send logging output to journald. - -journald ........... Send logging output to journald. - - + -no-syslog .......... Do not send logging output to syslog. - -syslog ............. Send logging output to syslog. - - -no-gif ............. Do not compile GIF reading support. - - -no-libpng .......... Do not compile PNG support. - -qt-libpng .......... Use the libpng bundled with Qt. - + -system-libpng ...... Use libpng from the operating system. - See http://www.libpng.org/pub/png - - -no-libjpeg ......... Do not compile JPEG support. - -qt-libjpeg ......... Use the libjpeg bundled with Qt. - + -system-libjpeg ..... Use libjpeg from the operating system. - See http://www.ijg.org - - -no-doubleconversion ..... Use sscanf_l and snprintf_l for (imprecise) double conversion. - -qt-doubleconversion ..... Use the libdouble-conversion bundled with Qt. - + -system-doubleconversion . Use the libdouble-conversion provided by the system. - See https://github.com/google/double-conversion - - -no-freetype ........ Do not compile in Freetype2 support. - -qt-freetype ........ Use the libfreetype bundled with Qt. - + -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 ........ 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 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. - -openssl-linked ..... Enabled linked OpenSSL support. - - -no-libproxy ....... Do not compile support for libproxy - + -libproxy .......... Use libproxy from the operating system. - - -qt-pcre ............ Use the PCRE library bundled with Qt. - + -system-pcre ........ Use the PCRE library from the operating system. - - -qt-xcb ............. Use xcb- libraries bundled with Qt. - (libxcb.so will still be used from operating system). - + -system-xcb ......... Use xcb- libraries from the operating system. - - -xkb-config-root .... Set default XKB config root. This option is used only together with -qt-xkbcommon-x11. - -qt-xkbcommon-x11 ... Use the xkbcommon library bundled with Qt in combination with xcb. - + -system-xkbcommon-x11 Use the xkbcommon library from the operating system in combination with xcb. - - -no-xkbcommon-evdev . Do not use X-less xkbcommon when compiling libinput support. - * -xkbcommon-evdev .... Use X-less xkbcommon when compiling libinput support. - - -no-xinput2 ......... Do not compile XInput2 support. - * -xinput2 ............ Compile XInput2 support. - - -no-xcb-xlib......... Do not compile Xcb-Xlib support. - * -xcb-xlib............ Compile Xcb-Xlib support. - - -no-glib ............ Do not compile Glib support. - + -glib ............... Compile Glib support. - - -no-pulseaudio ...... Do not compile PulseAudio support. - + -pulseaudio ......... Compile PulseAudio support. - - -no-alsa ............ Do not compile ALSA support. - + -alsa ............... Compile ALSA support. - - -no-gtk ............. Do not compile GTK platform theme support. - + -gtk ................ Compile GTK platform theme support. - -Additional options: - - -make <part> ....... Add part to the list of parts to be built at make time. - (defaults to: $QT_DEFAULT_BUILD_PARTS) - -nomake <part> ..... Exclude part from the list of parts to be built. - - -skip <module> ..... Exclude an entire module from the build. - - -no-compile-examples ... Install only the sources of examples. - - -no-gui ............ Don't build the Qt GUI module and dependencies. - + -gui ............... Build the Qt GUI module and dependencies. - - -no-widgets ........ Don't build the Qt Widgets module and dependencies. - + -widgets ........... Build the Qt Widgets module and dependencies. - - -R <string> ........ Add an explicit runtime library path to the Qt - libraries. - -l <string> ........ Add an explicit library. - - -no-rpath .......... Do not use the library install path as a runtime - library path. On Apple platforms, this implies using - absolute install names (based in -libdir) for dynamic - libraries and frameworks. - + -rpath ............. Link Qt libraries and executables using the library - install path as a runtime library path. Equivalent - to -R install_libpath - - -continue .......... Continue as far as possible if an error occurs. - - -verbose, -v ....... Print verbose information about each step of the - configure process. - - -silent ............ Reduce the build output so that warnings and errors - can be seen more easily. - - -no-cups ........... Do not compile CUPS support. - * -cups .............. Compile CUPS support. - Requires cups/cups.h and libcups.so.2. - - -no-iconv .......... Do not compile support for iconv(3). - * -iconv ............. Compile support for iconv(3). - - -no-evdev .......... Do not compile support for evdev. - * -evdev ............. Compile support for evdev. - - -no-tslib .......... Do not compile support for tslib. - * -tslib ............. Compile support for tslib. - - -no-icu ............ Do not compile support for ICU libraries. - + -icu ............... Compile support for ICU libraries. - - -no-fontconfig ..... Do not compile FontConfig support. - + -fontconfig ........ Compile FontConfig support. - - -no-strip .......... Do not strip binaries and libraries of unneeded symbols. - * -strip ............. Strip binaries and libraries of unneeded symbols when installing. - - * -no-pch ............ Do not use precompiled header support. - -pch ............... Use precompiled header support. - - * -no-ltcg Do not use Link Time Code Generation - -ltcg Use Link Time Code Generation. - - -no-dbus ........... Do not compile the Qt D-Bus module. - + -dbus-linked ....... Compile the Qt D-Bus module and link to libdbus-1. - -dbus-runtime ...... Compile the Qt D-Bus module and dynamically load libdbus-1. - - -reduce-relocations ..... Reduce relocations in the libraries through extra - 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. - - -sanitize [address|thread|memory|undefined] Enables the specified compiler sanitizer. - - -device <name> ............... Cross-compile for device <name> (experimental) - -device-option <key=value> ... Add device specific options for the device mkspec - (experimental) - - -host-option <key=value> ..... Add host specific options for the host mkspec - - * -no-separate-debug-info . Do not store debug information in a separate file. - -separate-debug-info .... Strip debug information into a separate file. - - -no-xcb ............ Do not compile Xcb (X protocol C-language Binding) support. - * -xcb ............... Compile Xcb support. - - -no-eglfs .......... Do not compile EGLFS (EGL Full Screen/Single Surface) support. - * -eglfs ............. Compile EGLFS support. - - -no-kms ............ Do not compile backends for KMS. - * -kms ............... Compile backends for KMS. - - -no-gbm ............ Do not compile backends for GBM. - * -gbm ............... Compile backends for GBM. - - * -no-directfb ....... Do not compile DirectFB support. - -directfb .......... Compile DirectFB support. - - -no-linuxfb ........ Do not compile Linux Framebuffer support. - * -linuxfb ........... Compile Linux Framebuffer support. - - * -no-mirclient....... Do not compile Mir client support. - -mirclient.......... Compile Mir client support. - - -qpa <name> ......... Sets the default QPA platform (e.g xcb, cocoa, windows). - - -xplatform target ... The target platform when cross-compiling. - - -sysroot <dir> ...... Sets <dir> as the target compiler's and qmake's sysroot and also sets pkg-config paths. - -no-gcc-sysroot ..... When using -sysroot, it disables the passing of --sysroot to the compiler - - -external-hostbindir <path> .. Path to Qt tools built for this machine. Use this when -platform - does not match the current system, i.e., to make a Canadian Cross Build. - - -no-feature-<feature> Do not compile in <feature>. - -feature-<feature> .. Compile in <feature>. The available features - are described in src/corelib/global/qfeatures.txt - - -qconfig local ...... Use src/corelib/global/qconfig-local.h rather than the - default ($CFG_QCONFIG). - - -qreal [double|float] typedef qreal to the specified type. The default is double. - Note that changing this flag affects binary compatibility. - - -no-opengl .......... Do not support OpenGL. - -opengl <api> ....... Enable OpenGL support - With no parameter, this will attempt to auto-detect - OpenGL ES 2.0 and higher, or regular desktop OpenGL. - Use es2 for <api> to override auto-detection. - - -no-libinput ........ Do not support libinput. - * -libinput ........... Enable libinput support. - - -no-gstreamer ....... Do not support GStreamer. - + -gstreamer <version> Enable GStreamer support - With no parameter, this will attempt to auto-detect GStreamer 0.10 and - 1.0. GStreamer 1.0 is used by default when available. - Use 0.10 or 1.0 for <version> to override auto-detection. - - * -no-system-proxies .. Do not use system network proxies by default. - -system-proxies ..... Use system network proxies by default. - - -no-warnings-are-errors Make warnings be treated normally - -warnings-are-errors Make warnings be treated as errors - (enabled if -developer-build is active) - -QNX options: - - -no-slog2 .......... Do not compile with slog2 support. - -slog2 ............. Compile with slog2 support. - - -no-pps ............ Do not compile with pps support. - -pps ............... Compile with pps support. - - -no-imf ............ Do not compile with imf support. - -imf ............... Compile with imf support. - - -no-lgmon .......... Do not compile with lgmon support. - -lgmon ............. Compile with lgmon support. - -MacOS/iOS options: - - -Fstring ........... Add an explicit framework path. - -fw string ......... Add an explicit framework. - - * -framework ......... Build Qt as a series of frameworks and - link tools against those frameworks. - -no-framework ...... Do not build Qt as a series of frameworks. - - * -securetransport ... Use SecureTransport instead of OpenSSL - - -no-securetransport Do not use SecureTransport, either use OpenSSL or do not use any SSL backend - at all (if combined with -no-openssl). - - -sdk <sdk> ......... Build Qt using Apple provided SDK <sdk>. The argument should be - one of the available SDKs as listed by 'xcodebuild -showsdks'. - Note that the argument applies only to Qt libraries and applications built - using the target mkspec - not host tools such as qmake, moc, rcc, etc. - -Android options: - - -android-sdk path .............. The Android SDK root path. - (default \$ANDROID_SDK_ROOT) - - -android-ndk path .............. The Android NDK root path. - (default \$ANDROID_NDK_ROOT) - - -android-ndk-platform .......... Sets the android platform - (default $CFG_DEFAULT_ANDROID_PLATFORM) - - -android-ndk-host .............. Sets the android NDK host (linux-x86, linux-x86_64, etc.) - (default \$ANDROID_NDK_HOST) - - -android-arch .................. Sets the android architecture (armeabi, armeabi-v7a, x86, mips, - arm64-v8a, x86_64, mips64) - (default $CFG_DEFAULT_ANDROID_TARGET_ARCH) - - -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 -fi # Help + cat $relpath/config_help.txt + exit 0 +fi #------------------------------------------------------------------------------- # platform detection @@ -2837,27 +854,7 @@ if [ -z "$PLATFORM" ]; then PLATFORM_NOTES= case "$UNAME_SYSTEM:$UNAME_RELEASE" in Darwin:*) - # Select compiler. Use g++ unless we find a usable Clang version. Note that - # we are checking the "Apple" clang/LLVM version number, not the actual - # clang/LLVM version number that the Apple version was based on. We look - # for Apple clang version 3.0 or higher, which was branched off LLVM 3.0 - # from SVN, and first included in Xcode 4.2. Also note that we do not care - # about the OS version, since we're not using the clang version that comes - # with the system. We use 'xcrun' to check the clang version that's part of - # the Xcode installation. - XCRUN=`/usr/bin/xcrun -sdk macosx clang -v 2>&1` - CLANGVERSION=`echo "$XCRUN" | sed -n 's/.*version \([0-9]\).*/\1/p'` - expr "$CLANGVERSION" : '[0-9]' > /dev/null || { echo "Unable to determine CLANG version from output of xcrun: $XCRUN" ; exit 2 ; } - if [ "$CLANGVERSION" -ge 3 ]; then - PLATFORM=macx-clang - - # Advertise g++ as an alternative on Lion and below - if [ "$(uname -r | cut -d. -f1)" -le 11 ]; then - PLATFORM_NOTES="\n - Also available for Mac OS X: macx-g++\n" - fi - else - PLATFORM=macx-g++ - fi + PLATFORM=macx-clang ;; AIX:*) #PLATFORM=aix-g++ @@ -2945,13 +942,9 @@ if [ -z "$PLATFORM" ]; then " ;; SunOS:5*) - if [ "$XPLATFORM_MINGW" = "yes" ]; then - PLATFORM="solaris-g++" - else - #PLATFORM=solaris-g++ - PLATFORM=solaris-cc - #PLATFORM=solaris-cc64 - fi + #PLATFORM=solaris-g++ + PLATFORM=solaris-cc + #PLATFORM=solaris-cc64 PLATFORM_NOTES=" - Also available for Solaris: solaris-g++ solaris-cc-64 " @@ -3014,20 +1007,21 @@ case "$XPLATFORM" in XPLATFORM_MINGW=yes ;; *qnx-*) - XPLATFORM_QNX=yes ;; *haiku-*) - XPLATFORM_HAIKU=yes ;; *ios*) XPLATFORM_MAC=yes XPLATFORM_IOS=yes ;; + *tvos*) + XPLATFORM_MAC=yes + XPLATFORM_TVOS=yes + ;; *macx*) XPLATFORM_MAC=yes ;; *integrity*) - XPLATFORM_INTEGRITY=yes ;; # XPLATFORM_ANDROID should not be set for unsupported/android-g++ *unsupported*) @@ -3199,51 +1193,7 @@ fi # command line and environment validation #------------------------------------------------------------------------------- -# update QT_CONFIG to show our current predefined configuration -CFG_QCONFIG_PATH=$relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h -case "$CFG_QCONFIG" in -minimal|small|medium|large|full) - # these are a sequence of increasing functionality - for c in minimal small medium large full; do - QT_CONFIG="$QT_CONFIG $c-config" - [ "$CFG_QCONFIG" = $c ] && break - done - [ "$CFG_QCONFIG" = full ] && CFG_QCONFIG_PATH= - ;; -*) - # not known to be sufficient for anything - if [ ! -f "$CFG_QCONFIG_PATH" ]; then - CFG_QCONFIG_PATH=`makeabs "${CFG_QCONFIG}"` - if [ ! -f "$CFG_QCONFIG_PATH" ]; then - echo >&2 "Error: configuration file not found:" - echo >&2 " $relpath/src/corelib/global/qconfig-${CFG_QCONFIG}.h" - echo >&2 " or" - echo >&2 " $CFG_QCONFIG_PATH" - exit 1 - fi - fi -esac - -if [ "$XPLATFORM_MAC" = "no" -a "$CFG_DEBUG_RELEASE" = "yes" ]; then - echo - echo "WARNING: -debug-and-release is not supported outside of Mac OS X." - echo "Qt can be built in release mode with separate debug information, so" - echo "-debug-and-release is not necessary anymore" - echo -fi - -if ( [ "$CFG_XCB" = "system" ] || [ "$CFG_XCB" = "qt" ] ) && [ "$CFG_XKBCOMMON" = "no" ]; then - echo "Error: -no-xkbcommon-x11 is not supported on XCB platform plugin." - exit 101 -fi - if [ "$XPLATFORM_ANDROID" = "yes" ]; then - if [ "$CFG_DBUS" = "auto" ]; then - CFG_DBUS="no" - fi - if [ "$CFG_EGLFS" = "auto" ]; then - CFG_EGLFS="no" - fi if [ -z "$CFG_DEFAULT_ANDROID_NDK_HOST" ]; then case $PLATFORM in linux-*) @@ -3289,9 +1239,6 @@ if [ "$XPLATFORM_ANDROID" = "yes" ]; then exit 1 fi - QT_QPA_DEFAULT_PLATFORM="android" - CFG_LARGEFILE="no" - DeviceVar set DEFAULT_ANDROID_SDK_ROOT "$CFG_DEFAULT_ANDROID_SDK_ROOT" DeviceVar set DEFAULT_ANDROID_NDK_ROOT "$CFG_DEFAULT_ANDROID_NDK_ROOT" DeviceVar set DEFAULT_ANDROID_PLATFORM "$CFG_DEFAULT_ANDROID_PLATFORM" @@ -3310,11 +1257,6 @@ if [ -d "$XPLATFORM" ]; then else XQMAKESPEC="$relpath/mkspecs/${XPLATFORM}" fi -if [ "$PLATFORM" != "$XPLATFORM" ]; then - QT_CROSS_COMPILE=yes - QMAKE_CONFIG="$QMAKE_CONFIG cross_compile" - QTCONFIG_CONFIG="$QTCONFIG_CONFIG cross_compile" -fi if [ "$BUILD_ON_MAC" = "yes" ]; then if [ `basename $QMAKESPEC` = "macx-xcode" ] || [ `basename $XQMAKESPEC` = "macx-xcode" ]; then @@ -3394,199 +1336,15 @@ if [ "$OPT_SHADOW" = "yes" ]; then mkdir -p "$outpath/mkspecs" fi -# detect build style -if [ "$CFG_DEBUG" = "auto" ]; then - if [ "$XPLATFORM_MAC" = "yes" -o "$XPLATFORM_MINGW" = "yes" ]; then - CFG_DEBUG_RELEASE=yes - CFG_DEBUG=yes - elif [ "$CFG_DEV" = "yes" ]; then - CFG_DEBUG_RELEASE=no - CFG_DEBUG=yes - else - CFG_DEBUG_RELEASE=no - CFG_DEBUG=no - fi -fi -if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then - QT_CONFIG="$QT_CONFIG build_all debug_and_release" -fi - -if [ "$CFG_FORCEDEBUGINFO" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG force_debug_info" -fi - -if [ "$CFG_RELEASE_TOOLS" = "yes" ]; then - QT_CONFIG="$QT_CONFIG release_tools" -fi - -if [ "$XPLATFORM_MAC" = "yes" ]; then - [ "$CFG_PKGCONFIG" = "auto" ] && CFG_PKGCONFIG="no" -fi - -if [ "$XPLATFORM_IOS" = "yes" ]; then - CFG_RPATH="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 qtdoc qtmacextras qtserialport qtwebkit qtwebkit-examples" - CFG_PRECOMPILE="no" # Precompiled headers not supported with multiple -arch arguments - - # If the user passes -sdk on the command line we build a SDK-specific Qt build. - # Otherwise we build a joined simulator and device build, which is the default. - if [ -z "$OPT_MAC_SDK" ]; then - QT_CONFIG="$QT_CONFIG build_all simulator_and_device" +if [ "$XPLATFORM_ANDROID" != "yes" ]; then + TEST_COMPILER=`getXQMakeConf QMAKE_CXX` + GCC_MACHINE_DUMP= + case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac + if [ -n "$GCC_MACHINE_DUMP" ]; then + DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine) fi fi -# disable XCB and GTK support auto-detection on Mac -if [ "$XPLATFORM_MAC" = "yes" ]; then - [ "$CFG_XCB" = "auto" ] && CFG_XCB=no - [ "$CFG_GTK" = "auto" ] && CFG_GTK=no -fi - -QMAKE_CONF_COMPILER=`getXQMakeConf QMAKE_CXX` - -TEST_COMPILER=$QMAKE_CONF_COMPILER - -if [ "$XPLATFORM_ANDROID" = "yes" ] ; then - ANDROID_NDK_TOOLCHAIN_PREFIX= - ANDROID_NDK_TOOLS_PREFIX= - ANDROID_PLATFORM_ARCH= - case $CFG_DEFAULT_ANDROID_TARGET_ARCH in - armeabi*) - ANDROID_NDK_TOOLS_PREFIX=arm-linux-androideabi - ANDROID_NDK_TOOLCHAIN_PREFIX=arm-linux-androideabi - ANDROID_PLATFORM_ARCH=arch-arm - ;; - x86) - ANDROID_NDK_TOOLS_PREFIX=i686-linux-android - ANDROID_NDK_TOOLCHAIN_PREFIX=x86 - ANDROID_PLATFORM_ARCH=arch-x86 - ;; - mips) - ANDROID_NDK_TOOLS_PREFIX=mipsel-linux-android - ANDROID_NDK_TOOLCHAIN_PREFIX=mipsel-linux-android - ANDROID_PLATFORM_ARCH=arch-mips - ;; - arm64-v8a) - ANDROID_NDK_TOOLS_PREFIX=aarch64-linux-android - ANDROID_NDK_TOOLCHAIN_PREFIX=aarch64-linux-android - ANDROID_PLATFORM_ARCH=arch-arm64 - ;; - mips64) - ANDROID_NDK_TOOLS_PREFIX=mips64el-linux-android - ANDROID_NDK_TOOLCHAIN_PREFIX=mips64el-linux-android - ANDROID_PLATFORM_ARCH=arch-mips64 - ;; - x86_64) - ANDROID_NDK_TOOLS_PREFIX=x86_64-linux-android - ANDROID_NDK_TOOLCHAIN_PREFIX=x86_64 - ANDROID_PLATFORM_ARCH=arch-x86_64 - ;; - *) - echo "ERROR: Unknown android arch $CFG_DEFAULT_ANDROID_TARGET_ARCH" - exit 1 - ;; - esac - QMAKE_CONF_COMPILER=$CFG_DEFAULT_ANDROID_NDK_ROOT/toolchains/$ANDROID_NDK_TOOLCHAIN_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 - -TEST_COMPILER_CXXFLAGS=`getXQMakeConf QMAKE_CXXFLAGS` - -GCC_MACHINE_DUMP= -case "$TEST_COMPILER" in *g++) GCC_MACHINE_DUMP=$($TEST_COMPILER -dumpmachine);; esac -if [ -n "$GCC_MACHINE_DUMP" ]; then - DeviceVar set GCC_MACHINE_DUMP $($TEST_COMPILER -dumpmachine) -fi - -if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then - SYSROOT_FLAG="--sysroot=$CFG_SYSROOT" -else - SYSROOT_FLAG= -fi -export SYSROOT_FLAG # used by config.tests/unix/{compile.test,arch.test} - -# Auto-detect default include and library search paths. - -# Use intermediate variable to get around backtick/quote nesting problems. -awkprog=' -BEGIN { ORS = ""; FS = "="; incs = 0; libs = 0; } - -function normalize(dir) -{ - do { - odir = dir - sub(/\/[^\/]+\/\.\./, "", dir) - } while (dir != odir); - do { - odir = dir - gsub(/\/\./, "", dir) - } while (dir != odir); - sub("/$", "", dir); - return dir; -} - -# extract include paths from indented lines between -# #include <...> search starts here: -# and -# End of search list. -/^\#include </ { yup=1; print "DEFAULT_INCDIRS=\""; next } -/^End of search/ { yup=0; print "\"\n" } -/ \(framework directory\)$/ { next } -yup { print normalize(substr($0, 2)) "\n"; ++incs } - -# extract from one line like LIBRARY_PATH=/one/path:/another/path:... -$1 == "LIBRARY_PATH" { - libs = split($2, library_paths, ":"); - print "DEFAULT_LIBDIRS=\""; - for (lib in library_paths) { - dir = normalize(library_paths[lib]); - if (!(dir in dirs)) { - print dir "\n"; - dirs[dir] = 1; - } - } - print "\"\n" -} - -END { - if (incs == 0) - print "DEFAULT_INCDIRS=\"/usr/include\n/usr/local/include\"\n"; - if (libs == 0) - print "DEFAULT_LIBDIRS=\"/lib\n/usr/lib\"\n"; -}' - -awkprog_result=`LC_ALL=C $TEST_COMPILER $SYSROOT_FLAG $TEST_COMPILER_CXXFLAGS -xc++ -E -v - < /dev/null 2>&1 > /dev/null | $AWK "$awkprog"` -eval "$awkprog_result" -[ "$OPT_VERBOSE" = "yes" ] && echo "$awkprog_result" - -#setup the build parts -if [ -z "$CFG_BUILD_PARTS" ]; then - CFG_BUILD_PARTS="$QT_DEFAULT_BUILD_PARTS" - - # build tests by default, if a developer build - if [ "$CFG_DEV" = "yes" ]; then - CFG_BUILD_PARTS="$CFG_BUILD_PARTS tests" - fi - - # don't build tools by default when cross-compiling - if [ "$PLATFORM" != "$XPLATFORM" ]; then - CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed 's, tools,,g'` - fi -fi -for nobuild in $CFG_NOBUILD_PARTS; do - CFG_BUILD_PARTS=`echo "$CFG_BUILD_PARTS" | sed "s, $nobuild,,g"` -done -if echo $CFG_BUILD_PARTS | grep -v libs >/dev/null 2>&1; then -# echo -# echo "WARNING: libs is a required part of the build." -# echo - CFG_BUILD_PARTS="$CFG_BUILD_PARTS libs" -fi - #------------------------------------------------------------------------------- # postprocess installation and deployment paths #------------------------------------------------------------------------------- @@ -3764,10 +1522,6 @@ if [ -z "$QT_REL_HOST_DATA" ]; then fi fi -if [ "$CFG_COMPILE_EXAMPLES" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG compile_examples" -fi - shortxspec=`echo $XQMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` shortspec=`echo $QMAKESPEC | sed "s,^${relpath}/mkspecs/,,"` @@ -3815,10 +1569,6 @@ addConfStr "$shortspec" [ -d "$outpath/src/corelib/global" ] || mkdir -p "$outpath/src/corelib/global" cat > "$outpath/src/corelib/global/qconfig.cpp.new" <<EOF -/* License Info */ -static const char qt_configure_licensee_str [256 + 12] = "qt_lcnsuser=$Licensee"; -static const char qt_configure_licensed_products_str [256 + 12] = "qt_lcnsprod=$Edition"; - /* Installation date */ static const char qt_configure_installation [12+11] = "qt_instdate=2012-12-20"; @@ -3846,10 +1596,6 @@ $QT_CONFIGURE_STRS#endif # define QT_CONFIGURE_SYSROOTIFY_PREFIX $QMAKE_SYSROOTIFY #endif -/* strlen( "qt_lcnsxxxx" ) == 12 */ -#define QT_CONFIGURE_LICENSEE qt_configure_licensee_str + 12 -#define QT_CONFIGURE_LICENSED_PRODUCTS qt_configure_licensed_products_str + 12 - #define QT_CONFIGURE_PREFIX_PATH qt_configure_prefix_path_str + 12 #ifdef QT_BUILD_QMAKE # define QT_CONFIGURE_EXT_PREFIX_PATH qt_configure_ext_prefix_path_str + 12 @@ -4134,9 +1880,6 @@ else HOST_VARS_FILE="$HOST_VARS_OUTFILE" fi - -echo "Running configuration tests..." - #------------------------------------------------------------------------------- # Verify makespec #------------------------------------------------------------------------------- @@ -4152,3227 +1895,61 @@ if [ $? != "0" ]; then fi #------------------------------------------------------------------------------- -# Detect pkg-config -#------------------------------------------------------------------------------- -if [ -z "$PKG_CONFIG" ]; then - # See if PKG_CONFIG is set in the mkspec: - PKG_CONFIG="`"$CFG_QMAKE_PATH" -qtconf "$QTCONFFILE" -E -nocache -spec "$XQMAKESPEC" "CONFIG=" $DEV_NULL 2>&1 | sed -n -e 's,^PKG_CONFIG = \(.*\),\1,p'`" - [ -n "$PKG_CONFIG" ] && [ "$OPT_VERBOSE" = "yes" ] && echo "Found pkg-config from mkspec: $PKG_CONFIG" -fi -if [ -z "$PKG_CONFIG" ]; then - PKG_CONFIG=`"$WHICH" pkg-config 2>/dev/null` - [ -n "$PKG_CONFIG" ] && [ "$OPT_VERBOSE" = "yes" ] && echo "Found pkg-config from \$PATH: $PKG_CONFIG" -fi - -if [ "$CFG_PKGCONFIG" = "no" ]; then - PKG_CONFIG= - [ "$OPT_VERBOSE" = "yes" ] && echo "pkg-config support disabled." -elif [ -n "$PKG_CONFIG" ]; then - # found a pkg-config - if [ "$QT_CROSS_COMPILE" = "yes" ]; then - # when xcompiling, check environment to see if it's actually usable - if [ -z "$PKG_CONFIG_LIBDIR" ]; then - if [ -n "$CFG_SYSROOT" ] && [ -d "$CFG_SYSROOT/usr/lib/pkgconfig" ]; then - PKG_CONFIG_LIBDIR=$CFG_SYSROOT/usr/lib/pkgconfig:$CFG_SYSROOT/usr/share/pkgconfig - if [ -n "$GCC_MACHINE_DUMP" ]; then - PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:$CFG_SYSROOT/usr/lib/$GCC_MACHINE_DUMP/pkgconfig - fi - export PKG_CONFIG_LIBDIR - echo >&2 "Note: PKG_CONFIG_LIBDIR automatically set to $PKG_CONFIG_LIBDIR" - elif [ "$CFG_PKGCONFIG" = "auto" ]; then - PKG_CONFIG= - echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_LIBDIR is not set and" - echo >&2 "the host's .pc files would be used (even if you set PKG_CONFIG_PATH)." - echo >&2 "Set this variable to the directory that contains target .pc files" - echo >&2 "for pkg-config to function correctly when cross-compiling or" - echo >&2 "use -pkg-config to override this test." - fi - fi - if [ -z "$PKG_CONFIG_SYSROOT_DIR" ]; then - if [ -n "$CFG_SYSROOT" ]; then - PKG_CONFIG_SYSROOT_DIR=$CFG_SYSROOT - export PKG_CONFIG_SYSROOT_DIR - echo >&2 "Note: PKG_CONFIG_SYSROOT_DIR automatically set to $PKG_CONFIG_SYSROOT_DIR" - elif [ "$CFG_PKGCONFIG" = "auto" ]; then - PKG_CONFIG= - echo >&2 "Warning: Disabling pkg-config since PKG_CONFIG_SYSROOT_DIR is not set." - echo >&2 "Set this variable to your sysroot for pkg-config to function correctly when" - echo >&2 "cross-compiling or use -pkg-config to override this test." - fi - fi - fi - if [ -n "$PKG_CONFIG" ]; then - CFG_PKGCONFIG=yes - else - CFG_PKGCONFIG=no - fi -elif [ "$CFG_PKGCONFIG" = "yes" ]; then - echo >&2 "Could not detect pkg-config from mkspec or PATH." - exit 101 -fi - -if [ -z "$PKG_CONFIG" ]; then - QT_CONFIG="$QT_CONFIG no-pkg-config" -fi - -#------------------------------------------------------------------------------- # run configure tests #------------------------------------------------------------------------------- -# parameters: path, name, extra args -compileTest() -{ - path=config.tests/$1 - name=$2 - shift 2 - # allow config tests which behave differently depending on the type of - # library being built (shared/static) e.g. see config.tests/unix/icu - test_config="$QMAKE_CONFIG shared" - if [ "$CFG_SHARED" = "no" ]; then - test_config="$QMAKE_CONFIG static" - fi - echo $ECHO_N "checking for $name... $ECHO_C" - "$unixtests/compile.test" "$XQMAKESPEC" "$test_config" $OPT_VERBOSE "$relpath" "$outpath" "$path" "$name" "$CFG_QMAKE_PATH" "$QTCONFFILE" $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 -#------------------------------------------------------------------------------- - -# Use config.tests/arch/arch.pro to have the compiler tell us what the target architecture is -OUTFILE=$outpath/arch.result -"$unixtests/arch.test" "$XQMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "target" $CFG_QMAKE_PATH $QTCONFFILE $I_FLAGS $D_FLAGS $L_FLAGS -if [ $? -eq 0 ]; then - eval `cat "$OUTFILE"` -else - echo - echo "Could not determine the target architecture!" - echo "Turn on verbose messaging (-v) to see the final report." -fi -rm -f "$OUTFILE" 2>/dev/null -[ -z "$CFG_ARCH" ] && CFG_ARCH="unknown" - -if [ "$QMAKESPEC" != "$XQMAKESPEC" ]; then - # Do the same test again, using the host compiler - SYSROOT_FLAG= "$unixtests/arch.test" "$QMAKESPEC" $OPT_VERBOSE "$relpath" "$outpath" "$OUTFILE" "host" $CFG_QMAKE_PATH $QTCONFFILE $I_FLAGS $D_FLAGS $L_FLAGS - if [ $? -eq 0 ]; then - eval `cat "$OUTFILE"` - else - echo - echo "Could not determine the host architecture!" - echo "Turn on verbose messaging (-v) to see the final report." - fi - rm -f "$OUTFILE" 2>/dev/null - [ -z "$CFG_HOST_ARCH" ] && CFG_HOST_ARCH="unknown" -else - # not cross compiling, host == target - CFG_HOST_ARCH="$CFG_ARCH" - CFG_HOST_CPUFEATURES="$CFG_CPUFEATURES" -fi -unset OUTFILE - -if [ "$OPT_VERBOSE" = "yes" ]; then - echo "System architecture: '$CFG_ARCH'" - echo "Host architecture: '$CFG_HOST_ARCH'" -fi - -#------------------------------------------------------------------------------- -# functionality tests -#------------------------------------------------------------------------------- - -# auto-detect precompiled header support -if [ "$CFG_PRECOMPILE" = "auto" ]; then - if "$unixtests/precomp.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then - CFG_PRECOMPILE=no - else - CFG_PRECOMPILE=yes - fi -fi - -# auto-detect -fvisibility support -if [ "$CFG_REDUCE_EXPORTS" != "no" ]; then - if "$unixtests/fvisibility.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then - if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then - echo "-reduce-exports was requested but this compiler does not support it" - echo "Re-run configure with -v for more information" - exit 1 - fi - CFG_REDUCE_EXPORTS=no - else - CFG_REDUCE_EXPORTS=yes - fi -fi - -# auto-detect -fuse-ld=gold support -if [ "$CFG_USE_GOLD_LINKER" != "no" ]; then - if compilerSupportsFlag $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 --enable-new-dtags support -if linkerSupportsFlag $TEST_COMPILER --enable-new-dtags; then - CFG_ENABLE_NEW_DTAGS=yes -else - CFG_ENABLE_NEW_DTAGS=no -fi - -# auto-detect -fstack-protector-strong support (for QNX only currently) -if [ "$XPLATFORM_QNX" = "yes" ]; then - if compilerSupportsFlag $TEST_COMPILER -fstack-protector-strong; then - CFG_STACK_PROTECTOR_STRONG=yes - else - CFG_STACK_PROTECTOR_STRONG=no - fi -else - CFG_STACK_PROTECTOR_STRONG=no -fi - -# detect the availability of the -Bsymbolic-functions linker optimization -if [ "$CFG_REDUCE_RELOCATIONS" != "no" ]; then - if "$unixtests/bsymbolic_functions.test" "$TEST_COMPILER" "$OPT_VERBOSE"; then - if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then - echo "-reduce-relocations was requested but this compiler does not support it" - echo "Re-run configure with -v for more information" - exit 1 - fi - CFG_REDUCE_RELOCATIONS=no - else - CFG_REDUCE_RELOCATIONS=yes - fi -fi - -# auto-detect GNU make support -if [ "$CFG_USE_GNUMAKE" = "auto" ] && "$MAKE" -v | grep "GNU Make" >/dev/null 2>&1; then - CFG_USE_GNUMAKE=yes -fi - -# find the default framework value -if [ "$XPLATFORM_MAC" = "yes" ]; then - if [ "$CFG_FRAMEWORK" = "auto" ]; then - CFG_FRAMEWORK="$CFG_SHARED" - elif [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_SHARED" = "no" ]; then - echo - echo "WARNING: Using static linking will disable the use of Mac frameworks." - echo - CFG_FRAMEWORK="no" - fi -else - CFG_FRAMEWORK=no -fi - -if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then - # sanity-check for separate debug info - if [ "$CFG_SHARED" = "no" ]; then - echo "ERROR: -separate-debug-info is incompatible with -static" - exit 1 - fi - if [ "$CFG_DEBUG" = "no" -a "$CFG_DEBUG_RELEASE" = "no" -a "$CFG_FORCEDEBUGINFO" = "no" ]; then - echo "ERROR: -separate-debug-info needs -debug, -debug-and-release, or -force-debug-info" - exit 1 - fi - - # Detect objcopy support - if [ "$XPLATFORM_MAC" = "no" ]; then - if ! compileTest unix/objcopy "objcopy"; then - echo "ERROR: -separate-debug-info was requested but this binutils does not support it." - echo "Re-run configure with -v for more information" - exit 1 - fi - fi -fi - -# Detect C++11 & up support -stdcxx_error=false -if ! compileTest common/c++11 "C++11"; then - echo "ERROR: Qt requires a C++11 compiler and yours does not seem to be that." - echo "Please upgrade." - exit 1 -elif [ "$CFG_STDCXX" = "c++11" ]; then - : # CFG_STDCXX is correct -elif ! compileTest common/c++14 "C++14"; then - if [ "$CFG_STDCXX" != "auto" ]; then - stdcxx_error=true - else - CFG_STDCXX="c++11" - fi -elif [ "$CFG_STDCXX" = "c++14" ]; then - : # CFG_STDCXX is correct -elif ! compileTest common/c++1z "C++1z"; then - if [ "$CFG_STDCXX" != "auto" ]; then - stdcxx_error=true - else - CFG_STDCXX="c++14" - fi -else - CFG_STDCXX="c++1z" -fi - -if $stdcxx_error && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "$CFG_STDCXX 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 -fi - -# Detect which edition of the C++ standard the compiler defaults to -CFG_STDCXX_DEFAULT=199711 -if compileTest common/c++default "default C++ standard edition"; then - if [ -e "$outpath/config.tests/common/c++default/c++default.ii" ]; then - CFG_STDCXX_DEFAULT=`sed -n '/^[0-9]/s/L//p' "$outpath/config.tests/common/c++default/c++default.ii"` - else - if [ "$OPT_VERBOSE" = "yes" ]; then - echo "Failed to run the preprocessor, something is wrong with your compiler" - fi - if [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - exit 101 - fi - fi -fi - -# Detect whether 64-bit std::atomic works -- some 32-bit platforms require extra library support -if compileTest common/atomic64 "64-bit std::atomic"; then - CFG_ATOMIC64=yes -elif compileTest common/atomic64 "64-bit std::atomic in -latomic" -latomic; then - CFG_ATOMIC64=libatomic -else - CFG_ATOMIC64=no -fi - -# Detect whether std::atomic works for function pointers -- some implementations are buggy -if ! compileTest common/atomicfptr "std::atomic for function pointers"; then - echo "ERROR: detected a std::atomic implementation that fails for function pointers." - echo "Please apply the patch corresponding to your Standard Library vendor, found in" - echo " $relpath/config.tests/common/atomicfptr" - exit 101 -fi - -# detect sse2 support -CFG_SSE_LIST= -if [ "${CFG_SSE2}" = "auto" ]; then - if compileTest common/sse2 "sse2"; then - CFG_SSE2=yes - CFG_SSE_LIST=SSE2 - else - CFG_SSE2=no - fi -fi - -# detect sse3 support -if [ "${CFG_SSE2}" = "no" ]; then - CFG_SSE3=no -fi -if [ "${CFG_SSE3}" = "auto" ]; then - if compileTest common/sse3 "sse3"; then - CFG_SSE3=yes - CFG_SSE_LIST="$CFG_SSE_LIST SSE3" - else - CFG_SSE3=no - fi -fi - -# detect ssse3 support -if [ "${CFG_SSE3}" = "no" ]; then - CFG_SSSE3=no -fi -if [ "${CFG_SSSE3}" = "auto" ]; then - if compileTest common/ssse3 "ssse3"; then - CFG_SSSE3=yes - CFG_SSE_LIST="$CFG_SSE_LIST SSSE3" - else - CFG_SSSE3=no - fi -fi - -# detect sse4.1 support -if [ "${CFG_SSSE3}" = "no" ]; then - CFG_SSE4_1=no -fi -if [ "${CFG_SSE4_1}" = "auto" ]; then - if compileTest common/sse4_1 "sse4_1"; then - CFG_SSE4_1=yes - CFG_SSE_LIST="$CFG_SSE_LIST SSE4.1" - else - CFG_SSE4_1=no - fi -fi - -# detect sse4.2 support -if [ "${CFG_SSE4_1}" = "no" ]; then - CFG_SSE4_2=no -fi -if [ "${CFG_SSE4_2}" = "auto" ]; then - if compileTest common/sse4_2 "sse4_2"; then - CFG_SSE4_2=yes - CFG_SSE_LIST="$CFG_SSE_LIST SSE4.2" - else - CFG_SSE4_2=no - fi -fi - -# detect avx support -CFG_AVX_LIST= -if [ "${CFG_SSE4_2}" = "no" ]; then - CFG_AVX=no -fi -if [ "${CFG_AVX}" = "auto" ]; then - if compileTest common/avx "avx"; then - case "$XQMAKESPEC" in - *g++*|*-clang*) - # Some clang versions produce internal compiler errors compiling Qt AVX code - case `$TEST_COMPILER --version` in - Apple\ clang\ version\ [23]*) - CFG_AVX=no - if [ "$OPT_VERBOSE" = "yes" ]; then - echo 'AVX support disabled for blacklisted clang compiler' - fi - ;; - *) - CFG_AVX=yes - CFG_AVX_LIST=AVX - ;; - esac - ;; - *) - CFG_AVX=yes - CFG_AVX_LIST=AVX - ;; - esac - else - CFG_AVX=no - fi -fi - -# detect avx2 support -if [ "${CFG_AVX}" = "no" ]; then - CFG_AVX2=no -fi -if [ "${CFG_AVX2}" = "auto" ]; then - if compileTest common/avx2 "avx2"; then - CFG_AVX2=yes - CFG_AVX_LIST="$CFG_AVX_LIST AVX2" - else - CFG_AVX2=no - fi -fi - -# detect avx512 support -if [ "${CFG_AVX2}" = "no" ]; then - CFG_AVX512= -fi -if [ "${CFG_AVX512}" = "auto" ]; then - # First, test for AVX-512 Foundation - if compileTest common/avx512 "avx512f" AVX512=F; then - # Test for the sub-features - CFG_AVX512=f - CFG_AVX512_UPPER=AVX512F - for feature in er cd pf dq bw vl ifma vbmi; do - if [ -n "$BASH_VERSION" ] && [ "${BASH_VERSION%%.*}" -gt 3 ]; then - upper=${feature^^*} - elif [ -n "$ZSH_VERSION" ]; then - upper=${(U)feature} - else - upper=`echo $feature | tr a-z A-Z` - fi - if compileTest common/avx512 "avx512$feature" AVX512=$upper; then - CFG_AVX512="$CFG_AVX512 $feature" - CFG_AVX512_UPPER="$CFG_AVX512_UPPER AVX512$upper" - fi - done - else - CFG_AVX512= - fi -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 - ;; - *) - CFG_NEON=no - ;; - esac -fi - -# detect mips_dsp support -if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSP}" = "auto" ]; then - if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dsp "mips_dsp" "$CFG_QMAKE_PATH" "$QTCONFFILE" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then - CFG_MIPS_DSP=yes - else - CFG_MIPS_DSP=no - fi -elif [ "$CFG_ARCH" != "mips" ]; then - CFG_MIPS_DSP=no -fi - -# detect mips_dspr2 support -if [ "$CFG_ARCH" = "mips" ] && [ "${CFG_MIPS_DSPR2}" = "auto" ]; then - if "$unixtests/compile.test" "$XQMAKESPEC" "$QMAKE_CONFIG" $OPT_VERBOSE "$relpath" "$outpath" config.tests/unix/mips_dspr2 "mips_dspr2" "$CFG_QMAKE_PATH" "$QTCONFFILE" $L_FLAGS $I_FLAGS $D_FLAGS $l_FLAGS; then - CFG_MIPS_DSPR2=yes - else - CFG_MIPS_DSPR2=no - fi -elif [ "$CFG_ARCH" != "mips" ]; then - CFG_MIPS_DSPR2=no -fi - -[ "$XPLATFORM_MINGW" = "yes" ] && QMakeVar add styles "windowsxp windowsvista" -[ "$XPLATFORM_ANDROID" = "yes" ] && QMakeVar add styles "android" - -# check IPC support -if ! compileTest unix/ipc_sysv "ipc_sysv" ; then - # SYSV IPC is not supported - check POSIX IPC - if compileTest unix/ipc_posix "ipc_posix" ; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_POSIX_IPC" - else - if [ "$XPLATFORM_ANDROID" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] ; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SYSTEMSEMAPHORE QT_NO_SHAREDMEMORY" - fi - fi -fi - -# detect zlib -if [ "$CFG_ZLIB" = "no" ]; then - # Note: Qt no longer support builds without zlib - # So we force a "no" to be "auto" here. - # If you REALLY really need no zlib support, you can still disable - # it by doing the following: - # add "no-zlib" to mkspecs/qconfig.pri - # #define QT_NO_COMPRESS (probably by adding to src/corelib/global/qconfig.h) - # - # There's no guarantee that Qt will build under those conditions - - CFG_ZLIB=auto - ZLIB_FORCED=yes -fi - -if [ "$XPLATFORM_QNX" = "yes" ]; then - if [ "$CFG_SLOG2" != "no" ]; then - if compileTest unix/slog2 "slog2"; then - CFG_SLOG2=yes - QMAKE_CONFIG="$QMAKE_CONFIG slog2" - else - CFG_SLOG2=no - fi - fi - if [ "$CFG_QNX_IMF" != "no" ]; then - if compileTest unix/qqnx_imf "qqnx_imf"; then - CFG_QNX_IMF=yes - QMAKE_CONFIG="$QMAKE_CONFIG qqnx_imf" - else - CFG_QNX_IMF=no - fi - fi - if [ "$CFG_PPS" != "no" ]; then - if compileTest unix/pps "pps"; then - CFG_PPS=yes - QMAKE_CONFIG="$QMAKE_CONFIG qqnx_pps" - else - CFG_PPS=no - fi - fi - - if [ "$CFG_LGMON" != "no" ]; then - if compileTest unix/lgmon "lgmon"; then - CFG_LGMON=yes - QMAKE_CONFIG="$QMAKE_CONFIG lgmon" - else - CFG_LGMON=no - fi - fi -fi - -if [ "$XPLATFORM_INTEGRITY" = "yes" ]; then - CFG_INTEGRITYFB=yes - CFG_SHARED=no - CFG_LARGEFILE=no -fi - -if [ "$CFG_ZLIB" = "auto" ]; then - if compileTest unix/zlib "zlib"; then - CFG_ZLIB=system - else - CFG_ZLIB=yes - fi -fi - -if [ "$CFG_MTDEV" != "no" ]; then - if compileTest unix/mtdev "mtdev"; then - CFG_MTDEV=yes - else - CFG_MTDEV=no - fi -fi -if [ "$CFG_MTDEV" = "no" ]; then - QMakeVar add DEFINES QT_NO_MTDEV -fi - -if [ "$CFG_JOURNALD" != "no" ]; then - if compileTest unix/journald "journald"; then - CFG_JOURNALD=yes - QMAKE_CONFIG="$QMAKE_CONFIG journald" - else - if [ "$CFG_JOURNALD" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "journald 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_JOURNALD=no - fi - fi -fi - -if [ "$CFG_SYSLOG" != "no" ]; then - if compileTest unix/syslog "syslog"; then - CFG_SYSLOG=yes - QMAKE_CONFIG="$QMAKE_CONFIG syslog" - else - if [ "$CFG_SYSLOG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "syslog 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_SYSLOG=no - fi - fi -fi - -if [ "$CFG_LARGEFILE" = "auto" ]; then - #Large files should be enabled for all Linux systems - CFG_LARGEFILE=yes -fi - -if [ "$CFG_GUI" = "no" ]; then - QPA_PLATFORM_GUARD=no -fi - -# detect how jpeg should be built -if [ "$CFG_JPEG" = "auto" ]; then - if [ "$CFG_SHARED" = "yes" ]; then - CFG_JPEG=plugin - else - CFG_JPEG=yes - fi -fi -# detect jpeg -if [ "$CFG_LIBJPEG" = "auto" ]; then - if compileTest unix/libjpeg "libjpeg"; then - CFG_LIBJPEG=system - else - CFG_LIBJPEG=qt - fi -fi - -# detect how gif should be built -if [ "$CFG_GIF" = "auto" ]; then - if [ "$CFG_SHARED" = "yes" ]; then - CFG_GIF=plugin - else - CFG_GIF=yes - fi -fi - -# detect png -if [ "$CFG_LIBPNG" = "auto" ]; then - if compileTest unix/libpng "libpng"; then - CFG_LIBPNG=system - else - CFG_LIBPNG=qt - fi -fi - -# detect dl -if compileTest unix/dlopen "dlopen"; then - QMAKE_CONFIG="$QMAKE_CONFIG no-libdl" -else - if ! compileTest unix/libdl "libdl"; then - QMAKE_CONFIG="$QMAKE_CONFIG no-libdl" - QMakeVar add DEFINES QT_NO_DYNAMIC_LIBRARY - fi -fi - -if [ "$CFG_EGLFS" = "yes" ]; then - if [ "$CFG_EGL" = "no" ]; then - echo "The EGLFS plugin requires EGL support and cannot be built" - exit 101 - fi - CFG_EGL=yes -fi - -# auto-detect SQL-modules support -for _SQLDR in $CFG_SQL_AVAILABLE; do - case $_SQLDR in - mysql) - if [ "$CFG_SQL_mysql" != "no" ]; then - [ -z "$CFG_MYSQL_CONFIG" ] && CFG_MYSQL_CONFIG=`"$WHICH" mysql_config` - if [ -x "$CFG_MYSQL_CONFIG" ]; then - QT_CFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --include 2>/dev/null | filterIncludeOptions` - # -rdynamic should not be returned by mysql_config, but is on RHEL 6.6 - QT_LFLAGS_MYSQL_R=`$CFG_MYSQL_CONFIG --libs_r 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"` - QT_LFLAGS_MYSQL=`$CFG_MYSQL_CONFIG --libs 2>/dev/null | filterLibraryOptions | sed "s/-rdynamic//"` - QT_MYSQL_VERSION=`$CFG_MYSQL_CONFIG --version 2>/dev/null` - QT_MYSQL_VERSION_MAJOR=`echo $QT_MYSQL_VERSION | cut -d . -f 1` - fi - if [ -n "$QT_MYSQL_VERSION" ] && [ "$QT_MYSQL_VERSION_MAJOR" -lt 4 ]; then - if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "This version of MySql is not supported ($QT_MYSQL_VERSION)." - echo " You need MySql 4 or higher." - 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_SQL_mysql="no" - QT_LFLAGS_MYSQL="" - QT_LFLAGS_MYSQL_R="" - QT_CFLAGS_MYSQL="" - fi - else - if compileTest unix/mysql_r "MySQL (thread-safe)" $QT_LFLAGS_MYSQL_R $QT_CFLAGS_MYSQL; then - QMakeVar add CONFIG use_libmysqlclient_r - if [ "$CFG_SQL_mysql" = "auto" ]; then - CFG_SQL_mysql=plugin - fi - QT_LFLAGS_MYSQL="$QT_LFLAGS_MYSQL_R" - elif compileTest unix/mysql "MySQL (thread-unsafe)" $QT_LFLAGS_MYSQL $QT_CFLAGS_MYSQL; then - if [ "$CFG_SQL_mysql" = "auto" ]; then - CFG_SQL_mysql=plugin - fi - else - if [ "$CFG_SQL_mysql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "MySQL 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_SQL_mysql=no - QT_LFLAGS_MYSQL="" - QT_LFLAGS_MYSQL_R="" - QT_CFLAGS_MYSQL="" - fi - fi - fi - fi - ;; - psql) - if [ "$CFG_SQL_psql" != "no" ]; then - [ -z "$CFG_PSQL_CONFIG" ] && CFG_PSQL_CONFIG=`"$WHICH" pg_config` - # Be careful not to use native pg_config when cross building. - if [ "$XPLATFORM_MINGW" != "yes" ] && [ -x "$CFG_PSQL_CONFIG" ]; then - QT_CFLAGS_PSQL=`$CFG_PSQL_CONFIG --includedir 2>/dev/null | filterIncludePath` - QT_LFLAGS_PSQL=`$CFG_PSQL_CONFIG --libdir 2>/dev/null | filterLibraryPath` - fi - [ -z "$QT_CFLAGS_PSQL" ] || QT_CFLAGS_PSQL="-I$QT_CFLAGS_PSQL" - [ -z "$QT_LFLAGS_PSQL" ] || QT_LFLAGS_PSQL="-L$QT_LFLAGS_PSQL" - # But, respect PSQL_LIBS if set - [ -z "$PSQL_LIBS" ] || QT_LFLAGS_PSQL="$PSQL_LIBS" - if compileTest unix/psql "PostgreSQL" $QT_LFLAGS_PSQL $QT_CFLAGS_PSQL; then - if [ "$CFG_SQL_psql" = "auto" ]; then - CFG_SQL_psql=plugin - fi - else - if [ "$CFG_SQL_psql" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "PostgreSQL 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_SQL_psql=no - QT_CFLAGS_PSQL="" - QT_LFLAGS_PSQL="" - fi - fi - fi - ;; - odbc) - if [ "$CFG_SQL_odbc" != "no" ]; then - if [ "$XPLATFORM_MAC" != "yes" ] && compileTest unix/odbc "ODBC"; then - if [ "$CFG_SQL_odbc" = "auto" ]; then - CFG_SQL_odbc=plugin - fi - else - if compileTest unix/iodbc "iODBC"; then - QT_LFLAGS_ODBC="-liodbc" - if [ "$CFG_SQL_odbc" = "auto" ]; then - CFG_SQL_odbc=plugin - fi - else - if [ "$CFG_SQL_odbc" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "ODBC 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_SQL_odbc=no - fi - fi - fi - fi - ;; - oci) - if [ "$CFG_SQL_oci" != "no" ]; then - if compileTest unix/oci "OCI"; then - if [ "$CFG_SQL_oci" = "auto" ]; then - CFG_SQL_oci=plugin - fi - else - if [ "$CFG_SQL_oci" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "Oracle (OCI) 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_SQL_oci=no - fi - fi - fi - ;; - tds) - if [ "$CFG_SQL_tds" != "no" ]; then - [ -z "$SYBASE" ] || QT_LFLAGS_TDS="-L$SYBASE/lib" - [ -z "$SYBASE_LIBS" ] || QT_LFLAGS_TDS="$QT_LFLAGS_TDS $SYBASE_LIBS" - if compileTest unix/tds "TDS" $QT_LFLAGS_TDS; then - if [ "$CFG_SQL_tds" = "auto" ]; then - CFG_SQL_tds=plugin - fi - else - if [ "$CFG_SQL_tds" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "TDS 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_SQL_tds=no - fi - fi - fi - ;; - db2) - if [ "$CFG_SQL_db2" != "no" ]; then - if compileTest unix/db2 "DB2"; then - if [ "$CFG_SQL_db2" = "auto" ]; then - CFG_SQL_db2=plugin - fi - else - if [ "$CFG_SQL_db2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "ODBC 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_SQL_db2=no - fi - fi - fi - ;; - ibase) - if [ "$CFG_SQL_ibase" != "no" ]; then - if compileTest unix/ibase "InterBase"; then - if [ "$CFG_SQL_ibase" = "auto" ]; then - CFG_SQL_ibase=plugin - fi - else - if [ "$CFG_SQL_ibase" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "InterBase 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_SQL_ibase=no - fi - fi - fi - ;; - sqlite2) - if [ "$CFG_SQL_sqlite2" != "no" ]; then - if compileTest unix/sqlite2 "SQLite2"; then - if [ "$CFG_SQL_sqlite2" = "auto" ]; then - CFG_SQL_sqlite2=plugin - fi - else - if [ "$CFG_SQL_sqlite2" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "SQLite2 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_SQL_sqlite2=no - fi - fi - fi - ;; - sqlite) - if [ "$CFG_SQL_sqlite" != "no" ]; then - SQLITE_AUTODETECT_FAILED="no" - if [ "$CFG_SQLITE" = "system" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists sqlite3 2>/dev/null; then - QT_CFLAGS_SQLITE=`$PKG_CONFIG --cflags sqlite3 2>/dev/null` - QT_LFLAGS_SQLITE=`$PKG_CONFIG --libs sqlite3 2>/dev/null` - else - QT_CFLAGS_SQLITE= - QT_LFLAGS_SQLITE="-lsqlite3 -lz" - fi - if compileTest unix/sqlite "SQLite" $QT_LFLAGS_SQLITE $QT_CFLAGS_SQLITE; then - if [ "$CFG_SQL_sqlite" = "auto" ]; then - CFG_SQL_sqlite=plugin - fi - QMAKE_CONFIG="$QMAKE_CONFIG system-sqlite" - else - SQLITE_AUTODETECT_FAILED="yes" - CFG_SQL_sqlite=no - fi - elif [ -f "$relpath/src/3rdparty/sqlite/sqlite3.h" ]; then - if [ "$CFG_SQL_sqlite" = "auto" ]; then - CFG_SQL_sqlite=plugin - fi - else - SQLITE_AUTODETECT_FAILED="yes" - CFG_SQL_sqlite=no - fi - - if [ "$SQLITE_AUTODETECT_FAILED" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "SQLite 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 - fi - fi - ;; - *) - if [ "$OPT_VERBOSE" = "yes" ]; then - echo "unknown SQL driver: $_SQLDR" - fi - ;; - esac -done - -# auto-detect CUPS support -if [ "$CFG_CUPS" != "no" ]; then - if compileTest unix/cups "Cups"; then - CFG_CUPS=yes - else - if [ "$CFG_CUPS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "Cups 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_CUPS=no - fi - fi -fi - -# auto-detect iconv(3) support -if [ "$CFG_ICONV" != "no" ]; then - if [ "$XPLATFORM_MINGW" = "yes" ]; then - CFG_ICONV=no - elif compileTest unix/iconv "POSIX iconv"; then - CFG_ICONV=yes - elif compileTest unix/sun-libiconv "SUN libiconv"; then - CFG_ICONV=sun - elif compileTest unix/gnu-libiconv "GNU libiconv"; then - CFG_ICONV=gnu - else - if [ "$CFG_ICONV" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "Iconv 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_ICONV=no - fi - fi -fi - -# auto-detect libdbus-1 support -# auto: detect if libdbus-1 is present; if so, link to it -# linked: fail if libdbus-1 is not present; otherwise link to it -# runtime: no detection (cannot fail), load libdbus-1 at runtime -if [ "$CFG_DBUS" = "auto" ] || [ "$CFG_DBUS" = "linked" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then - QT_CFLAGS_DBUS=`$PKG_CONFIG --cflags dbus-1 2>/dev/null` - QT_LIBS_DBUS=`$PKG_CONFIG --libs dbus-1 2>/dev/null` - else - QT_LIBS_DBUS="-ldbus-1" - fi - if compileTest unix/dbus "D-Bus" $QT_CFLAGS_DBUS $QT_LIBS_DBUS; then - QMakeVar set QT_LIBS_DBUS "$QT_LIBS_DBUS" - QMakeVar set QT_CFLAGS_DBUS "$QT_CFLAGS_DBUS" - # Try find correct host configuration for dbus tools when cross-compiling - if [ "$QT_CROSS_COMPILE" = "yes" ] && env -i PATH="$PATH" \ - pkg-config --atleast-version="$MIN_DBUS_1_VERSION" dbus-1 2>/dev/null; then - QT_CFLAGS_DBUS=`env -i PATH="$PATH" pkg-config --cflags dbus-1 2>/dev/null` - fi - QMakeVar set QT_HOST_CFLAGS_DBUS "$QT_CFLAGS_DBUS" - CFG_DBUS=linked - else - # Failed to compile the test, so it's an error if CFG_DBUS is "linked" - if [ "$CFG_DBUS" = "linked" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "The Qt D-Bus module cannot be enabled because libdbus-1 version $MIN_DBUS_1_VERSION was not found." - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - # CFG_DBUS is "auto" here - CFG_DBUS=runtime - fi - fi -fi - -# auto-detect libproxy support -if [ "$CFG_LIBPROXY" != "no" ]; then - if compileTest common/libproxy "libproxy"; then - CFG_LIBPROXY=yes - else - if [ "$CFG_LIBPROXY" = "auto" ]; then - CFG_LIBPROXY=no - elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - # CFG_LIBPROXY is "yes" here - echo "The libproxy support cannot be enabled because libproxy was not found." - 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 - fi - fi -fi - -# auto-detect Glib support -if [ "$CFG_GLIB" != "no" ]; then - if [ -n "$PKG_CONFIG" ]; then - QT_CFLAGS_GLIB=`$PKG_CONFIG --cflags glib-2.0 gthread-2.0 2>/dev/null` - QT_LIBS_GLIB=`$PKG_CONFIG --libs glib-2.0 gthread-2.0 2>/dev/null` - fi - if compileTest unix/glib "Glib" $QT_CFLAGS_GLIB $QT_LIBS_GLIB; then - CFG_GLIB=yes - QMakeVar set QT_CFLAGS_GLIB "$QT_CFLAGS_GLIB" - QMakeVar set QT_LIBS_GLIB "$QT_LIBS_GLIB" - else - if [ "$CFG_GLIB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "Glib support cannot be enabled due to functionality tests!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - CFG_GLIB=no - fi - fi -fi - -# auto-detect GTK style support -if [ "$CFG_GLIB" = "yes" -a "$CFG_GTK" != "no" ]; then - if [ -n "$PKG_CONFIG" ]; then - QT_CFLAGS_QGTK3=`$PKG_CONFIG --cflags gtk+-3.0 2>/dev/null` - QT_LIBS_QGTK3=`$PKG_CONFIG --libs gtk+-3.0 2>/dev/null` - QT_LIBS_QGOBJECT=`$PKG_CONFIG --libs gobject-2.0 2>/dev/null` - fi - if [ -n "$QT_CFLAGS_QGTK3" ] ; then - CFG_GTK=yes - QT_CONFIG="$QT_CONFIG gtk3" - QMakeVar set QT_CFLAGS_QGTK3 "$QT_CFLAGS_QGTK3" - QMakeVar set QT_LIBS_QGTK3 "$QT_LIBS_QGTK3" - else - if [ "$CFG_GTK" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "GTK theme support cannot be enabled due to functionality tests!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - CFG_GTK=no - fi - fi -elif [ "$CFG_GLIB" = "no" ]; then - CFG_GTK=no -fi - -# auto-detect libicu support -if [ "$CFG_ICU" != "no" ]; then - if compileTest unix/icu "ICU"; then - [ "$CFG_ICU" = "auto" ] && CFG_ICU=yes - else - if [ "$CFG_ICU" = "auto" ]; then - CFG_ICU=no - elif [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - # CFG_ICU is "yes" - - echo "The ICU library support cannot be enabled." - 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 - fi - fi -fi - -# Auto-detect PulseAudio support -if [ "$CFG_PULSEAUDIO" != "no" ]; then - if [ -n "$PKG_CONFIG" ]; then - QT_CFLAGS_PULSEAUDIO=`$PKG_CONFIG --cflags libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null` - QT_LIBS_PULSEAUDIO=`$PKG_CONFIG --libs libpulse '>=' 0.9.10 libpulse-mainloop-glib 2>/dev/null` - fi - if compileTest unix/pulseaudio "PulseAudio" $QT_CFLAGS_PULSEAUDIO $QT_LIBS_PULSEAUDIO; then - CFG_PULSEAUDIO=yes - QMakeVar set QT_CFLAGS_PULSEAUDIO "$QT_CFLAGS_PULSEAUDIO" - QMakeVar set QT_LIBS_PULSEAUDIO "$QT_LIBS_PULSEAUDIO" - else - if [ "$CFG_PULSEAUDIO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "PulseAudio support cannot be enabled due to functionality tests!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - CFG_PULSEAUDIO=no - fi - fi -fi - -# X11/MINGW OpenGL -if [ "$XPLATFORM_MINGW" = "yes" ]; then - # auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher) - if [ "$CFG_GUI" = "no" ]; then - if [ "$CFG_OPENGL" = "auto" ]; then - CFG_OPENGL=no - fi - if [ "$CFG_OPENGL" != "no" ]; then - echo "OpenGL enabled, but GUI disabled." - echo " You might need to either enable the GUI or disable OpenGL" - exit 1 - fi - fi - if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then - if compileTest x11/opengl "OpenGL"; then - CFG_OPENGL=desktop - elif compileTest unix/opengles2 "OpenGL ES 2.0"; then - CFG_OPENGL=es2 - else - if [ "$CFG_OPENGL" = "yes" ]; then - echo "All the OpenGL functionality tests failed!" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in" - echo " ${XQMAKESPEC}." - exit 1 - fi - CFG_OPENGL=no - fi - case "$PLATFORM" in - hpux*) - # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct. - if [ "$CFG_OPENGL" = "desktop" ]; then - compileTest x11/glxfbconfig "OpenGL" - if [ $? != "0" ]; then - QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT - fi - fi - ;; - *) - ;; - esac - elif [ "$CFG_OPENGL" = "es2" ]; then - #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" - echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in" - echo " ${XQMAKESPEC}." - exit 1 - fi - elif [ "$CFG_OPENGL" = "desktop" ]; then - # Desktop OpenGL support - compileTest x11/opengl "OpenGL" - if [ $? != "0" ]; then - echo "The OpenGL functionality test failed!" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in" - echo " ${XQMAKESPEC}." - exit 1 - fi - case "$PLATFORM" in - hpux*) - # HP-UX have buggy glx headers; check if we really need to define the GLXFBConfig struct. - compileTest x11/glxfbconfig "OpenGL" - if [ $? != "0" ]; then - QMakeVar add DEFINES QT_DEFINE_GLXFBCONFIG_STRUCT - fi - ;; - *) - ;; - esac - fi -fi # X11/MINGW OpenGL - -if [ "$XPLATFORM_MAC" = "yes" ]; then - if [ "$CFG_COREWLAN" = "auto" ]; then - if compileTest mac/corewlan "CoreWlan"; then - CFG_COREWLAN=yes - else - CFG_COREWLAN=no - fi - fi -fi - -# auto-detect OpenGL support (es2 = OpenGL ES 2.0 or higher) -if [ "$CFG_OPENGL" = "auto" ] || [ "$CFG_OPENGL" = "yes" ]; then - if compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL; then - CFG_OPENGL=desktop - elif compileTestWithPkgConfig glesv2 unix/opengles2 "OpenGL ES 2.0" OPENGL_ES2; then - CFG_OPENGL=es2 - else - if [ "$CFG_OPENGL" = "yes" ]; then - echo "All the OpenGL functionality tests failed!" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in" - echo " ${XQMAKESPEC}." - exit 1 - fi - CFG_OPENGL=no - fi -elif [ "$CFG_OPENGL" = "es2" ]; then - #OpenGL ES 2.0 - - compileTestWithPkgConfig glesv2 unix/opengles2 "OpenGL ES 2.0" OPENGL_ES2 - if [ $? != "0" ]; then - echo "The OpenGL ES 2.0 functionality test failed!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_OPENGL_ES2, QMAKE_LIBDIR_OPENGL_ES2 and QMAKE_LIBS_OPENGL_ES2 in" - echo " ${XQMAKESPEC}." - exit 1 - fi -elif [ "$CFG_OPENGL" = "desktop" ]; then - # Desktop OpenGL support - compileTestWithPkgConfig gl unix/opengldesktop "OpenGL" OPENGL - if [ $? != "0" ]; then - echo "The OpenGL functionality test failed!" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_OPENGL, QMAKE_LIBDIR_OPENGL and QMAKE_LIBS_OPENGL in" - echo " ${XQMAKESPEC}." - exit 1 - 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" ] && [ "$CFG_OPENGLES3" = "yes" ]; then - if compileTestWithPkgConfig glesv2 unix/opengles3 "OpenGL ES 3.0" ""; then - # Add a define for ES3, in addition to ES and ES2. - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3" - fi - if compileTestWithPkgConfig glesv2 unix/opengles31 "OpenGL ES 3.1" ""; then - # Add a define for ES31. - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES_3_1" - fi -fi - -# auto-detect FontConfig support -ORIG_CFG_FREETYPE="$CFG_FREETYPE" -if [ "$CFG_FONTCONFIG" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists fontconfig --exists freetype2 2>/dev/null; then - QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG --cflags fontconfig --cflags freetype2 2>/dev/null` - QT_LIBS_FONTCONFIG=`$PKG_CONFIG --libs fontconfig --libs freetype2 2>/dev/null` - else - QT_CFLAGS_FONTCONFIG= - QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig" - fi - if compileTest unix/fontconfig "FontConfig" $QT_CFLAGS_FONTCONFIG $QT_LIBS_FONTCONFIG; then - QT_CONFIG="$QT_CONFIG fontconfig" - QMakeVar set QMAKE_CFLAGS_FONTCONFIG "$QT_CFLAGS_FONTCONFIG" - QMakeVar set QMAKE_LIBS_FONTCONFIG "$QT_LIBS_FONTCONFIG" - CFG_FONTCONFIG=yes - CFG_FREETYPE=system - else - CFG_FONTCONFIG=no - fi - -fi - -# Save these for a check later -ORIG_CFG_XCB="$CFG_XCB" -ORIG_CFG_EGLFS="$CFG_EGLFS" -ORIG_CFG_DIRECTFB="$CFG_DIRECTFB" -ORIG_CFG_LINUXFB="$CFG_LINUXFB" -ORIG_CFG_MIRCLIENT="$CFG_MIRCLIENT" - -if [ "$CFG_LIBUDEV" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libudev 2>/dev/null; then - QMAKE_INCDIR_LIBUDEV=`$PKG_CONFIG --cflags-only-I libudev 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` - QMAKE_LIBS_LIBUDEV=`$PKG_CONFIG --libs libudev 2>/dev/null` - QMAKE_CFLAGS_LIBUDEV=`$PKG_CONFIG --cflags libudev 2>/dev/null` - QMakeVar set QMAKE_INCDIR_LIBUDEV "$QMAKE_INCDIR_LIBUDEV" - QMakeVar set QMAKE_LIBS_LIBUDEV "$QMAKE_LIBS_LIBUDEV" - fi - if compileTest unix/libudev "libudev" $QMAKE_CFLAGS_LIBUDEV $QMAKE_LIBS_LIBUDEV; then - CFG_LIBUDEV=yes - QT_CONFIG="$QT_CONFIG libudev" - elif [ "$CFG_LIBUDEV" = "yes" ]; then - echo "The libudev functionality test failed!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?" - exit 1 - else - CFG_LIBUDEV=no - fi -fi -if [ "$CFG_LIBUDEV" = "no" ]; then - QMakeVar add DEFINES QT_NO_LIBUDEV -fi - -if [ "$CFG_EVDEV" != "no" ]; then - if compileTest unix/evdev "evdev"; then - CFG_EVDEV=yes - QT_CONFIG="$QT_CONFIG evdev" - elif [ "$CFG_EVDEV" = "yes" ]; then - echo "The evdev functionality test failed!" - exit 1 - else - CFG_EVDEV=no - fi -fi -if [ "$CFG_EVDEV" = "no" ]; then - QMakeVar add DEFINES QT_NO_EVDEV -fi - -if [ "$CFG_TSLIB" != "no" ]; then - if compileTest unix/tslib "tslib"; then - CFG_TSLIB=yes - QT_CONFIG="$QT_CONFIG tslib" - elif [ "$CFG_TSLIB" = "yes" ]; then - echo "The tslib functionality test failed!" - exit 1 - else - CFG_TSLIB=no - fi -fi -if [ "$CFG_TSLIB" = "no" ]; then - QMakeVar add DEFINES QT_NO_TSLIB -fi - -if [ "$CFG_XKBCOMMON_EVDEV" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xkbcommon 2>/dev/null; then - QMAKE_INCDIR_XKBCOMMON_EVDEV=`$PKG_CONFIG --cflags-only-I xkbcommon 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` - QMAKE_LIBS_XKBCOMMON_EVDEV=`$PKG_CONFIG --libs xkbcommon 2>/dev/null` - QMAKE_CFLAGS_XKBCOMMON_EVDEV=`$PKG_CONFIG --cflags xkbcommon 2>/dev/null` - QMakeVar set QMAKE_INCDIR_XKBCOMMON_EVDEV "$QMAKE_INCDIR_XKBCOMMON_EVDEV" - QMakeVar set QMAKE_LIBS_XKBCOMMON_EVDEV "$QMAKE_LIBS_XKBCOMMON_EVDEV" - fi - if compileTest unix/xkbcommon "xkbcommon" $QMAKE_CFLAGS_XKBCOMMON_EVDEV $QMAKE_LIBS_XKBCOMMON_EVDEV; then - CFG_XKBCOMMON_EVDEV=yes - QT_CONFIG="$QT_CONFIG xkbcommon-evdev" - elif [ "$CFG_XKBCOMMON_EVDEV" = "yes" ]; then - echo "The xkbcommon-evdev functionality test failed!" - exit 1 - else - CFG_XKBCOMMON_EVDEV=no - fi -fi - -if [ "$CFG_LIBINPUT" != "no" ] && [ "$CFG_LIBUDEV" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists libinput 2>/dev/null; then - QMAKE_INCDIR_LIBINPUT=`$PKG_CONFIG --cflags-only-I libinput 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` - QMAKE_LIBS_LIBINPUT=`$PKG_CONFIG --libs libinput 2>/dev/null` - QMAKE_CFLAGS_LIBINPUT=`$PKG_CONFIG --cflags libinput 2>/dev/null` - QMAKE_LIBINPUT_VERSION_MAJOR=`$PKG_CONFIG --modversion libinput 2>/dev/null | cut -d . -f 1` - QMAKE_LIBINPUT_VERSION_MINOR=`$PKG_CONFIG --modversion libinput 2>/dev/null | cut -d . -f 2` - QMakeVar set QMAKE_LIBINPUT_VERSION_MAJOR "$QMAKE_LIBINPUT_VERSION_MAJOR" - QMakeVar set QMAKE_LIBINPUT_VERSION_MINOR "$QMAKE_LIBINPUT_VERSION_MINOR" - QMakeVar set QMAKE_INCDIR_LIBINPUT "$QMAKE_INCDIR_LIBINPUT" - QMakeVar set QMAKE_LIBS_LIBINPUT "$QMAKE_LIBS_LIBINPUT" - fi - if compileTest unix/libinput "libinput" $QMAKE_CFLAGS_LIBINPUT $QMAKE_LIBS_LIBINPUT; then - CFG_LIBINPUT=yes - QT_CONFIG="$QT_CONFIG libinput" - elif [ "$CFG_LIBINPUT" = "yes" ]; then - echo "The libinput functionality test failed!" - exit 1 - else - CFG_LIBINPUT=no - fi -else - CFG_LIBINPUT=no -fi -if [ "$CFG_LIBINPUT" = "no" ]; then - QMakeVar add DEFINES QT_NO_LIBINPUT -fi - -# Check we actually have X11 :-) -if compileTest x11/xlib "XLib"; then - QT_CONFIG="$QT_CONFIG xlib" -fi - -# auto-detect Xrender support -if [ "$CFG_XRENDER" != "no" ]; then - if compileTest x11/xrender "Xrender"; then - CFG_XRENDER=yes - QT_CONFIG="$QT_CONFIG xrender" - else - if [ "$CFG_XRENDER" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "Xrender 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_XRENDER=no - fi - fi -fi - -# auto-detect XInput2 support -if [ "$CFG_XINPUT2" != "no" ]; then - if compileTest x11/xinput2 "XInput2"; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists xi 2>/dev/null; then - QMAKE_LIBXI_VERSION_MAJOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 1` - QMAKE_LIBXI_VERSION_MINOR=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 2` - QMAKE_LIBXI_VERSION_PATCH=`$PKG_CONFIG --modversion xi 2>/dev/null | cut -d . -f 3` - QMakeVar set QMAKE_LIBXI_VERSION_MAJOR "$QMAKE_LIBXI_VERSION_MAJOR" - QMakeVar set QMAKE_LIBXI_VERSION_MINOR "$QMAKE_LIBXI_VERSION_MINOR" - QMakeVar set QMAKE_LIBXI_VERSION_PATCH "$QMAKE_LIBXI_VERSION_PATCH" - fi - CFG_XINPUT2=yes - else - if [ "$CFG_XINPUT2" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "XInput2 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_XINPUT2=no - fi - fi -fi - -if [ "$CFG_XCB" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then - QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags xcb 2>/dev/null`" - QMAKE_LIBS_XCB="`$PKG_CONFIG --libs xcb 2>/dev/null`" - fi - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "x11" 2> /dev/null; then - QMAKE_X11_PREFIX="`$PKG_CONFIG --variable=prefix x11`" - else - # default to LSB prefix - QMAKE_X11_PREFIX="/usr" - fi - QMakeVar set QMAKE_X11_PREFIX "$QMAKE_X11_PREFIX" - - if [ "$CFG_XKBCOMMON" != no ] && compileTest qpa/xcb "xcb" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - QT_CONFIG="$QT_CONFIG xcb-plugin" - - if [ "$CFG_XCB" = "qt" ]; then - QT_CONFIG="$QT_CONFIG xcb-qt" - - if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - CFG_XCB_GLX=yes - QT_CONFIG="$QT_CONFIG xcb-glx" - fi - else - CFG_XCB="system" - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xcb >= 1.5" 2>/dev/null; then - XCB_PACKAGES="xcb xcb-shm xcb-sync xcb-xfixes xcb-randr xcb-image xcb-keysyms xcb-icccm xcb-shape" - QMAKE_CFLAGS_XCB="`$PKG_CONFIG --cflags $XCB_PACKAGES 2>/dev/null`" - QMAKE_LIBS_XCB="`$PKG_CONFIG --libs $XCB_PACKAGES 2>/dev/null`" - fi - - # libxcb version 1.10 was the first version that enables xcb-xkb by default, - # therefore the minimal xcb-xkb version we support is 1.10 - CFG_XKB=no - if $PKG_CONFIG --exists "xcb-xkb >= 1.10" 2>/dev/null; then - QMAKE_CFLAGS_XKB="`$PKG_CONFIG --cflags xcb xcb-xkb 2>/dev/null`" - QMAKE_LIBS_XKB="`$PKG_CONFIG --libs xcb xcb-xkb 2>/dev/null`" - if compileTest qpa/xcb-xkb "xcb-xkb" $QMAKE_CFLAGS_XKB $QMAKE_LIBS_XKB; then - CFG_XKB=yes - fi - fi - if [ "$CFG_XKB" = "no" ]; then - QMakeVar add DEFINES QT_NO_XKB - fi - - if compileTest qpa/xcb-syslibs "xcb-syslibs" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - if compileTest qpa/xcb-render "xcb-render" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - QT_CONFIG="$QT_CONFIG xcb-render" - fi - - if compileTest qpa/xcb-glx "xcb-glx" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - CFG_XCB_GLX=yes - QT_CONFIG="$QT_CONFIG xcb-glx" - fi - else - echo "The test for linking against libxcb and support libraries failed!" - echo " You might need to install dependency packages, or pass -qt-xcb." - echo " See src/plugins/platforms/xcb/README." - exit 1 - fi - fi - - if [ "$CFG_XCB_XLIB" != "no" ]; then - if compileTest qpa/xcb-xlib "xcb-xlib" $QMAKE_CFLAGS_XCB $QMAKE_LIBS_XCB; then - QT_CONFIG="$QT_CONFIG xcb-xlib" - CFG_XCB_XLIB=yes - else - CFG_XCB_XLIB=no - fi - fi - - if [ "$CFG_SM" != "no" ] && [ -n "$PKG_CONFIG" ]; then - if $PKG_CONFIG --exists "sm" 2>/dev/null && $PKG_CONFIG --exists "ice" 2>/dev/null; then - QT_CONFIG="$QT_CONFIG xcb-sm" - fi - fi - else - if [ "$CFG_XCB" != "auto" ]; then - echo "The test for linking against libxcb failed!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?" - echo " You might need to install dependency packages for libxcb." - echo " See src/plugins/platforms/xcb/README." - exit 1 - fi - CFG_XCB=no - fi -fi - -if [ "$CFG_DIRECTFB" != "no" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists directfb 2>/dev/null; then - QMAKE_CFLAGS_DIRECTFB=`$PKG_CONFIG --cflags directfb 2>/dev/null` - QMAKE_LIBS_DIRECTFB=`$PKG_CONFIG --libs directfb 2>/dev/null` - if compileTest qpa/directfb "DirectFB" $QMAKE_CFLAGS_DIRECTFB $QMAKE_LIBS_DIRECTFB; then - CFG_DIRECTFB=yes - elif [ "$CFG_DIRECTFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo " DirectFB support cannot be enabled due to functionality tests!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - CFG_DIRECTFB=no - fi - else - CFG_DIRECTFB=no - fi -fi - -if [ "$CFG_GBM" != "no" ]; then - if compileTest qpa/gbm "GBM"; then - CFG_GBM=yes - elif [ "$CFG_GBM" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo " GBM 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_GBM=no - fi -fi - -if [ "$CFG_LINUXFB" != "no" ]; then - if compileTest qpa/linuxfb "LinuxFB"; then - CFG_LINUXFB=yes - elif [ "$CFG_LINUXFB" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo " Linux Framebuffer 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_LINUXFB=no - fi -fi - -if [ "$CFG_KMS" != "no" ]; then - if compileTest qpa/kms "KMS"; then - CFG_KMS=yes - elif [ "$CFG_KMS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo " KMS 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_KMS=no - fi -fi - -if [ "$CFG_MIRCLIENT" != "no" ]; then - if compileTest qpa/mirclient "Mir client"; then - CFG_MIRCLIENT=yes - elif [ "$CFG_MIRCLIENT" = "yes" ]; then - echo " Mir client 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_MIRCLIENT=no - fi -fi - -# Detect libxkbcommon -MIN_REQ_XKBCOMMON="0.4.1" -# currently only xcb platform plugin supports building xkbcommon -if [ "$CFG_XCB" != "no" ]; 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`" - - 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!" - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -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 - fi - fi - if [ "$CFG_XKBCOMMON" = "qt" ]; then - QT_CONFIG="$QT_CONFIG xkbcommon-qt" - # detect XKB config root - if [ "$CFG_XKB_CONFIG_ROOT" = "auto" ]; then - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists "xkeyboard-config" 2> /dev/null; then - CFG_XKB_CONFIG_ROOT="`$PKG_CONFIG --variable=xkb_base xkeyboard-config`" - else - # search for xkb configs in most probable locations - if [ -d "/usr/share/X11/xkb" ]; then - # Linux - CFG_XKB_CONFIG_ROOT="/usr/share/X11/xkb" - elif [ -d "/usr/local/share/X11/xkb" ]; then - # BSD UNIX - CFG_XKB_CONFIG_ROOT="/usr/local/share/X11/xkb" - fi - fi - fi - QMakeVar set QMAKE_XKB_CONFIG_ROOT "$CFG_XKB_CONFIG_ROOT" - if [ "$CFG_XKB_CONFIG_ROOT" = "auto" ]; then - CFG_XKB_CONFIG_ROOT="not found" - fi - fi -else - CFG_XKBCOMMON=no -fi - -# EGL Support -if [ "$CFG_EGL" != "no" ]; then - if [ "$CFG_EGL" = "yes" ] && [ "$CFG_OPENGL" = "no" ]; then - echo "EGL support was requested but OpenGL support is disabled." - echo "Either disable EGL support or enable OpenGL support." - exit 101 - fi - - if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG --exists egl 2>/dev/null; then - QMAKE_INCDIR_EGL=`$PKG_CONFIG --cflags-only-I egl 2>/dev/null | sed -e 's,^-I,,g' -e 's, -I, ,g'` - QMAKE_LIBS_EGL=`$PKG_CONFIG --libs egl 2>/dev/null` - QMAKE_CFLAGS_EGL=`$PKG_CONFIG --cflags egl 2>/dev/null` - QMakeVar set QMAKE_INCDIR_EGL "$QMAKE_INCDIR_EGL" - QMakeVar set QMAKE_LIBS_EGL "$QMAKE_LIBS_EGL" - QMakeVar set QMAKE_CFLAGS_EGL "`echo " $QMAKE_CFLAGS_EGL " | sed -e 's, -I[^ ]* , ,g;s,^ ,,;s, $,,'`" - fi # detect EGL support - if compileTest qpa/egl "EGL" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then - CFG_EGL=yes - if compileTest qpa/egl-x11 "EGL-X11" $QMAKE_CFLAGS_EGL $QMAKE_LIBS_EGL; then - CFG_EGL_X=yes - else - CFG_EGL_X=no - fi - elif [ "$CFG_EGL" = "yes" ]; then - echo " The EGL functionality test failed; EGL is required by some QPA plugins to manage contexts & surfaces." - [ -z "$PKG_CONFIG" ] && echo " Use of pkg-config is not enabled, maybe you want to pass -pkg-config?" - echo " You might need to modify the include and library search paths by editing" - echo " QMAKE_INCDIR_EGL, QMAKE_LIBDIR_EGL and QMAKE_LIBS_EGL in ${XQMAKESPEC}." - exit 1 - else - CFG_EGL=no - CFG_EGL_X=no - fi -fi - -if [ "$CFG_EGLFS" != "no" ]; then - if [ "$XPLATFORM_QNX" = "no" ] && [ "$CFG_OPENGL" != "no" ]; then - CFG_EGLFS="$CFG_EGL" - # Detect eglfs backends. - if compileTest qpa/eglfs-brcm "eglfs-brcm"; then - CFG_EGLFS_BRCM=yes - else - CFG_EGLFS_BRCM=no - fi - if compileTest qpa/eglfs-egldevice "eglfs-egldevice"; then - CFG_EGLFS_EGLDEVICE=yes - else - CFG_EGLFS_EGLDEVICE=no - fi - if compileTest qpa/eglfs-mali "eglfs-mali" \ - || compileTest qpa/eglfs-mali-2 "eglfs-mali-2"; then - CFG_EGLFS_MALI=yes - else - CFG_EGLFS_MALI=no - fi - if compileTest qpa/eglfs-viv "eglfs-viv"; then - CFG_EGLFS_VIV=yes - else - CFG_EGLFS_VIV=no - fi - if [ "$CFG_EGLFS_VIV" = "yes" ] && compileTest qpa/wayland-server "wayland-server"; then - CFG_EGLFS_VIV_WL=yes - else - CFG_EGLFS_VIV_WL=no - fi - else - CFG_EGLFS="no" - fi -fi - -# Detect accessibility support -if [ "$CFG_ACCESSIBILITY" = "no" ]; then - echo >&2 "Warning: Disabling Accessibility. This version of Qt is unsupported." -else - CFG_ACCESSIBILITY=yes - - # linux/xcb accessibility bridge needs dbus - if [ "$CFG_XCB" != "no" ]; then - if [ "$CFG_DBUS" != "no" ]; then - CFG_ACCESSIBILITY_ATSPI_BRIDGE=yes - QT_CONFIG="$QT_CONFIG accessibility-atspi-bridge" - else - echo >&2 "Warning: Disabling Linux Accessibility Bridge: DBus is missing." - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY_ATSPI_BRIDGE" - fi - fi -fi - -# Determine the default QPA platform -if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then - # check the mkspec - QT_QPA_DEFAULT_PLATFORM=`getXQMakeConf QT_QPA_DEFAULT_PLATFORM` - if [ -z "$QT_QPA_DEFAULT_PLATFORM" ]; then - if [ "$XPLATFORM_MINGW" = "yes" ]; then - QT_QPA_DEFAULT_PLATFORM="windows" - elif [ "$XPLATFORM_MAC" = "yes" ]; then - QT_QPA_DEFAULT_PLATFORM="cocoa" - elif [ "$UNAME_SYSTEM" = "QNX" ]; then - QT_QPA_DEFAULT_PLATFORM="qnx" - elif [ "$XPLATFORM_INTEGRITY" = "yes" ]; then - QT_QPA_DEFAULT_PLATFORM="integrityfb" - else - QT_QPA_DEFAULT_PLATFORM="xcb" - fi - fi -fi - -if [ -n "$QMAKE_CFLAGS_XCB" ] || [ -n "$QMAKE_LIBS_XCB" ]; then - QMakeVar set QMAKE_CFLAGS_XCB "$QMAKE_CFLAGS_XCB" - QMakeVar set QMAKE_LIBS_XCB "$QMAKE_LIBS_XCB" -fi - -if [ "$CFG_DIRECTFB" = "yes" ]; then - QT_CONFIG="$QT_CONFIG directfb" - QMakeVar set QMAKE_CFLAGS_DIRECTFB "$QMAKE_CFLAGS_DIRECTFB" - QMakeVar set QMAKE_LIBS_DIRECTFB "$QMAKE_LIBS_DIRECTFB" -fi -if [ "$CFG_GBM" = "yes" ]; then - QT_CONFIG="$QT_CONFIG gbm" -fi -if [ "$CFG_LINUXFB" = "yes" ]; then - QT_CONFIG="$QT_CONFIG linuxfb" -fi -if [ "$CFG_INTEGRITYFB" = "yes" ]; then - QT_CONFIG="$QT_CONFIG integrityfb" -fi -if [ "$CFG_KMS" = "yes" ]; then - QT_CONFIG="$QT_CONFIG kms" -fi -if [ "$CFG_MIRCLIENT" = "yes" ]; then - QT_CONFIG="$QT_CONFIG mirclient" -fi - -if [ "$XPLATFORM_MAC" = "no" ] && [ "$XPLATFORM_MINGW" = "no" ] && [ "$XPLATFORM_QNX" = "no" ] && [ "$XPLATFORM_ANDROID" = "no" ] && [ "$XPLATFORM_HAIKU" = "no" ] && [ "$XPLATFORM_INTEGRITY" = "no" ]; then - if [ "$CFG_XCB" = "no" ] && [ "$CFG_EGLFS" = "no" ] && [ "$CFG_DIRECTFB" = "no" ] && [ "$CFG_LINUXFB" = "no" ] && [ "$CFG_MIRCLIENT" = "no" ]; then - if [ "$QPA_PLATFORM_GUARD" = "yes" ] && - ( [ "$ORIG_CFG_XCB" = "auto" ] || [ "$ORIG_CFG_EGLFS" = "auto" ] || [ "$ORIG_CFG_DIRECTFB" = "auto" ] || [ "$ORIG_CFG_LINUXFB" = "auto" ] || [ "$ORIG_CFG_MIRCLIENT" = "auto" ] ); then - echo "No QPA platform plugin enabled!" - echo " If you really want to build without a QPA platform plugin you must pass" - echo " -no-qpa-platform-guard to configure. Doing this will" - echo " produce a Qt that can not run GUI applications." - echo " The dependencies needed for xcb to build are listed in" - echo " src/plugins/platforms/xcb/README" - exit 1 - fi -fi - fi - -# double-conversion support -if [ "$CFG_DOUBLECONVERSION" = "no" ]; then - if ! compileTest common/xlocalescanprint "XLocaleScanPrint"; then - echo "Your C library does not provide sscanf_l or snprintf_l." - echo "You need to use libdouble-conversion for double/string conversion." - exit 1 - fi -elif [ "$CFG_DOUBLECONVERSION" != "qt" ]; then - if compileTest unix/doubleconversion "DoubleConversion"; then - CFG_DOUBLECONVERSION=system - elif [ "$CFG_DOUBLECONVERSION" = "system" ]; then - echo "No system libdouble-conversion found." - exit 1 - else - CFG_DOUBLECONVERSION=qt - fi -fi - -# freetype support -[ "$XPLATFORM_MINGW" = "yes" ] && [ "$CFG_FREETYPE" = "auto" ] && CFG_FREETYPE=no -if [ "$CFG_FREETYPE" = "auto" ]; then - if compileTest unix/freetype "FreeType"; then - CFG_FREETYPE=system - else - CFG_FREETYPE=yes - fi -fi - -# harfbuzz support -[ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_HARFBUZZ" = "auto" ] && CFG_HARFBUZZ=qt -if [ "$CFG_HARFBUZZ" = "auto" ] || [ "$CFG_HARFBUZZ" = "system" ]; then - if compileTest unix/harfbuzz "HarfBuzz"; then - CFG_HARFBUZZ=system - else - if [ "$CFG_HARFBUZZ" = "system" ] && [ "$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" != "qt" ]; then - echo - echo "WARNING: On OS X, AAT is supported only with -qt-harfbuzz." - echo -fi - -if ! compileTest unix/stl "STL" && - [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "STL functionality check failed! Cannot build Qt with this STL library." - echo " Turn on verbose messaging (-v) to $0 to see the final report." - exit 101 -fi - - -# detect POSIX clock_gettime() -if [ "$CFG_CLOCK_GETTIME" = "auto" ]; then - if compileTest unix/clock-gettime "POSIX clock_gettime()"; then - CFG_CLOCK_GETTIME=yes - else - CFG_CLOCK_GETTIME=no - fi -fi - -# detect POSIX monotonic clocks -if [ "$CFG_CLOCK_GETTIME" = "yes" ] && [ "$CFG_CLOCK_MONOTONIC" = "auto" ]; then - if compileTest unix/clock-monotonic "POSIX Monotonic Clock"; then - CFG_CLOCK_MONOTONIC=yes - else - CFG_CLOCK_MONOTONIC=no - fi -elif [ "$CFG_CLOCK_GETTIME" = "no" ]; then - CFG_CLOCK_MONOTONIC=no -fi - -# detect posix_fallocate -if [ "$CFG_POSIX_FALLOCATE" = "auto" ]; then - if compileTest unix/posix_fallocate "posix_fallocate"; then - CFG_POSIX_FALLOCATE=yes - else - CFG_POSIX_FALLOCATE=no - fi -fi - -# detect mremap -if [ "$CFG_MREMAP" = "auto" ]; then - if compileTest unix/mremap "mremap"; then - CFG_MREMAP=yes - else - CFG_MREMAP=no - fi -fi - -# find if the platform provides getaddrinfo (ipv6 dns lookups) -if [ "$CFG_GETADDRINFO" != "no" ]; then - if compileTest unix/getaddrinfo "getaddrinfo"; then - CFG_GETADDRINFO=yes - else - if [ "$CFG_GETADDRINFO" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "getaddrinfo 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_GETADDRINFO=no - fi - fi -fi - -# find if the platform provides inotify -if [ "$CFG_INOTIFY" != "no" ]; then - if compileTest unix/inotify "inotify"; then - CFG_INOTIFY=yes - else - if [ "$CFG_INOTIFY" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "inotify 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_INOTIFY=no - fi - fi -fi - -# find if the platform provides eventfd -if [ "$CFG_EVENTFD" != "no" ]; then - if compileTest unix/eventfd "eventfd"; then - CFG_EVENTFD=yes - else - if [ "$CFG_EVENTFD" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "eventfd 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_EVENTFD=no - fi - fi -fi - -# find if the platform provides if_nametoindex (ipv6 interface name support) -if [ "$CFG_IPV6IFNAME" != "no" ]; then - if compileTest unix/ipv6ifname "IPv6 interface name"; then - CFG_IPV6IFNAME=yes - else - if [ "$CFG_IPV6IFNAME" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "IPv6 interface name 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_IPV6IFNAME=no - fi - fi -fi - -# find if the platform provides getifaddrs (network interface enumeration) -if [ "$CFG_GETIFADDRS" != "no" ]; then - if compileTest unix/getifaddrs "getifaddrs"; then - CFG_GETIFADDRS=yes - else - if [ "$CFG_GETIFADDRS" = "yes" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "getifaddrs 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_GETIFADDRS=no - fi - fi -fi - -# find if the platform provides thread-safe CLOEXEC support -if compileTest unix/cloexec "cloexec"; then - CFG_CLOEXEC=yes -fi - -if compileTest unix/ppoll "ppoll"; then - CFG_POLL="ppoll" -elif compileTest unix/pollts "pollts"; then - CFG_POLL="pollts" -elif compileTest unix/poll "poll"; then - CFG_POLL="poll" -else - CFG_POLL="select" -fi - -if [ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_SECURETRANSPORT" != "no" ] && ([ "$CFG_OPENSSL" = "no" ] || [ "$CFG_OPENSSL" = "auto" ]); then - CFG_SECURETRANSPORT=yes - CFG_OPENSSL=no -else - CFG_SECURETRANSPORT=no -fi - -# detect OpenSSL -if [ "$CFG_OPENSSL" != "no" ]; then - if compileTest unix/openssl "OpenSSL"; then - if [ "$CFG_OPENSSL" = "auto" ]; then - CFG_OPENSSL=yes - fi - else - if ( [ "$CFG_OPENSSL" = "yes" ] || [ "$CFG_OPENSSL" = "linked" ] ) && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "OpenSSL 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_OPENSSL=no - fi - fi -fi - - -# detect PCRE -if [ "$CFG_PCRE" != "qt" ]; then - if compileTest unix/pcre "PCRE"; then - CFG_PCRE=system - else - if [ "$CFG_PCRE" = "system" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "PCRE 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_PCRE=qt - fi - fi -fi - -# detect OpenVG support -if [ "$CFG_OPENVG" != "no" ]; then - if compileTest unix/openvg "OpenVG"; then - if [ "$CFG_OPENVG" = "auto" ]; then - CFG_OPENVG=yes - fi - elif compileTest unix/openvg "OpenVG" -config openvg_on_opengl; then - if [ "$CFG_OPENVG" = "auto" ]; then - CFG_OPENVG=yes - fi - CFG_OPENVG_ON_OPENGL=yes - elif compileTest unix/openvg "OpenVG (lc includes)" -config lower_case_includes; then - if [ "$CFG_OPENVG" = "auto" ]; then - CFG_OPENVG=yes - fi - CFG_OPENVG_LC_INCLUDES=yes - elif compileTest unix/openvg "OpenVG (lc includes)" -config "openvg_on_opengl lower_case_includes"; then - if [ "$CFG_OPENVG" = "auto" ]; then - CFG_OPENVG=yes - fi - CFG_OPENVG_LC_INCLUDES=yes - CFG_OPENVG_ON_OPENGL=yes - else - if [ "$CFG_OPENVG" != "auto" ] && [ "$CFG_CONFIGURE_EXIT_ON_ERROR" = "yes" ]; then - echo "$CFG_OPENVG was specified for OpenVG but 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_OPENVG=no - fi - fi - if [ "$CFG_OPENVG" = "yes" ] && compileTest unix/shivavg "ShivaVG"; then - CFG_OPENVG_SHIVA=yes - fi -fi - -if [ "$CFG_ALSA" = "auto" ]; then - if compileTest unix/alsa "alsa"; then - CFG_ALSA=yes - else - CFG_ALSA=no - fi -fi - -if [ "$CFG_AUDIO_BACKEND" = "auto" ]; then - CFG_AUDIO_BACKEND=yes -fi - -# detect GStreamer support -if [ "$CFG_GSTREAMER" = "auto" ] || [ "$CFG_GSTREAMER" = "yes" ]; then - if compileTest unix/gstreamer "GStreamer 1.0" -config gst-1.0; then - CFG_GSTREAMER=yes - CFG_GSTREAMER_VERSION=1.0 - elif compileTest unix/gstreamer "GStreamer 0.10" -config gst-0.10; then - CFG_GSTREAMER=yes - CFG_GSTREAMER_VERSION=0.10 - else - if [ "$CFG_GSTREAMER" = "yes" ]; then - echo "GStreamer support cannot be enabled due to functionality tests!" - echo " Turn on verbose messaging (-v) to $0 to see the final report." - exit 1 - fi - CFG_GSTREAMER=no - fi -elif [ "$CFG_GSTREAMER" = "0.10" ]; then - if compileTest unix/gstreamer "GStreamer 0.10" -config gst-0.10; then - CFG_GSTREAMER=yes - CFG_GSTREAMER_VERSION=0.10 - else - echo "The GStreamer 0.10 functionality test failed!" - echo " Turn on verbose messaging (-v) to $0 to see the final report." - exit 1 - fi -elif [ "$CFG_GSTREAMER" = "1.0" ]; then - if compileTest unix/gstreamer "GStreamer 1.0" -config gst-1.0; then - CFG_GSTREAMER=yes - CFG_GSTREAMER_VERSION=1.0 - else - echo "The GStreamer 1.0 functionality test failed!" - echo " Turn on verbose messaging (-v) to $0 to see the final report." - exit 1 - fi -fi - -if [ "$CFG_LARGEFILE" != "yes" ] && [ "$XPLATFORM_MINGW" = "yes" ]; then - echo "Warning: largefile support cannot be disabled for win32." - CFG_LARGEFILE="yes" -fi - -# Detect DirectWrite 2 support on Windows -if [ "$CFG_DIRECTWRITE" = "no" ]; then - CFG_DIRECTWRITE2=no -fi -if [ "$CFG_DIRECTWRITE2" = "auto" ]; then - if compileTest win/directwrite2 "directwrite2"; then - CFG_DIRECTWRITE2=yes - else - CFG_DIRECTWRITE2=no - fi -fi - -#------------------------------------------------------------------------------- -# ask for all that hasn't been auto-detected or specified in the arguments -#------------------------------------------------------------------------------- - -# Set "c++11" unconditionally, as lots of code does contains(QT_CONFIG, c++11) -QT_CONFIG="$QT_CONFIG c++11" -if [ "$CFG_STDCXX" != "c++11" ]; then - QT_CONFIG="$QT_CONFIG c++14" - if [ "$CFG_STDCXX" != "c++14" ]; then - QT_CONFIG="$QT_CONFIG c++1z" - fi -fi - -if [ "$CFG_ATOMIC64" = "libatomic" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG atomic64-libatomic" -fi - -if [ "$CFG_SILENT" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG silent" -fi - -# disable accessibility -if [ "$CFG_ACCESSIBILITY" = "no" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ACCESSIBILITY" -else - QT_CONFIG="$QT_CONFIG accessibility" -fi - -# enable egl -if [ "$CFG_EGL" = "yes" ]; then - QT_CONFIG="$QT_CONFIG egl" -else - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL" -fi - -# enable egl on X -if [ "$CFG_EGL_X" = "yes" ]; then - QT_CONFIG="$QT_CONFIG egl_x11" -else - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGL_X11" -fi - -# enable eglfs -if [ "$CFG_EGLFS" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs" -else - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EGLFS" -fi -# eglfs backends -if [ "$CFG_EGLFS_BRCM" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_brcm" -fi -if [ "$CFG_EGLFS_EGLDEVICE" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_egldevice" -fi -if [ "$CFG_EGLFS" = "yes" ] && [ "$CFG_KMS" = "yes" ] && [ "$CFG_GBM" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_gbm" - CFG_EGLFS_GBM="yes" -else - CFG_EGLFS_GBM="no" -fi -if [ "$CFG_EGLFS_MALI" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_mali" -fi -if [ "$CFG_EGLFS_VIV" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_viv" - if [ "$CFG_EGLFS_VIV_WL" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eglfs_viv_wl" - fi -fi - -# enable openvg -if [ "$CFG_OPENVG" = "no" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENVG" -else - QT_CONFIG="$QT_CONFIG openvg" - if [ "$CFG_OPENVG_LC_INCLUDES" = "yes" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LOWER_CASE_VG_INCLUDES" - fi - if [ "$CFG_OPENVG_ON_OPENGL" = "yes" ]; then - QT_CONFIG="$QT_CONFIG openvg_on_opengl" - fi - if [ "$CFG_OPENVG_SHIVA" = "yes" ]; then - QT_CONFIG="$QT_CONFIG shivavg" - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SHIVAVG" - fi -fi - -# enable opengl -if [ "$CFG_OPENGL" = "no" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENGL" -else - QT_CONFIG="$QT_CONFIG opengl" -fi - -if [ "$CFG_OPENGL" = "es2" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_OPENGL_ES QT_OPENGL_ES_2" - QT_CONFIG="$QT_CONFIG opengles2" -fi - -if [ "$CFG_SHARED" = "yes" ]; then - QT_CONFIG="$QT_CONFIG shared" - QTCONFIG_CONFIG="$QTCONFIG_CONFIG shared" -elif [ "$CFG_SHARED" = "no" ]; then - QT_CONFIG="$QT_CONFIG static" - QTCONFIG_CONFIG="$QTCONFIG_CONFIG static" -fi - -#FIXME: qpa is implicit this should all be removed -QMAKE_CONFIG="$QMAKE_CONFIG qpa" -QT_CONFIG="$QT_CONFIG qpa" -QTCONFIG_CONFIG="$QTCONFIG_CONFIG qpa" - -if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG largefile" -fi -if [ "$CFG_USE_GNUMAKE" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG GNUmake" -fi -[ "$CFG_REDUCE_EXPORTS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_exports" -[ "$CFG_STACK_PROTECTOR_STRONG" = "yes" ] && QT_CONFIG="$QT_CONFIG stack-protector-strong" -[ "$CFG_REDUCE_RELOCATIONS" = "yes" ] && QT_CONFIG="$QT_CONFIG reduce_relocations" -[ "$CFG_STRIP" = "no" ] && QMAKE_CONFIG="$QMAKE_CONFIG nostrip" -if testXConfig precompile_header; then - [ "$CFG_PRECOMPILE" = "no" ] && QMakeVar del CONFIG precompile_header -else - [ "$CFG_PRECOMPILE" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG precompile_header" -fi -[ "$CFG_USE_GOLD_LINKER" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG use_gold_linker" -[ "$CFG_ENABLE_NEW_DTAGS" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG enable_new_dtags" -if [ "$CFG_SEPARATE_DEBUG_INFO" = "yes" ]; then - QT_CONFIG="$QT_CONFIG separate_debug_info" -fi -[ "$CFG_SSE2" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse2" -[ "$CFG_SSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse3" -[ "$CFG_SSSE3" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG ssse3" -[ "$CFG_SSE4_1" = "yes" ] && QMAKE_CONFIG="$QMAKE_CONFIG sse4_1" -[ "$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" -for feature in $CFG_AVX512; do - QMAKE_CONFIG="$QMAKE_CONFIG avx512$feature" -done -[ "$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" -fi -if [ "$CFG_CLOCK_GETTIME" = "yes" ]; then - QT_CONFIG="$QT_CONFIG clock-gettime" -fi -if [ "$CFG_CLOCK_MONOTONIC" = "yes" ]; then - QT_CONFIG="$QT_CONFIG clock-monotonic" -fi -if [ "$CFG_POSIX_FALLOCATE" = "yes" ]; then - QT_CONFIG="$QT_CONFIG posix_fallocate" -fi -if [ "$CFG_MREMAP" = "yes" ]; then - QT_CONFIG="$QT_CONFIG mremap" -fi -if [ "$CFG_GETADDRINFO" = "yes" ]; then - QT_CONFIG="$QT_CONFIG getaddrinfo" -fi -if [ "$CFG_IPV6IFNAME" = "yes" ]; then - QT_CONFIG="$QT_CONFIG ipv6ifname" -fi -if [ "$CFG_GETIFADDRS" = "yes" ]; then - QT_CONFIG="$QT_CONFIG getifaddrs" -fi -if [ "$CFG_INOTIFY" = "yes" ]; then - QT_CONFIG="$QT_CONFIG inotify" -fi -if [ "$CFG_EVENTFD" = "yes" ]; then - QT_CONFIG="$QT_CONFIG eventfd" -fi -if [ "$CFG_CLOEXEC" = "yes" ]; then - QT_CONFIG="$QT_CONFIG threadsafe-cloexec" -fi -if [ "$CFG_POLL" = "select" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_NATIVE_POLL" -fi -QT_CONFIG="$QT_CONFIG poll_$CFG_POLL" -if [ "$CFG_LIBJPEG" = "no" ]; then - CFG_JPEG="no" -elif [ "$CFG_LIBJPEG" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-jpeg" -fi -if [ "$CFG_JPEG" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-jpeg" -elif [ "$CFG_JPEG" = "yes" ]; then - QT_CONFIG="$QT_CONFIG jpeg" -fi -if [ "$CFG_LIBPNG" = "no" ]; then - CFG_PNG="no" -fi -if [ "$CFG_LIBPNG" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-png" -fi -if [ "$CFG_PNG" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-png" -elif [ "$CFG_PNG" = "yes" ]; then - QT_CONFIG="$QT_CONFIG png" -fi -if [ "$CFG_GIF" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-gif" -elif [ "$CFG_GIF" = "yes" ]; then - QT_CONFIG="$QT_CONFIG gif" -fi -if [ "$CFG_DOUBLECONVERSION" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-doubleconversion" -elif [ "$CFG_DOUBLECONVERSION" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-doubleconversion" -else - QT_CONFIG="$QT_CONFIG doubleconversion" -fi -if [ "$CFG_FREETYPE" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-freetype" - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FREETYPE" -elif [ "$CFG_FREETYPE" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-freetype" -else - QT_CONFIG="$QT_CONFIG freetype" -fi -if [ "$CFG_HARFBUZZ" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-harfbuzz" - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_HARFBUZZ" -elif [ "$CFG_HARFBUZZ" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-harfbuzz" -else - QT_CONFIG="$QT_CONFIG harfbuzz" -fi -if [ "$CFG_GUI" = "auto" ]; then - CFG_GUI="yes" -fi -if [ "$CFG_GUI" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-gui" - CFG_WIDGETS="no" -fi -if [ "$CFG_WIDGETS" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-widgets" - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_WIDGETS" -fi - -if [ "$XPLATFORM_MAC" = "yes" ]; then - #On Mac we implicitly link against libz, so we - #never use the 3rdparty stuff. - [ "$CFG_ZLIB" = "yes" ] && CFG_ZLIB="system" -fi -if [ "$CFG_ZLIB" = "yes" ]; then - QT_CONFIG="$QT_CONFIG zlib" -elif [ "$CFG_ZLIB" = "system" ]; then - QT_CONFIG="$QT_CONFIG system-zlib" -fi - -[ "$CFG_MTDEV" = "yes" ] && QT_CONFIG="$QT_CONFIG mtdev" -[ "$CFG_CUPS" = "yes" ] && QT_CONFIG="$QT_CONFIG cups" -[ "$CFG_ICONV" = "yes" ] && QT_CONFIG="$QT_CONFIG iconv" -[ "$CFG_ICONV" = "sun" ] && QT_CONFIG="$QT_CONFIG sun-libiconv" -[ "$CFG_ICONV" = "gnu" ] && QT_CONFIG="$QT_CONFIG gnu-libiconv" -[ "$CFG_GLIB" = "yes" ] && QT_CONFIG="$QT_CONFIG glib" -[ "$CFG_DBUS" != "no" ] && QT_CONFIG="$QT_CONFIG dbus" -[ "$CFG_DBUS" = "linked" ] && QT_CONFIG="$QT_CONFIG dbus-linked" -[ "$CFG_OPENSSL" = "yes" ] && QT_CONFIG="$QT_CONFIG openssl" -[ "$CFG_OPENSSL" = "linked" ] && QT_CONFIG="$QT_CONFIG openssl-linked" -[ "$CFG_SECURETRANSPORT" = "yes" ] && QT_CONFIG="$QT_CONFIG ssl securetransport" -[ "$CFG_LIBPROXY" = "yes" ] && QT_CONFIG="$QT_CONFIG libproxy" -[ "$CFG_XCB" != "no" ] && QT_CONFIG="$QT_CONFIG xcb" -[ "$CFG_XINPUT2" = "yes" ] && QT_CONFIG="$QT_CONFIG xinput2" -[ "$CFG_SYSTEM_PROXIES" = "yes" ] && QT_CONFIG="$QT_CONFIG system-proxies" -[ "$CFG_DIRECTWRITE" = "yes" ] && QT_CONFIG="$QT_CONFIG directwrite" -[ "$CFG_DIRECTWRITE2" = "yes" ] && QT_CONFIG="$QT_CONFIG directwrite2" - -[ '!' -z "$DEFINES" ] && QMakeVar add EXTRA_DEFINES "$DEFINES" -[ '!' -z "$INCLUDES" ] && QMakeVar add EXTRA_INCLUDEPATH "$INCLUDES" -[ '!' -z "$L_FLAGS" ] && QMakeVar add EXTRA_LIBS "$L_FLAGS" - -if [ -z "`getXQMakeConf 'QMAKE_(LFLAGS_)?RPATH'`" ]; then - if [ -n "$RPATH_FLAGS" ]; then - echo - echo "ERROR: -R cannot be used on this platform as \$QMAKE_LFLAGS_RPATH is" - echo " undefined." - echo - exit 1 - elif [ "$CFG_RPATH" = "yes" ]; then - RPATH_MESSAGE=" NOTE: This platform does not support runtime library paths, using -no-rpath." - CFG_RPATH=no - fi -else - if [ -n "$RPATH_FLAGS" ]; then - # add the user defined rpaths - QMakeVar add EXTRA_RPATHS "$RPATH_FLAGS" - fi -fi -if [ "$CFG_RPATH" = "yes" ]; then - QT_CONFIG="$QT_CONFIG rpath" -fi - -if [ '!' -z "$W_FLAGS" ]; then - # add the user defined warning flags - QMakeVar add QMAKE_CFLAGS_WARN_ON "$W_FLAGS" - QMakeVar add QMAKE_CXXFLAGS_WARN_ON "$W_FLAGS" -fi - -if [ "$XPLATFORM_MINGW" = "yes" ]; then - # mkspecs/features/win32/default_pre.prf sets "no-rtti". - # Follow default behavior of configure.exe by overriding with "rtti". - QTCONFIG_CONFIG="$QTCONFIG_CONFIG rtti" -fi - -if [ "$CFG_ALSA" = "yes" ]; then - QT_CONFIG="$QT_CONFIG alsa" -fi - -if [ "$CFG_PULSEAUDIO" = "yes" ]; then - QT_CONFIG="$QT_CONFIG pulseaudio" -fi - -[ "$CFG_GSTREAMER_VERSION" = "0.10" ] && QT_CONFIG="$QT_CONFIG gstreamer-0.10" -[ "$CFG_GSTREAMER_VERSION" = "1.0" ] && QT_CONFIG="$QT_CONFIG gstreamer-1.0" - -if [ "$CFG_COREWLAN" = "yes" ]; then - QT_CONFIG="$QT_CONFIG corewlan" -fi - -if [ "$CFG_ICU" = "yes" ]; then - QT_CONFIG="$QT_CONFIG icu" -fi - -if [ "$CFG_FORCE_ASSERTS" = "yes" ]; then - QT_CONFIG="$QT_CONFIG force_asserts" -fi - -if [ "$CFG_LTCG" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG ltcg" -fi - -if [ "$CFG_SANITIZERS" != "none" ]; then - - QTCONFIG_CONFIG="$QTCONFIG_CONFIG sanitizer" - - if [ "$CFG_SANITIZE_ADDRESS" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG sanitize_address" - fi - - if [ "$CFG_SANITIZE_THREAD" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG sanitize_thread" - fi - - if [ "$CFG_SANITIZE_MEMORY" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG sanitize_memory" - fi - - if [ "$CFG_SANITIZE_UNDEFINED" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG sanitize_undefined" - fi -fi - -if [ "$CFG_PCRE" = "qt" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG pcre" -fi - -# -# Some Qt modules are too advanced in C++ for some old compilers -# Detect here the platforms where they are known to work. -# -# See Qt documentation for more information on which features are -# supported and on which compilers. -# -canBuildQtConcurrent="yes" - -case "$XPLATFORM" in - hpux-g++*) - # PA-RISC's assembly is too limited - # gcc 3.4 on that platform can't build QtXmlPatterns - # the assembly it generates cannot be compiled - - # Check gcc's version - case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in - 4*) - ;; - 3.4*) - canBuildQtXmlPatterns="no" - ;; - *) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - ;; - esac - ;; - unsupported/vxworks-*-g++*) - canBuildWebKit="no" - ;; - unsupported/vxworks-*-dcc*) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - ;; - *-g++*) - # Check gcc's version - case "$(${QMAKE_CONF_COMPILER} -dumpversion)" in - 4*|3.4*) - ;; - 3.3*) - canBuildWebKit="no" - ;; - *) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - ;; - esac - ;; - solaris-cc*) - # Check the compiler version - case `${QMAKE_CONF_COMPILER} -V 2>&1 | $AWK '{print $4}'` in - 5.[012345678]) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - canBuildQtConcurrent="no" - ;; - 5.*) - canBuildWebKit="no" - canBuildQtConcurrent="no" - ;; - esac - ;; - hpux-acc*) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - canBuildQtConcurrent="no" - ;; - hpuxi-acc*) - canBuildWebKit="no" - ;; - aix-xlc*) - # Get the xlC version - cat > xlcver.c <<EOF -#include <stdio.h> -int main() -{ - printf("%d.%d\n", __xlC__ >> 8, __xlC__ & 0xFF); - return 0; -} -EOF - xlcver= - if ${QMAKE_CONF_COMPILER} -o xlcver xlcver.c >/dev/null 2>/dev/null; then - xlcver=`./xlcver 2>/dev/null` - rm -f ./xlcver - fi - if [ "$OPT_VERBOSE" = "yes" ]; then - if [ -n "$xlcver" ]; then - echo Found IBM xlC version: $xlcver. - else - echo Could not determine IBM xlC version, assuming oldest supported. - fi - fi - - case "$xlcver" in - [123456].*) - canBuildWebKit="no" - canBuildQtXmlPatterns="no" - canBuildQtConcurrent="no" - ;; - *) - canBuildWebKit="no" - canBuildQtConcurrent="no" - ;; - esac - ;; - irix-cc*) - canBuildWebKit="no" - canBuildQtConcurrent="no" - ;; -esac - -if [ "$CFG_GUI" = "no" ]; then - # WebKit requires Qt GUI - canBuildWebKit="no" -fi - -if [ "$CFG_SHARED" = "no" ]; then - echo - echo "WARNING: Using static linking will disable the WebKit module." - echo - canBuildWebKit="no" -fi - -CFG_CONCURRENT="yes" -if [ "$canBuildQtConcurrent" = "no" ]; then - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CONCURRENT" - CFG_CONCURRENT="no" -else - QT_CONFIG="$QT_CONFIG concurrent" -fi - -# ### Vestige -if [ "$CFG_AUDIO_BACKEND" = "yes" ]; then - QT_CONFIG="$QT_CONFIG audio-backend" -fi - -# ### Vestige -if [ "$CFG_WEBKIT" = "debug" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG webkit-debug" -fi - -# ### Vestige -if [ "$CFG_QML_DEBUG" = "no" ]; then - QT_CONFIG="$QT_CONFIG no-qml-debug" -fi - -case "$QMAKE_CONF_COMPILER" in -*clang*) - # Clang - COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -v 2>&1 | sed -n -E ' -/^Apple (clang|LLVM) version /{s///; s/^([0-9]*)\.([0-9]*).*$/QT_APPLE_CLANG_MAJOR_VERSION=\1; QT_APPLE_CLANG_MINOR_VERSION=\2/;p;q;} -/^clang version /{s///; s/^([0-9]*)\.([0-9]*).*$/QT_CLANG_MAJOR_VERSION=\1; QT_CLANG_MINOR_VERSION=\2/;p;q;}'` - eval "$COMPILER_VERSION" - ;; -*icpc) - # Intel CC - COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -v 2>&1 | sed -n ' -s/icpc version \([0-9]*\)\.\([0-9]*\)\.\([0-9]*\) .*$/QT_ICC_MAJOR_VERSION=\1; QT_ICC_MINOR_VERSION=\2; QT_ICC_PATCH_VERSION=\3/p'` - eval "$COMPILER_VERSION" - ;; -*g++*) - # GNU C++ - COMPILER_VERSION=`${QMAKE_CONF_COMPILER} -dumpversion 2>/dev/null` - - case "$COMPILER_VERSION" in - *.*.*) - QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\1,'` - QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\2,'` - QT_GCC_PATCH_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*,\3,'` - ;; - *.*) - QT_GCC_MAJOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\1,'` - QT_GCC_MINOR_VERSION=`echo $COMPILER_VERSION | sed 's,^\([0-9]*\)\.\([0-9]*\).*,\2,'` - QT_GCC_PATCH_VERSION=0 - ;; - *) - QT_GCC_MAJOR_VERSION=$COMPILER_VERSION - QT_GCC_MINOR_VERSION=0 - QT_GCC_PATCH_VERSION=0 - esac - - ;; -*) - # - ;; -esac - -echo "Done running configuration tests." - -# Save stdout in fd 3 -exec 3>&1 - -#------------------------------------------------------------------------------- -# part of configuration information goes into qconfig.h -#------------------------------------------------------------------------------- - -# Open qconfig.h.new -exec > "$outpath/src/corelib/global/qconfig.h.new" - -# start with Qt's version number -cat <<EOF -#define QT_VERSION_MAJOR $QT_MAJOR_VERSION -#define QT_VERSION_MINOR $QT_MINOR_VERSION -#define QT_VERSION_PATCH $QT_PATCH_VERSION -#define QT_VERSION_STR "$QT_VERSION" +# copy some variables that are still being computed in the shell script into an input file for configure +# This should go away in the future +cat > "$outpath/config.tests/configure.cfg" <<EOF +# Feature defaults set by configure command line +config.input.extra_features = $CFG_FEATURES +config.input.qt_edition = $Edition +config.input.qt_licheck = $Licheck +config.input.qt_release_date = $ReleaseDate +config.input.sysroot = $CFG_SYSROOT EOF -case "$CFG_QCONFIG" in -full) - echo "/* Everything */" - ;; -*) - echo "#ifndef QT_BOOTSTRAPPED" - cat "$CFG_QCONFIG_PATH" - echo "#endif" - ;; -esac - -echo '/* Compile time features */' -[ '!' -z "$LicenseKeyExt" ] && echo "#define QT_PRODUCT_LICENSEKEY \"$LicenseKeyExt\"" - -if [ "$CFG_SHARED" = "no" ]; then - cat <<EOF -/* Qt was configured for a static build */ -#if !defined(QT_SHARED) && !defined(QT_STATIC) -# define QT_STATIC -#endif - -EOF -fi - -if [ "$CFG_LARGEFILE" = "yes" ] && [ "$XPLATFORM_MINGW" != "yes" ]; then - echo "#define QT_LARGEFILE_SUPPORT 64" -fi - -if [ "$CFG_QREAL" != double ]; then - echo "#define QT_COORD_TYPE $CFG_QREAL" - echo "#define QT_COORD_TYPE_STRING $CFG_QREAL_STRING" -fi - -if [ "$CFG_FRAMEWORK" = "yes" ]; then - echo "#define QT_MAC_FRAMEWORK_BUILD" -fi - -if [ "$CFG_ATOMIC64" = "no" ]; then - echo "#define QT_NO_STD_ATOMIC64" -fi - -#REDUCE_RELOCATIONS is a elf/unix only thing, so not in windows configure.exe -if [ "$CFG_REDUCE_RELOCATIONS" = "yes" ]; then - echo "#define QT_REDUCE_RELOCATIONS" -fi - -# Add compiler sub-architecture support -echo "" -echo "// Compiler sub-arch support" -for SUBARCH in SSE2 SSE3 SSSE3 SSE4_1 SSE4_2 AVX AVX2 \ - MIPS_DSP MIPS_DSPR2; do - eval "VAL=\$CFG_$SUBARCH" - case "$VAL" in - yes) - echo "#define QT_COMPILER_SUPPORTS_$SUBARCH 1" \ - - ;; - esac +# create a clean qmodule/qconfig.pri for running the tests +# .qmake.cache loads qt_build_parts which requires that qmodule.pri exists +for arg in qconfig qmodule; do + file="$outpath/mkspecs/$arg.pri" + [ ! -f "$file.old" ] && [ -f "$file" ] && mv "$file" "$file.old" + : > "$file" done -for feature in $CFG_AVX512_UPPER; do - echo "#define QT_COMPILER_SUPPORTS_$feature 1" -done - -echo "" - -if [ "$CFG_DEV" = "yes" ]; then - echo "#define QT_BUILD_INTERNAL" -fi -# Add QPA to config.h -QCONFIG_FLAGS="$QCONFIG_FLAGS" - -# Add turned on SQL drivers -for DRIVER in $CFG_SQL_AVAILABLE; do - eval "VAL=\$CFG_SQL_$DRIVER" - case "$VAL" in - qt) - ONDRIVER=`echo $DRIVER | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` - QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SQL_$ONDRIVER" - SQL_DRIVERS="$SQL_DRIVERS $DRIVER" - ;; - plugin) - SQL_PLUGINS="$SQL_PLUGINS $DRIVER" - ;; - esac +# recreate command line for qmake +set -f +SAVED_IFS=$IFS +IFS=' +' +for i in $QMAKE_CMDLINE; do + set -- "$@" "$i" done +set +f +IFS=$SAVED_IFS -QMakeVar set sql-drivers "$SQL_DRIVERS" -QMakeVar set sql-plugins "$SQL_PLUGINS" - -# Add other configuration options to the qconfig.h file -[ "$CFG_GIF" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_BUILTIN_GIF_READER=1" -[ "$CFG_PNG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_PNG" -[ "$CFG_JPEG" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IMAGEFORMAT_JPEG" -[ "$CFG_ZLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ZLIB" -[ "$CFG_DBUS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_DBUS" -[ "$CFG_LIBPROXY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_LIBPROXY" - -# X11/Unix/Mac only configs -[ "$CFG_CUPS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CUPS" -[ "$CFG_ICONV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ICONV" -[ "$CFG_EVDEV" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EVDEV" -[ "$CFG_GLIB" != "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GLIB" -[ "$CFG_CLOCK_MONOTONIC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_CLOCK_MONOTONIC" -[ "$CFG_POSIX_FALLOCATE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_POSIX_FALLOCATE" -[ "$CFG_MREMAP" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MREMAP" -[ "$CFG_GETADDRINFO" = "no" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETADDRINFO" -[ "$CFG_IPV6IFNAME" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_IPV6IFNAME" -[ "$CFG_GETIFADDRS" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_GETIFADDRS" -[ "$CFG_INOTIFY" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_INOTIFY" -[ "$CFG_EVENTFD" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_EVENTFD" -[ "$CFG_CLOEXEC" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_THREADSAFE_CLOEXEC=1" -[ "$CFG_OPENSSL" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_OPENSSL" -[ "$CFG_OPENSSL" = "linked" ]&& QCONFIG_FLAGS="$QCONFIG_FLAGS QT_LINKED_OPENSSL" -[ "$CFG_OPENSSL" = "no" ] && [ "$CFG_SECURETRANSPORT" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SSL" -[ "$CFG_SECURETRANSPORT" = "yes" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_SECURETRANSPORT" - -[ "$CFG_SM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SESSIONMANAGER" -[ "$CFG_TSLIB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_TSLIB" -[ "$CFG_XCURSOR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XCURSOR" -[ "$CFG_XFIXES" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XFIXES" -[ "$CFG_FONTCONFIG" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_FONTCONFIG" -[ "$CFG_XKB" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XKB" -[ "$CFG_XRANDR" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRANDR" -[ "$CFG_XRENDER" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XRENDER" -[ "$CFG_MITSHM" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_MITSHM" -[ "$CFG_XSHAPE" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_SHAPE" -[ "$CFG_XSYNC" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_XSYNC" - -[ "$CFG_XCURSOR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XCURSOR" -[ "$CFG_XFIXES" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XFIXES" -[ "$CFG_XRANDR" = "runtime" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_RUNTIME_XRANDR" -[ "$CFG_ALSA" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_ALSA" -[ "$CFG_PULSEAUDIO" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_PULSEAUDIO" -[ "$CFG_COREWLAN" = "no" ] && QCONFIG_FLAGS="$QCONFIG_FLAGS QT_NO_COREWLAN" - -# sort QCONFIG_FLAGS for neatness if we can -[ '!' -z "$AWK" ] && QCONFIG_FLAGS=`echo $QCONFIG_FLAGS | $AWK '{ gsub(" ", "\n"); print }' | sort | uniq` -QCONFIG_FLAGS=`echo $QCONFIG_FLAGS` - -if [ -n "$QCONFIG_FLAGS" ]; then -cat << EOF -#ifndef QT_BOOTSTRAPPED - -EOF - for cfg in $QCONFIG_FLAGS; do - cfgd=`echo $cfg | sed 's/=.*$//'` # trim pushed 'Foo=Bar' defines - cfg=`echo $cfg | sed 's/=/ /'` # turn first '=' into a space - # figure out define logic, so we can output the correct - # ifdefs to override the global defines in a project - cfgdNeg= - if [ true ] && echo "$cfgd" | grep 'QT_NO_' >/dev/null 2>&1; then - # QT_NO_option can be forcefully turned on by QT_option - cfgdNeg=`echo $cfgd | sed 's,QT_NO_,QT_,'` - elif [ true ] && echo "$cfgd" | grep 'QT_' >/dev/null 2>&1; then - # QT_option can be forcefully turned off by QT_NO_option - cfgdNeg=`echo $cfgd | sed 's,QT_,QT_NO_,'` - fi - - if [ -z $cfgdNeg ]; then -cat << EOF -#ifndef $cfgd -# define $cfg -#endif - -EOF - else -cat << EOF -#if defined($cfgd) && defined($cfgdNeg) -# undef $cfgd -#elif !defined($cfgd) && !defined($cfgdNeg) -# define $cfg -#endif - -EOF - fi - done -cat << EOF -#endif // QT_BOOTSTRAPPED - -EOF -fi - -if [ "$CFG_REDUCE_EXPORTS" = "yes" ]; then -cat << EOF -#define QT_VISIBILITY_AVAILABLE - -EOF -fi - -if [ -n "$QT_LIBINFIX" ]; then -cat << EOF -#define QT_LIBINFIX "$QT_LIBINFIX" - -EOF -fi - -echo "#define QT_QPA_DEFAULT_PLATFORM_NAME \"$QT_QPA_DEFAULT_PLATFORM\"" - -# Close qconfig.h.new (by restoring the original stdout) -exec >&3 - -# avoid unecessary rebuilds by copying only if qconfig.h has changed -if cmp -s "$outpath/src/corelib/global/qconfig.h" "$outpath/src/corelib/global/qconfig.h.new"; then - rm -f "$outpath/src/corelib/global/qconfig.h.new" -else - mv -f "$outpath/src/corelib/global/qconfig.h.new" "$outpath/src/corelib/global/qconfig.h" -fi - -#------------------------------------------------------------------------------- -# save configuration into qconfig.pri -#------------------------------------------------------------------------------- - -# open qconfig.pri -QTCONFIG="$outpath/mkspecs/qconfig.pri" -exec > "$QTCONFIG.tmp" - -if [ "$CFG_DEBUG" = "yes" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG debug" - if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then - QT_CONFIG="$QT_CONFIG release" - fi - QT_CONFIG="$QT_CONFIG debug" -elif [ "$CFG_DEBUG" = "no" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG release" - if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then - QT_CONFIG="$QT_CONFIG debug" - fi - QT_CONFIG="$QT_CONFIG release" -fi -if [ "$CFG_FRAMEWORK" = "no" ]; then - QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_no_framework" -else - QT_CONFIG="$QT_CONFIG qt_framework" - QTCONFIG_CONFIG="$QTCONFIG_CONFIG qt_framework" -fi -if [ "$CFG_DEV" = "yes" ]; then - QT_CONFIG="$QT_CONFIG private_tests" - if [ "$CFG_WERROR" != "no" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG warnings_are_errors" - fi - if [ "$CFG_HEADERSCLEAN" != "no" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG headersclean" - fi -else - if [ "$CFG_WERROR" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG warnings_are_errors" - fi - if [ "$CFG_HEADERSCLEAN" = "yes" ]; then - QMAKE_CONFIG="$QMAKE_CONFIG headersclean" - fi -fi - -cat <<EOF -#configuration -CONFIG += $QTCONFIG_CONFIG -host_build { - QT_ARCH = $CFG_HOST_ARCH - QT_TARGET_ARCH = $CFG_ARCH -} else { - QT_ARCH = $CFG_ARCH -} -QT_CONFIG += $QT_CONFIG - -#versioning -QT_VERSION = $QT_VERSION -QT_MAJOR_VERSION = $QT_MAJOR_VERSION -QT_MINOR_VERSION = $QT_MINOR_VERSION -QT_PATCH_VERSION = $QT_PATCH_VERSION - -#namespaces -QT_LIBINFIX = $QT_LIBINFIX -QT_NAMESPACE = $QT_NAMESPACE - -QT_EDITION = $Edition -EOF - -if [ "$Edition" != "OpenSource" ] && [ "$Edition" != "Preview" ]; then - echo "QT_LICHECK = $Licheck" - echo "QT_RELEASE_DATE = $ReleaseDate" -fi -echo - -if [ "$CFG_SHARED" = "no" ]; then - echo "QT_DEFAULT_QPA_PLUGIN = q$QT_QPA_DEFAULT_PLATFORM" - echo -fi - -if [ -n "$PKG_CONFIG_SYSROOT_DIR" ] || [ -n "$PKG_CONFIG_LIBDIR" ]; then - echo "# pkgconfig" - echo "PKG_CONFIG_SYSROOT_DIR = $PKG_CONFIG_SYSROOT_DIR" - echo "PKG_CONFIG_LIBDIR = $PKG_CONFIG_LIBDIR" - echo -fi - -if [ -n "$CFG_SYSROOT" ] && [ "$CFG_GCC_SYSROOT" = "yes" ]; then - echo "# sysroot" - echo "!host_build {" - echo " QMAKE_CFLAGS += --sysroot=\$\$[QT_SYSROOT]" - echo " QMAKE_CXXFLAGS += --sysroot=\$\$[QT_SYSROOT]" - echo " QMAKE_LFLAGS += --sysroot=\$\$[QT_SYSROOT]" - echo "}" - echo -fi -echo "QT_COMPILER_STDCXX = $CFG_STDCXX_DEFAULT" -if [ -n "$QT_GCC_MAJOR_VERSION" ]; then - echo "QT_GCC_MAJOR_VERSION = $QT_GCC_MAJOR_VERSION" - echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" - echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" -fi -if [ -n "$QT_ICC_MAJOR_VERSION" ]; then - echo "QT_ICC_MAJOR_VERSION = $QT_ICC_MAJOR_VERSION" - echo "QT_ICC_MINOR_VERSION = $QT_ICC_MINOR_VERSION" - echo "QT_ICC_PATCH_VERSION = $QT_ICC_PATCH_VERSION" -fi -if [ -n "$QT_CLANG_MAJOR_VERSION" ]; then - echo "QT_CLANG_MAJOR_VERSION = $QT_CLANG_MAJOR_VERSION" - echo "QT_CLANG_MINOR_VERSION = $QT_CLANG_MINOR_VERSION" -fi -if [ -n "$QT_APPLE_CLANG_MAJOR_VERSION" ]; then - echo "QT_APPLE_CLANG_MAJOR_VERSION = $QT_APPLE_CLANG_MAJOR_VERSION" - echo "QT_APPLE_CLANG_MINOR_VERSION = $QT_APPLE_CLANG_MINOR_VERSION" -fi - -if [ -n "$QMAKE_INCDIR_OPENGL_ES2" ]; then - echo "#Qt opengl include path" - echo "QMAKE_INCDIR_OPENGL_ES2 = `shellArgumentListToQMakeList "$QMAKE_INCDIR_OPENGL_ES2"`" -fi - -# Close qconfig.pri.tmp (by restoring the original stdout) -exec >&3 - -# replace qconfig.pri if it differs from the newly created temp file -if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then - rm -f "$QTCONFIG.tmp" -else - mv -f "$QTCONFIG.tmp" "$QTCONFIG" -fi - -#------------------------------------------------------------------------------- -# save configuration into qmodule.pri -#------------------------------------------------------------------------------- +# redirect qmake's output to a dummy Makefile +$CFG_QMAKE_PATH -o Makefile.cfg -qtconf "$QTCONFFILE" $relpath/configure.pri -- "$@" || exit 101 +rm Makefile.cfg -# open qmodule.pri -QTMODULE="$outpath/mkspecs/qmodule.pri" -exec > "$QTMODULE.tmp" - -echo "CONFIG += $QMAKE_CONFIG" -echo "QT_BUILD_PARTS += $CFG_BUILD_PARTS" -if [ -n "$CFG_SKIP_MODULES" ]; then - echo "QT_SKIP_MODULES += $CFG_SKIP_MODULES" -fi -DISABLED_FEATURES= -for cfg in $QCONFIG_FLAGS; do - ncfg=${cfg#QT_NO_} - if [ x$ncfg != x$cfg ]; then - DISABLED_FEATURES="$DISABLED_FEATURES $ncfg" +# Re-use old file if unchanged, to avoid needless rebuilds +for arg in qconfig qmodule; do + file="$outpath/mkspecs/$arg.pri" + if cmp -s "$file" "$file.old"; then + rm -f "$file" + mv "$file.old" "$file" + else + rm -f "$file.old" fi done -if [ -n "$DISABLED_FEATURES" ]; then - echo "QT_NO_DEFINES = $DISABLED_FEATURES" -fi -echo "QT_QCONFIG_PATH = ${CFG_QCONFIG_PATH#$relpath/src/corelib/global/}" - -cat <<EOF -host_build { - QT_CPU_FEATURES.$CFG_HOST_ARCH = $CFG_HOST_CPUFEATURES -} else { - QT_CPU_FEATURES.$CFG_ARCH = $CFG_CPUFEATURES -} -EOF -echo "QT_COORD_TYPE = $CFG_QREAL" - -if [ -n "$QT_CFLAGS_PSQL" ]; then - echo "QT_CFLAGS_PSQL = $QT_CFLAGS_PSQL" -fi -if [ -n "$QT_LFLAGS_PSQL" ]; then - echo "QT_LFLAGS_PSQL = $QT_LFLAGS_PSQL" -fi -if [ -n "$QT_CFLAGS_MYSQL" ]; then - echo "QT_CFLAGS_MYSQL = $QT_CFLAGS_MYSQL" -fi -if [ -n "$QT_LFLAGS_MYSQL" ]; then - echo "QT_LFLAGS_MYSQL = $QT_LFLAGS_MYSQL" -fi -if [ -n "$QT_CFLAGS_SQLITE" ]; then - echo "QT_CFLAGS_SQLITE = $QT_CFLAGS_SQLITE" -fi -if [ -n "$QT_LFLAGS_SQLITE" ]; then - echo "QT_LFLAGS_SQLITE = $QT_LFLAGS_SQLITE" -fi -if [ -n "$QT_LFLAGS_ODBC" ]; then - echo "QT_LFLAGS_ODBC = $QT_LFLAGS_ODBC" -fi -if [ -n "$QT_LFLAGS_TDS" ]; then - echo "QT_LFLAGS_TDS = $QT_LFLAGS_TDS" -fi - -#dump in the OPENSSL_LIBS info -if [ '!' -z "$OPENSSL_LIBS" ]; then - echo "OPENSSL_LIBS = $OPENSSL_LIBS" -elif [ "$CFG_OPENSSL" = "linked" ]; then - echo "OPENSSL_LIBS = -lssl -lcrypto" -fi - -# cmdline args -cat "$QMAKE_VARS_FILE" -# QMAKE_VARS_FILE will be still needed for a status message. - -# Close qmodule.pri.tmp (by restoring the original stdout) -exec >&3 - -# replace qmodule.pri if it differs from the newly created temp file -if cmp -s "$QTMODULE.tmp" "$QTMODULE"; then - rm -f "$QTMODULE.tmp" -else - mv -f "$QTMODULE.tmp" "$QTMODULE" -fi #------------------------------------------------------------------------------- # give feedback on configuration #------------------------------------------------------------------------------- -exec 1>$outpath/config.summary # redirect output temporarily to config.summary - -report_support() -{ - case "$#,$2" in - 2,auto) - # 2 arguments and the result is "auto", so just say "yes" - # this is usually an error in the configure script, but oh well.. - echo "$1 yes" - return - ;; - [012],* | *,no*) - # 0, 1 or 2 arguments, or anything starting with "no" - # print just the first part of the argument (before the dash) - echo "$1 ${2%%-*}" - return - :; - esac - heading=$1 - shift - - value=$1 - shift - - while [ $# -gt 0 ]; do - if [ "$value" = "$1" ]; then - echo "$heading yes ($2)" - return - fi - shift - shift - done - echo "$heading $value" -} - -report_support_plugin() -{ - report_support "$1" "$2-$3" \ - yes-qt "in $4, using bundled copy" \ - yes-system "in $4, using system library" \ - plugin-qt "plugin, using bundled copy" \ - plugin-system "plugin, using system library" -} - -echo -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})" -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})" -fi - if [ -n "$PLATFORM_NOTES" ]; then + echo echo "Platform notes:" echo "$PLATFORM_NOTES" else @@ -7382,217 +1959,9 @@ fi if [ "$OPT_VERBOSE" = "yes" ]; then echo $ECHO_N "qmake vars .......... $ECHO_C" cat "$QMAKE_VARS_FILE" | tr '\n' ' ' - echo "qmake switches ......... $QMAKE_SWITCHES" - echo -fi - -# Build configuration -echo "Build options:" -echo $ECHO_N " Configuration .......... $ECHO_C" -echo $QMAKE_CONFIG $QT_CONFIG | tr ' ' '\n' | sort | tr '\n' ' ' -echo -echo " Build parts ............ $CFG_BUILD_PARTS" -release="release" -[ "$CFG_FORCEDEBUGINFO" = "yes" ] && release="release (with debug info)" -[ "$CFG_DEBUG" = "yes" ] && build_mode="debug" || build_mode=$release -if [ "$CFG_DEBUG_RELEASE" = "yes" ]; then - build_mode="debug and $release; default link: $build_mode" -fi -if [ "$CFG_RELEASE_TOOLS" = "yes" ]; then - build_mode="$build_mode; optimized tools" -fi -echo " Mode ................... $build_mode" -unset build_mode release -echo " Using sanitizer(s)...... $CFG_SANITIZERS" -echo " Using C++ standard ..... $CFG_STDCXX" -echo " Using gold linker....... $CFG_USE_GOLD_LINKER" -echo " Using new DTAGS ........ $CFG_ENABLE_NEW_DTAGS" -echo " Using PCH .............. $CFG_PRECOMPILE" -echo " Using LTCG ............. $CFG_LTCG" -echo " Target compiler supports:" -if [ "$CFG_ARCH" = "i386" -o "$CFG_ARCH" = "x86_64" ]; then - echo " SSE .................. ${CFG_SSE_LIST:-<none>}" - echo " AVX .................. ${CFG_AVX_LIST:-<none>}" - echo " AVX512 ............... ${CFG_AVX512_UPPER:-<none>}" -elif [ "$CFG_ARCH" = "arm" ]; then - echo " Neon ................. ${CFG_NEON}" -elif [ "$CFG_ARCH" = "mips" ]; then - echo " DSP/DSPr2 ............ ${CFG_MIPS_DSP}/${CFG_MIPS_DSPR2}" -fi - -# Qt modules -echo -echo "Qt modules and options:" -report_support " Qt D-Bus ..............." "$CFG_DBUS" runtime "loading dbus-1 at runtime" linked "linked to dbus-1" -report_support " Qt Concurrent .........." "$CFG_CONCURRENT" -report_support " Qt GUI ................." "$CFG_GUI" -report_support " Qt Widgets ............." "$CFG_WIDGETS" -report_support " Large File ............." "$CFG_LARGEFILE" -report_support " QML debugging .........." "$CFG_QML_DEBUG" -report_support " Use system proxies ....." "$CFG_SYSTEM_PROXIES" - -# Other things -# Please keep sorted and properly grouped! The output is quite long, so it's -# hard to find something you're searching for if it's not sorted. -echo -echo "Support enabled for:" -report_support " Accessibility .........." "$CFG_ACCESSIBILITY" -report_support " ALSA ..................." "$CFG_ALSA" -report_support " CUPS ..................." "$CFG_CUPS" -[ "$XPLATFORM_MINGW" = "yes" ] && \ - report_support " DirectWrite ............" "$CFG_DIRECTWRITE" -report_support " DoubleConversion........" "$CFG_DOUBLECONVERSION" no "libc" system "system library" qt "bundled copy" -report_support " Evdev .................." "$CFG_EVDEV" -report_support " FontConfig ............." "$CFG_FONTCONFIG" -report_support " FreeType ..............." "$CFG_FREETYPE" system "system library" yes "bundled copy" -report_support " Glib ..................." "$CFG_GLIB" -report_support " GStreamer .............." "$CFG_GSTREAMER" yes "$CFG_GSTREAMER_VERSION" -report_support " GTK platformtheme ......" "$CFG_GTK" -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:" -report_support_plugin " GIF .................." "$CFG_GIF" qt QtGui -report_support_plugin " JPEG ................." "$CFG_JPEG" "$CFG_LIBJPEG" QtGui -report_support_plugin " PNG .................." "$CFG_PNG" "$CFG_LIBPNG" QtGui -report_support " libinput................" "$CFG_LIBINPUT" -report_support " Logging backends:" -report_support " journald ..............." "$CFG_JOURNALD" -report_support " syslog ..............." "$CFG_SYSLOG" -report_support " mtdev .................." "$CFG_MTDEV" yes "system library" -report_support " Networking:" -[ "$XPLATFORM_MAC" = "yes" ] && \ - report_support " CoreWlan ............." "$CFG_COREWLAN" -report_support " getaddrinfo .........." "$CFG_GETADDRINFO" -report_support " getifaddrs ..........." "$CFG_GETIFADDRS" -report_support " IPv6 ifname .........." "$CFG_IPV6IFNAME" -report_support " libproxy.............." "$CFG_LIBPROXY" -report_support " OpenSSL .............." "$CFG_OPENSSL" yes "loading libraries at run-time" linked "linked to the libraries" -[ "$XPLATFORM_MAC" = "yes" ] && \ - report_support " SecureTransport ......" "$CFG_SECURETRANSPORT" -report_support " OpenGL / OpenVG:" -report_support " EGL .................." "$CFG_EGL" -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 - report_support " pkg-config ............. yes" -else - report_support " pkg-config ............. no" -fi -report_support " PulseAudio ............." "$CFG_PULSEAUDIO" -report_support " QPA backends:" -report_support " DirectFB ............." "$CFG_DIRECTFB" -report_support " EGLFS ................" "$CFG_EGLFS" -report_support " EGLFS i.MX6 ........" "$CFG_EGLFS_VIV" -report_support " EGLFS i.MX6 Wayland." "$CFG_EGLFS_VIV_WL" -report_support " EGLFS EGLDevice ...." "$CFG_EGLFS_EGLDEVICE" -report_support " EGLFS GBM .........." "$CFG_EGLFS_GBM" -report_support " EGLFS Mali ........." "$CFG_EGLFS_MALI" -report_support " EGLFS Raspberry Pi ." "$CFG_EGLFS_BRCM" -report_support " EGLFS X11 .........." "$CFG_EGL_X" -if [ "$XPLATFORM_INTEGRITY" = "yes" ]; then - report_support " INTEGRITY Framebuffer " "$CFG_INTEGRITYFB" -fi -report_support " LinuxFB .............." "$CFG_LINUXFB" -report_support " Mir client............" "$CFG_MIRCLIENT" -report_support " XCB .................." "$CFG_XCB" system "system library" qt "bundled copy" -if [ "$CFG_XCB" != "no" ]; then - report_support " EGL on X ..........." "$CFG_EGL_X" - report_support " GLX ................" "$CFG_XCB_GLX" - report_support " MIT-SHM ............" "$CFG_MITSHM" - report_support " Xcb-Xlib ..........." "$CFG_XCB_XLIB" - report_support " Xcursor ............" "$CFG_XCURSOR" runtime "loaded at runtime" - report_support " Xfixes ............." "$CFG_XFIXES" runtime "loaded at runtime" - report_support " Xi2 ................" "$CFG_XINPUT2" runtime "loaded at runtime" - report_support " Xrandr ............." "$CFG_XRANDR" runtime "loaded at runtime" - report_support " Xrender ............" "$CFG_XRENDER" - report_support " XKB ................" "$CFG_XKB" - report_support " XShape ............." "$CFG_XSHAPE" - report_support " XSync .............." "$CFG_XSYNC" -fi -report_support " Session management ....." "$CFG_SM" -if [ "$XPLATFORM_QNX" = "yes" ]; then - report_support " SLOG2 .................." "$CFG_SLOG2" - report_support " IMF ...................." "$CFG_QNX_IMF" - report_support " PPS ...................." "$CFG_PPS" - report_support " LGMON .................." "$CFG_LGMON" -fi -report_support " SQL drivers:" -report_support " DB2 .................." "$CFG_SQL_db2" plugin "plugin" yes "built into QtSql" -report_support " InterBase ............" "$CFG_SQL_ibase" plugin "plugin" yes "built into QtSql" -report_support " MySQL ................" "$CFG_SQL_mysql" plugin "plugin" yes "built into QtSql" -report_support " OCI .................." "$CFG_SQL_oci" plugin "plugin" yes "built into QtSql" -report_support " ODBC ................." "$CFG_SQL_odbc" plugin "plugin" yes "built into QtSql" -report_support " PostgreSQL ..........." "$CFG_SQL_psql" plugin "plugin" yes "built into QtSql" -report_support " SQLite 2 ............." "$CFG_SQL_sqlite2" plugin "plugin" yes "built into QtSql" -report_support_plugin " SQLite ..............." "$CFG_SQL_sqlite" "$CFG_SQLITE" QtSql -report_support " TDS .................." "$CFG_SQL_tds" plugin "plugin" yes "built into QtSql" -report_support " tslib .................." "$CFG_TSLIB" -report_support " udev ..................." "$CFG_LIBUDEV" -report_support " xkbcommon-x11..........." "$CFG_XKBCOMMON" system "system library" qt "bundled copy, XKB config root: $CFG_XKB_CONFIG_ROOT" -report_support " xkbcommon-evdev........." "$CFG_XKBCOMMON_EVDEV" -report_support " zlib ..................." "$CFG_ZLIB" system "system library" yes "bundled copy" - -echo - -# complain about not being able to use dynamic plugins if we are using a static build -if [ "$CFG_SHARED" = "no" ]; then - echo - 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." -fi -if [ "$CFG_FREETYPE" = "system" ]; then - if [ "$ORIG_CFG_FREETYPE" = "qt" ]; then - echo - echo "WARNING: Bundled FreeType can't be used. FontConfig use requires system FreeType." - elif [ "$ORIG_CFG_FREETYPE" = "no" ]; then - echo - echo "WARNING: FreeType can't be disabled. FontConfig use requires system FreeType." - fi -fi -if [ "$CFG_OPENSSL" = "linked" ] && [ "$OPENSSL_LIBS" = "" ]; then - echo - echo "NOTE: When linking against OpenSSL, you can override the default" - echo "library names through OPENSSL_LIBS." - echo "For example:" - echo " OPENSSL_LIBS='-L/opt/ssl/lib -lssl -lcrypto' ./configure -openssl-linked" -fi -if [ "$CFG_JOURNALD" = "yes" ] || [ "$CFG_SYSLOG" = "yes" ] || [ "$CFG_SLOG2" = "yes" ]; then - echo - echo "NOTE: journald, syslog 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, syslog 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 -if [ "$CFG_RELEASE_TOOLS" = "yes" -a \( "$CFG_DEBUG" = "no" -o "$CFG_DEBUG_RELEASE" = "yes" \) ]; then - echo - echo "NOTE: -optimized-tools is not useful in -release mode." echo fi -exec 1>&3 3>&- # restore stdout -cat $outpath/config.summary # display config feedback to user - -if [ "$XPLATFORM_MAC" = "yes" ] && [ "$CFG_FRAMEWORK" = "yes" ] && [ "$CFG_DEBUG" = "yes" ] && [ "$CFG_DEBUG_RELEASE" = "no" ]; then - echo - echo "Error: debug-only framework builds are not supported. Configure with -no-framework" - echo "if you want a pure debug build." - echo - exit 1 -fi - sepath=`echo "$relpath" | sed -e 's/\\./\\\\./g'` PROCS=1 EXEC="" @@ -7616,76 +1985,6 @@ rm -f "$QMAKE_VARS_FILE" 2>/dev/null ) || exit #------------------------------------------------------------------------------- -# check for platforms that we don't yet know about -#------------------------------------------------------------------------------- -if [ "$CFG_ARCH" = "unknown" ]; then -cat <<EOF - - NOTICE: configure was unable to determine the architecture - for the $XQMAKESPEC target. - - Qt will not use a specialized implementation for any atomic - operations. Instead a generic implemention based on either GCC - intrinsics or C++11 std::atomic<T> will be used (when - available). The generic implementations are generally as fast - as and always as safe as a specialized implementation. - - If no generic implementation is available, Qt will use a - fallback UNIX implementation which uses a single - pthread_mutex_t to protect all atomic operations. This - implementation is the slow (but safe) fallback implementation - for architectures Qt does not yet support. -EOF -fi - -#------------------------------------------------------------------------------- -# check if the user passed the -no-zlib option, which is no longer supported -#------------------------------------------------------------------------------- -if [ -n "$ZLIB_FORCED" ]; then - which_zlib="supplied" - if [ "$CFG_ZLIB" = "system" ]; then - which_zlib="system" - fi - -cat <<EOF - - NOTICE: The -no-zlib option was supplied but is no longer - supported. - - Qt now requires zlib support in all builds, so the -no-zlib - option was ignored. Qt will be built using the $which_zlib - zlib. -EOF -fi - -#------------------------------------------------------------------------------- -# check if the user passed the obsoleted -wayland or -no-wayland flag -#------------------------------------------------------------------------------- -if [ "$CFG_OBSOLETE_WAYLAND" = "yes" ]; then -cat <<EOF - - NOTICE: The -wayland and -no-wayland flags are now obsolete - - All configuring of QtWayland plugin and QtCompositor happens in the module -EOF -fi - -#------------------------------------------------------------------------------- -# check if the user passed the obsoleted -arch or -host-arch options -#------------------------------------------------------------------------------- -if [ "$OPT_OBSOLETE_HOST_ARG" = "yes" ]; then -cat <<EOF - - NOTICE: The -arch and -host-arch options are obsolete. - - Qt now detects the target and host architectures based on compiler - output. Qt will be built using $CFG_ARCH for the target architecture - and $CFG_HOST_ARCH for the host architecture (note that these two - will be the same unless you are cross-compiling). -EOF -fi - -#------------------------------------------------------------------------------- # finally save the executed command to another script #------------------------------------------------------------------------------- if [ `basename $0` != "config.status" ]; then |