diff options
Diffstat (limited to 'tools/configure/configureapp.cpp')
-rw-r--r-- | tools/configure/configureapp.cpp | 400 |
1 files changed, 147 insertions, 253 deletions
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp index a03be4df0a..e3eb5220be 100644 --- a/tools/configure/configureapp.cpp +++ b/tools/configure/configureapp.cpp @@ -1,32 +1,27 @@ /**************************************************************************** ** -** Copyright (C) 2015 The Qt Company Ltd. -** Copyright (C) 2015 Intel Corporation -** Contact: http://www.qt.io/licensing/ +** Copyright (C) 2016 The Qt Company Ltd. +** Copyright (C) 2016 Intel Corporation. +** Contact: https://www.qt.io/licensing/ ** ** This file is part of the tools applications of the Qt Toolkit. ** -** $QT_BEGIN_LICENSE:LGPL21$ +** $QT_BEGIN_LICENSE:GPL-EXCEPT$ ** Commercial License Usage ** Licensees holding valid commercial Qt licenses may use this file in ** accordance with the commercial license agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and The Qt Company. For licensing terms -** and conditions see http://www.qt.io/terms-conditions. For further -** information use the contact form at http://www.qt.io/contact-us. +** and conditions see https://www.qt.io/terms-conditions. For further +** information use the contact form at https://www.qt.io/contact-us. ** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 or version 3 as published by the Free -** Software Foundation and appearing in the file LICENSE.LGPLv21 and -** LICENSE.LGPLv3 included in the packaging of this file. Please review the -** following information to ensure the GNU Lesser General Public License -** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** As a special exception, The Qt Company gives you certain additional -** rights. These rights are described in The Qt Company LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU +** General Public License version 3 as published by the Free Software +** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT +** included in the packaging of this file. Please review the following +** information to ensure the GNU General Public License requirements will +** be met: https://www.gnu.org/licenses/gpl-3.0.html. ** ** $QT_END_LICENSE$ ** @@ -57,10 +52,8 @@ QT_BEGIN_NAMESPACE enum Platforms { WINDOWS, - WINDOWS_CE, WINDOWS_RT, QNX, - BLACKBERRY, ANDROID, OTHER }; @@ -161,16 +154,15 @@ Configure::Configure(int& argc, char** argv) : verbose(0) dictionary[ "SSE4_2" ] = "auto"; dictionary[ "AVX" ] = "auto"; dictionary[ "AVX2" ] = "auto"; + dictionary[ "AVX512" ] = "auto"; dictionary[ "SYNCQT" ] = "auto"; - dictionary[ "CE_CRT" ] = "no"; - dictionary[ "CETEST" ] = "auto"; - dictionary[ "CE_SIGNATURE" ] = "no"; dictionary[ "AUDIO_BACKEND" ] = "auto"; dictionary[ "WMF_BACKEND" ] = "no"; dictionary[ "WMSDK" ] = "auto"; dictionary[ "QML_DEBUG" ] = "yes"; dictionary[ "PLUGIN_MANIFESTS" ] = "no"; dictionary[ "DIRECTWRITE" ] = "auto"; + dictionary[ "DIRECTWRITE2" ] = "auto"; dictionary[ "DIRECT2D" ] = "no"; dictionary[ "NIS" ] = "no"; dictionary[ "NEON" ] = "auto"; @@ -263,6 +255,7 @@ Configure::Configure(int& argc, char** argv) : verbose(0) dictionary[ "PNG" ] = "auto"; dictionary[ "LIBJPEG" ] = "auto"; dictionary[ "LIBPNG" ] = "auto"; + dictionary[ "DOUBLECONVERSION" ] = "auto"; dictionary[ "FREETYPE" ] = "yes"; dictionary[ "FREETYPE_FROM" ] = "default"; dictionary[ "HARFBUZZ" ] = "qt"; @@ -280,9 +273,6 @@ Configure::Configure(int& argc, char** argv) : verbose(0) dictionary[ "STYLE_WINDOWSXP" ] = "auto"; dictionary[ "STYLE_WINDOWSVISTA" ] = "auto"; dictionary[ "STYLE_FUSION" ] = "yes"; - dictionary[ "STYLE_WINDOWSCE" ] = "no"; - dictionary[ "STYLE_WINDOWSMOBILE" ] = "no"; - dictionary[ "STYLE_GTK" ] = "no"; dictionary[ "SQL_MYSQL" ] = "no"; dictionary[ "SQL_ODBC" ] = "no"; @@ -308,7 +298,7 @@ Configure::Configure(int& argc, char** argv) : verbose(0) dictionary[ "NATIVE_GESTURES" ] = "yes"; dictionary[ "MSVC_MP" ] = "no"; - if (dictionary["QMAKESPEC"] == QString("win32-g++")) { + if (dictionary["QMAKESPEC"].startsWith("win32-g++")) { const QString zero = QStringLiteral("0"); const QStringList parts = Environment::gccVersion().split(QLatin1Char('.')); dictionary["QT_GCC_MAJOR_VERSION"] = parts.value(0, zero); @@ -474,25 +464,21 @@ void Configure::parseCmdLine() dictionary[ "COMPILE_EXAMPLES" ] = "no"; } - else if (configCmdLine.at(i) == "-c++11") - dictionary[ "C++STD" ] = "c++11"; - else if (configCmdLine.at(i) == "-no-c++11") - dictionary[ "C++STD" ] = "c++98"; else if (configCmdLine.at(i) == "-c++std") { ++i; if (i == argCount) break; QString level = configCmdLine.at(i); - if (level == "c++98" || level == "c++11" || level == "c++14" || level == "c++1z" + if (level == "c++11" || level == "c++14" || level == "c++1z" || level == "auto") { dictionary[ "C++STD" ] = level; - } else if (level == "98" || level == "11" || level == "14" || level == "1z") { + } else if (level == "11" || level == "14" || level == "1z") { dictionary[ "C++STD" ] = "c++" + level; } else { dictionary[ "DONE" ] = "error"; cout << "ERROR: invalid C++ standard " << level - << "; valid options are: c++98 c++11 c++14 c++1z auto" << endl; + << "; valid options are: c++11 c++14 c++1z auto" << endl; return; } } @@ -634,6 +620,14 @@ void Configure::parseCmdLine() dictionary[ "LIBPNG" ] = "system"; } + // Double Conversion ----------------------------------------- + else if (configCmdLine.at(i) == "-no-doubleconversion") + dictionary[ "DOUBLECONVERSION" ] = "no"; + else if (configCmdLine.at(i) == "-qt-doubleconversion") + dictionary[ "DOUBLECONVERSION" ] = "qt"; + else if (configCmdLine.at(i) == "-system-doubleconversion") + dictionary[ "DOUBLECONVERSION" ] = "system"; + // Text Rendering -------------------------------------------- else if (configCmdLine.at(i) == "-no-freetype") { dictionary[ "FREETYPE" ] = "no"; @@ -653,58 +647,12 @@ void Configure::parseCmdLine() else if (configCmdLine.at(i) == "-system-harfbuzz") dictionary[ "HARFBUZZ" ] = "system"; - // CE- C runtime -------------------------------------------- - else if (configCmdLine.at(i) == "-crt") { - ++i; - if (i == argCount) - break; - QDir cDir(configCmdLine.at(i)); - if (!cDir.exists()) - cout << "WARNING: Could not find directory (" << qPrintable(configCmdLine.at(i)) << ")for C runtime deployment" << endl; - else - dictionary[ "CE_CRT" ] = QDir::toNativeSeparators(cDir.absolutePath()); - } else if (configCmdLine.at(i) == "-qt-crt") { - dictionary[ "CE_CRT" ] = "yes"; - } else if (configCmdLine.at(i) == "-no-crt") { - dictionary[ "CE_CRT" ] = "no"; - } - // cetest --------------------------------------------------- - else if (configCmdLine.at(i) == "-no-cetest") { - dictionary[ "CETEST" ] = "no"; - dictionary[ "CETEST_REQUESTED" ] = "no"; - } else if (configCmdLine.at(i) == "-cetest") { - // although specified to use it, we stay at "auto" state - // this is because checkAvailability() adds variables - // we need for crosscompilation; but remember if we asked - // for it. - dictionary[ "CETEST_REQUESTED" ] = "yes"; - } - // Qt/CE - signing tool ------------------------------------- - else if (configCmdLine.at(i) == "-signature") { - ++i; - if (i == argCount) - break; - QFileInfo info(configCmdLine.at(i)); - if (!info.exists()) - cout << "WARNING: Could not find signature file (" << qPrintable(configCmdLine.at(i)) << ")" << endl; - else - dictionary[ "CE_SIGNATURE" ] = QDir::toNativeSeparators(info.absoluteFilePath()); - } // Styles --------------------------------------------------- else if (configCmdLine.at(i) == "-qt-style-windows") dictionary[ "STYLE_WINDOWS" ] = "yes"; else if (configCmdLine.at(i) == "-no-style-windows") dictionary[ "STYLE_WINDOWS" ] = "no"; - else if (configCmdLine.at(i) == "-qt-style-windowsce") - dictionary[ "STYLE_WINDOWSCE" ] = "yes"; - else if (configCmdLine.at(i) == "-no-style-windowsce") - dictionary[ "STYLE_WINDOWSCE" ] = "no"; - else if (configCmdLine.at(i) == "-qt-style-windowsmobile") - dictionary[ "STYLE_WINDOWSMOBILE" ] = "yes"; - else if (configCmdLine.at(i) == "-no-style-windowsmobile") - dictionary[ "STYLE_WINDOWSMOBILE" ] = "no"; - else if (configCmdLine.at(i) == "-qt-style-windowsxp") dictionary[ "STYLE_WINDOWSXP" ] = "yes"; else if (configCmdLine.at(i) == "-no-style-windowsxp") @@ -905,6 +853,10 @@ void Configure::parseCmdLine() dictionary[ "AVX2" ] = "no"; else if (configCmdLine.at(i) == "-avx2") dictionary[ "AVX2" ] = "yes"; + else if (configCmdLine.at(i) == "-no-avx512") + dictionary[ "AVX512" ] = ""; + else if (configCmdLine.at(i) == "-avx512") + dictionary[ "AVX512" ] = "auto"; else if (configCmdLine.at(i) == "-no-ssl") { dictionary[ "SSL"] = "no"; @@ -1443,19 +1395,12 @@ void Configure::parseCmdLine() cout << "See the README file for a list of supported operating systems and compilers." << endl; } else { if (dictionary[ "QMAKESPEC" ].endsWith("-icc") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc.net") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc2002") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc2003") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc2005") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc2008") || - dictionary[ "QMAKESPEC" ].endsWith("-msvc2010") || dictionary[ "QMAKESPEC" ].endsWith("-msvc2012") || dictionary[ "QMAKESPEC" ].endsWith("-msvc2013") || dictionary[ "QMAKESPEC" ].endsWith("-msvc2015")) { if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "nmake"; dictionary[ "QMAKEMAKEFILE" ] = "Makefile.win32"; - } else if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) { + } else if (dictionary[ "QMAKESPEC" ].startsWith(QLatin1String("win32-g++"))) { if (dictionary[ "MAKE" ].isEmpty()) dictionary[ "MAKE" ] = "mingw32-make"; dictionary[ "QMAKEMAKEFILE" ] = "Makefile.unix"; } else { @@ -1492,28 +1437,6 @@ void Configure::parseCmdLine() } } - // Ensure that the crt to be deployed can be found - if (dictionary["CE_CRT"] != QLatin1String("yes") && dictionary["CE_CRT"] != QLatin1String("no")) { - QDir cDir(dictionary["CE_CRT"]); - QStringList entries = cDir.entryList(); - bool hasDebug = entries.contains("msvcr80.dll"); - bool hasRelease = entries.contains("msvcr80d.dll"); - if ((dictionary["BUILDALL"] == "auto") && (!hasDebug || !hasRelease)) { - cout << "Could not find debug and release c-runtime." << endl; - cout << "You need to have msvcr80.dll and msvcr80d.dll in" << endl; - cout << "the path specified. Setting to -no-crt"; - dictionary[ "CE_CRT" ] = "no"; - } else if ((dictionary["BUILD"] == "debug") && !hasDebug) { - cout << "Could not find debug c-runtime (msvcr80d.dll) in the directory specified." << endl; - cout << "Setting c-runtime automatic deployment to -no-crt" << endl; - dictionary[ "CE_CRT" ] = "no"; - } else if ((dictionary["BUILD"] == "release") && !hasRelease) { - cout << "Could not find release c-runtime (msvcr80.dll) in the directory specified." << endl; - cout << "Setting c-runtime automatic deployment to -no-crt" << endl; - dictionary[ "CE_CRT" ] = "no"; - } - } - // Allow tests for private classes to be compiled against internal builds if (dictionary["BUILDDEV"] == "yes") { qtConfig << "private_tests"; @@ -1710,23 +1633,9 @@ void Configure::applySpecSpecifics() dictionary[ "ZLIB" ] = "qt"; dictionary[ "PCRE" ] = "qt"; dictionary[ "ICU" ] = "qt"; - dictionary[ "CE_CRT" ] = "yes"; dictionary[ "LARGE_FILE" ] = "no"; dictionary[ "ANGLE" ] = "yes"; dictionary[ "DYNAMICGL" ] = "no"; - } else if (dictionary.value("XQMAKESPEC").startsWith("wince")) { - dictionary[ "STYLE_WINDOWSXP" ] = "no"; - dictionary[ "STYLE_WINDOWSVISTA" ] = "no"; - dictionary[ "STYLE_FUSION" ] = "no"; - dictionary[ "STYLE_WINDOWSCE" ] = "yes"; - dictionary[ "STYLE_WINDOWSMOBILE" ] = "yes"; - dictionary[ "CE_CRT" ] = "yes"; - dictionary[ "LARGE_FILE" ] = "no"; - dictionary[ "ANGLE" ] = "no"; - dictionary[ "DYNAMICGL" ] = "no"; - if (dictionary[ "XQMAKESPEC" ].startsWith("wincewm")) { - dictionary[ "MMX" ] = "yes"; - } } else if (dictionary.value("XQMAKESPEC").startsWith("linux")) { //TODO actually wrong. //TODO dictionary[ "STYLE_WINDOWSXP" ] = "no"; @@ -1746,7 +1655,7 @@ void Configure::applySpecSpecifics() dictionary[ "ANGLE" ] = "no"; dictionary["DECORATIONS"] = "default windows styled"; - } else if ((platform() == QNX) || (platform() == BLACKBERRY)) { + } else if (platform() == QNX) { dictionary[ "REDUCE_EXPORTS" ] = "yes"; dictionary["STACK_PROTECTOR_STRONG"] = "auto"; dictionary["SLOG2"] = "auto"; @@ -1758,6 +1667,8 @@ void Configure::applySpecSpecifics() dictionary[ "DYNAMICGL" ] = "no"; dictionary[ "FONT_CONFIG" ] = "auto"; dictionary[ "ICU" ] = "auto"; + dictionary[ "POLL" ] = "poll"; + dictionary[ "ZLIB" ] = "system"; } else if (platform() == ANDROID) { dictionary[ "REDUCE_EXPORTS" ] = "yes"; dictionary[ "BUILD" ] = "release"; @@ -1770,6 +1681,8 @@ void Configure::applySpecSpecifics() dictionary[ "QT_XKBCOMMON" ] = "no"; dictionary["ANDROID_STYLE_ASSETS"] = "yes"; dictionary[ "STYLE_ANDROID" ] = "yes"; + dictionary[ "POLL" ] = "poll"; + dictionary[ "ZLIB" ] = "system"; } } @@ -1837,7 +1750,7 @@ bool Configure::displayHelp() desc("OPENSOURCE", "opensource", "-opensource", "Compile and link the Open-Source Edition of Qt."); desc("COMMERCIAL", "commercial", "-commercial", "Compile and link the Commercial Edition of Qt.\n"); - desc( "-c++std <edition>", "Compile Qt with C++ standard edition (c++98, c++11, c++14, c++1z)\n" + desc( "-c++std <edition>", "Compile Qt with C++ standard edition (c++11, c++14, c++1z)\n" "Default: highest supported. This option is not supported for MSVC.\n"); desc("USE_GOLD_LINKER", "yes", "-use-gold-linker", "Link using the GNU gold linker (gcc only)."); @@ -1981,6 +1894,10 @@ bool Configure::displayHelp() desc("LIBJPEG", "qt", "-qt-libjpeg", "Use the libjpeg bundled with Qt."); desc("LIBJPEG", "system","-system-libjpeg", "Use libjpeg from the operating system.\nSee http://www.ijg.org\n"); + desc("DOUBLECONVERSION", "no", "-no-doubleconversion", "Use sscanf_l and snprintf_l for (imprecise) double conversion."); + desc("DOUBLECONVERSION", "qt", "-qt-doubleconversion", "Use the libdouble-conversion bundled with Qt."); + desc("DOUBLECONVERSION", "system", "-system-doubleconversion", "Use the libdouble-conversion provided by the system."); + desc("FREETYPE", "no", "-no-freetype", "Do not compile in Freetype2 support."); desc("FREETYPE", "yes", "-qt-freetype", "Use the libfreetype bundled with Qt."); desc("FREETYPE", "system","-system-freetype", "Use the libfreetype provided by the system.\n"); @@ -1997,7 +1914,7 @@ bool Configure::displayHelp() "by setting the QT_HARFBUZZ environment variable to \"old\".\n" "See http://www.harfbuzz.org\n"); - if ((platform() == QNX) || (platform() == BLACKBERRY)) { + if (platform() == QNX) { desc("SLOG2", "yes", "-slog2", "Compile with slog2 support."); desc("SLOG2", "no", "-no-slog2", "Do not compile with slog2 support."); desc("QNX_IMF", "yes", "-imf", "Compile with imf support."); @@ -2043,6 +1960,8 @@ bool Configure::displayHelp() desc("AVX", "yes", "-avx", "Compile with use of AVX instructions."); desc("AVX2", "no", "-no-avx2", "Do not compile with use of AVX2 instructions."); desc("AVX2", "yes", "-avx2", "Compile with use of AVX2 instructions.\n"); + desc("AVX512", "no", "-no-avx512", "Do not compile with use of AVX512 instructions."); + desc("AVX512", "yes", "-avx512", "Compile with use of AVX512 instructions.\n"); desc("SSL", "no", "-no-ssl", "Do not compile support for SSL."); desc("SSL", "yes", "-ssl", "Enable run-time SSL support."); desc("OPENSSL", "no", "-no-openssl", "Do not compile support for OpenSSL."); @@ -2074,8 +1993,6 @@ bool Configure::displayHelp() desc("STYLE_WINDOWSXP", "auto", "", " windowsxp", ' '); desc("STYLE_WINDOWSVISTA", "auto", "", " windowsvista", ' '); desc("STYLE_FUSION", "yes", "", " fusion", ' '); - desc("STYLE_WINDOWSCE", "yes", "", " windowsce", ' '); - desc("STYLE_WINDOWSMOBILE" , "yes", "", " windowsmobile\n", ' '); desc("NATIVE_GESTURES", "no", "-no-native-gestures", "Do not use native gestures on Windows 7."); desc("NATIVE_GESTURES", "yes", "-native-gestures", "Use native gestures on Windows 7.\n"); desc("MSVC_MP", "no", "-no-mp", "Do not use multiple processors for compiling with MSVC"); @@ -2085,15 +2002,6 @@ bool Configure::displayHelp() desc( "-saveconfig <config>", "Run configure and save the parameters in file configure_<config>.cache."); desc( "-redo", "Run configure with the same parameters as last time.\n"); desc( "-v, -verbose", "Run configure tests with verbose output.\n"); - - // Qt\Windows CE only options go below here ----------------------------------------------------------------------------- - desc("Qt for Windows CE only:\n\n"); - desc("CE_CRT", "no", "-no-crt" , "Do not add the C runtime to default deployment rules."); - desc("CE_CRT", "yes", "-qt-crt", "Qt identifies C runtime during project generation."); - desc( "-crt <path>", "Specify path to C runtime used for project generation.\n"); - desc("CETEST", "no", "-no-cetest", "Do not compile Windows CE remote test application."); - desc("CETEST", "yes", "-cetest", "Compile Windows CE remote test application.\n"); - desc( "-signature <file>", "Use <file> for signing the target project."); return true; } return false; @@ -2187,11 +2095,6 @@ bool Configure::checkAngleAvailability(QString *errorMessage /* = 0 */) const // it is also present in MinGW. const QString directXSdk = Environment::detectDirectXSdk(); const Compiler compiler = Environment::compilerFromQMakeSpec(dictionary[QStringLiteral("QMAKESPEC")]); - if (compiler >= CC_MSVC2005 && compiler <= CC_MSVC2008) { - if (errorMessage) - *errorMessage = QStringLiteral("ANGLE is no longer supported for this compiler."); - return false; - } if (compiler < CC_MSVC2012 && directXSdk.isEmpty()) { if (errorMessage) *errorMessage = QStringLiteral("There is no Direct X SDK installed or the environment variable \"DXSDK_DIR\" is not set."); @@ -2231,6 +2134,24 @@ bool Configure::checkAngleAvailability(QString *errorMessage /* = 0 */) const return true; } +QString Configure::checkAvx512Availability() +{ + static const char avx512features[][5] = { "cd", "er", "pf", "bw", "dq", "vl", "ifma", "vbmi" }; + + // try AVX512 Foundation. No Foundation, nothing else works. + if (!tryCompileProject("common/avx512", "AVX512=F")) + return QString(); + + QString available = "avx512f"; + for (size_t i = 0; i < sizeof(avx512features)/sizeof(avx512features[0]); ++i) { + if (tryCompileProject("common/avx512", QStringLiteral("AVX512=%0").arg(avx512features[i]).toUpper())) { + available += " avx512"; + available += avx512features[i]; + } + } + return available; +} + /*! Checks the system for the availability of a feature. Returns true if the feature is available, else false. @@ -2287,7 +2208,7 @@ bool Configure::checkAvailability(const QString &part) available = true; // Built in, we have a fork else if (part == "SQL_SQLITE_LIB") { if (dictionary[ "SQL_SQLITE_LIB" ] == "system") { - if ((platform() == QNX) || (platform() == BLACKBERRY)) { + if (platform() == QNX) { available = true; dictionary[ "QT_LFLAGS_SQLITE" ] += "-lsqlite3 -lz"; } else { @@ -2302,8 +2223,6 @@ bool Configure::checkAvailability(const QString &part) available = findFile("sqlite.h") && findFile("sqlite.lib"); else if (part == "SQL_IBASE") available = findFile("ibase.h") && (findFile("gds32_ms.lib") || findFile("gds32.lib")); - else if (part == "OPENGL_ES_2") - available = (dictionary.value("XQMAKESPEC").startsWith("wince")); else if (part == "SSE2") available = tryCompileProject("common/sse2"); else if (part == "SSE3") @@ -2324,20 +2243,7 @@ bool Configure::checkAvailability(const QString &part) available = dictionary.contains("XQMAKESPEC") && tryCompileProject("common/libproxy"); else if (part == "DBUS") available = findFile("dbus\\dbus.h"); - else if (part == "CETEST") { - const QString rapiHeader = QDir::toNativeSeparators(locateFile("rapi.h")); - const QString rapiLib = QDir::toNativeSeparators(locateFile("rapi.lib")); - available = (dictionary.value("XQMAKESPEC").startsWith("wince")) && !rapiHeader.isEmpty() && !rapiLib.isEmpty(); - if (available) { - dictionary[ "QT_CE_RAPI_INC" ] += QLatin1String("\"") + rapiHeader + QLatin1String("\""); - dictionary[ "QT_CE_RAPI_LIB" ] += QLatin1String("\"") + rapiLib + QLatin1String("\""); - } - else if (dictionary[ "CETEST_REQUESTED" ] == "yes") { - cout << "cetest could not be enabled: rapi.h and rapi.lib could not be found." << endl; - cout << "Make sure the environment is set up for compiling with ActiveSync." << endl; - dictionary[ "DONE" ] = "error"; - } - } else if (part == "INCREDIBUILD_XGE") { + else if (part == "INCREDIBUILD_XGE") { available = !QStandardPaths::findExecutable(QStringLiteral("BuildConsole.exe")).isEmpty() && !QStandardPaths::findExecutable(QStringLiteral("xgConsole.exe")).isEmpty(); } else if (part == "WMSDK") { @@ -2348,6 +2254,8 @@ bool Configure::checkAvailability(const QString &part) available = findFile("mfapi.h") && findFile("mf.lib"); } else if (part == "DIRECTWRITE") { available = tryCompileProject("win/directwrite"); + } else if (part == "DIRECTWRITE2") { + available = tryCompileProject("win/directwrite2"); } else if (part == "DIRECT2D") { available = tryCompileProject("qpa/direct2d"); } else if (part == "ICONV") { @@ -2363,22 +2271,23 @@ bool Configure::checkAvailability(const QString &part) } else if (part == "QT_EVENTFD") { available = tryCompileProject("unix/eventfd"); } else if (part == "CUPS") { - available = (platform() != WINDOWS) && (platform() != WINDOWS_CE) && (platform() != WINDOWS_RT) && tryCompileProject("unix/cups"); + available = (platform() != WINDOWS) && (platform() != WINDOWS_RT) && tryCompileProject("unix/cups"); } else if (part == "STACK_PROTECTOR_STRONG") { - available = (platform() == QNX || platform() == BLACKBERRY) && compilerSupportsFlag("qcc -fstack-protector-strong"); + available = (platform() == QNX) && compilerSupportsFlag("qcc -fstack-protector-strong"); } else if (part == "SLOG2") { available = tryCompileProject("unix/slog2"); } else if (part == "QNX_IMF") { available = tryCompileProject("unix/qqnx_imf"); } else if (part == "PPS") { - available = (platform() == QNX || platform() == BLACKBERRY) && tryCompileProject("unix/pps"); + available = (platform() == QNX) && tryCompileProject("unix/pps"); } else if (part == "LGMON") { - available = (platform() == QNX || platform() == BLACKBERRY) - && tryCompileProject("unix/lgmon"); + available = (platform() == QNX) && tryCompileProject("unix/lgmon"); } else if (part == "NEON") { available = dictionary["QT_CPU_FEATURES"].contains("neon"); } else if (part == "FONT_CONFIG") { available = tryCompileProject("unix/fontconfig"); + } else if (part == "DOUBLECONVERSION") { + available = tryCompileProject("unix/doubleconversion"); } return available; @@ -2396,7 +2305,10 @@ void Configure::autoDetection() if (dictionary["C++STD"] == "auto" && !dictionary["QMAKESPEC"].contains("msvc")) { if (!tryCompileProject("common/c++11")) { - dictionary["C++STD"] = "c++98"; + dictionary["DONE"] = "error"; + cout << "ERROR: Qt requires a C++11 compiler and yours does not seem to be that." << endl + << "Please upgrade." << endl; + return; } else if (!tryCompileProject("common/c++14")) { dictionary["C++STD"] = "c++11"; } else if (!tryCompileProject("common/c++1z")) { @@ -2506,6 +2418,8 @@ void Configure::autoDetection() dictionary["AVX"] = checkAvailability("AVX") ? "yes" : "no"; if (dictionary["AVX2"] == "auto") dictionary["AVX2"] = checkAvailability("AVX2") ? "yes" : "no"; + if (dictionary["AVX512"] == "auto") + dictionary["AVX512"] = checkAvx512Availability(); if (dictionary["NEON"] == "auto") dictionary["NEON"] = checkAvailability("NEON") ? "yes" : "no"; if (dictionary["SSL"] == "auto") { @@ -2535,10 +2449,6 @@ void Configure::autoDetection() if (dictionary["WMSDK"] == "auto") dictionary["WMSDK"] = checkAvailability("WMSDK") ? "yes" : "no"; - // Qt/WinCE remote test application - if (dictionary["CETEST"] == "auto") - dictionary["CETEST"] = checkAvailability("CETEST") ? "yes" : "no"; - // Detection of IncrediBuild buildconsole if (dictionary["INCREDIBUILD_XGE"] == "auto") dictionary["INCREDIBUILD_XGE"] = checkAvailability("INCREDIBUILD_XGE") ? "yes" : "no"; @@ -2571,11 +2481,11 @@ void Configure::autoDetection() if (dictionary["STACK_PROTECTOR_STRONG"] == "auto") dictionary["STACK_PROTECTOR_STRONG"] = checkAvailability("STACK_PROTECTOR_STRONG") ? "yes" : "no"; - if ((platform() == QNX || platform() == BLACKBERRY) && dictionary["SLOG2"] == "auto") { + if (platform() == QNX && dictionary["SLOG2"] == "auto") { dictionary["SLOG2"] = checkAvailability("SLOG2") ? "yes" : "no"; } - if ((platform() == QNX || platform() == BLACKBERRY) && dictionary["QNX_IMF"] == "auto") { + if (platform() == QNX && dictionary["QNX_IMF"] == "auto") { dictionary["QNX_IMF"] = checkAvailability("QNX_IMF") ? "yes" : "no"; } @@ -2583,7 +2493,7 @@ void Configure::autoDetection() dictionary["PPS"] = checkAvailability("PPS") ? "yes" : "no"; } - if ((platform() == QNX || platform() == BLACKBERRY) && dictionary["LGMON"] == "auto") { + if (platform() == QNX && dictionary["LGMON"] == "auto") { dictionary["LGMON"] = checkAvailability("LGMON") ? "yes" : "no"; } @@ -2596,9 +2506,17 @@ void Configure::autoDetection() if ((dictionary["FONT_CONFIG"] == "yes") && (dictionary["FREETYPE_FROM"] == "default")) dictionary["FREETYPE"] = "system"; + if (dictionary["DOUBLECONVERSION"] == "auto") + dictionary["DOUBLECONVERSION"] = checkAvailability("DOUBLECONVERSION") ? "system" : "qt"; + if (dictionary["DIRECTWRITE"] == "auto") dictionary["DIRECTWRITE"] = checkAvailability("DIRECTWRITE") ? "yes" : "no"; + if (dictionary["DIRECTWRITE"] == "no") + dictionary["DIRECTWRITE2"] = "no"; + else if (dictionary["DIRECTWRITE2"] == "auto") + dictionary["DIRECTWRITE2"] = checkAvailability("DIRECTWRITE2") ? "yes" : "no"; + // Mark all unknown "auto" to the default value.. for (QMap<QString,QString>::iterator i = dictionary.begin(); i != dictionary.end(); ++i) { if (i.value() == "auto") @@ -2651,9 +2569,8 @@ bool Configure::verifyConfiguration() << "Oracle driver, as the current build will most likely fail." << endl; prompt = true; } - if (dictionary["QMAKESPEC"].endsWith("win32-msvc.net")) { - cout << "WARNING: The makespec win32-msvc.net is deprecated. Consider using" << endl - << "win32-msvc2002 or win32-msvc2003 instead." << endl; + if (dictionary["QMAKESPEC"].endsWith("win32-msvc2008") || dictionary["QMAKESPEC"].endsWith("win32-msvc2010")) { + cout << "ERROR: Qt cannot be compiled with Visual Studio 2008 or 2010." << endl; prompt = true; } if (0 != dictionary["ARM_FPU_TYPE"].size()) { @@ -2863,6 +2780,14 @@ void Configure::generateOutputVars() if (dictionary[ "LIBPNG" ] == "system") qtConfig += "system-png"; + // Double conversion ----------------------------------------------- + if (dictionary[ "DOUBLECONVERSION" ] == "qt") + qtConfig += "doubleconversion"; + else if (dictionary[ "DOUBLECONVERSION" ] == "system") + qtConfig += "system-doubleconversion"; + else if (dictionary[ "DOUBLECONVERSION" ] == "no") + qtConfig += "no-doubleconversion"; + // Text rendering -------------------------------------------------- if (dictionary[ "FREETYPE" ] == "yes") qtConfig += "freetype"; @@ -2887,12 +2812,6 @@ void Configure::generateOutputVars() if (dictionary[ "STYLE_WINDOWSVISTA" ] == "yes") qmakeStyles += "windowsvista"; - if (dictionary[ "STYLE_WINDOWSCE" ] == "yes") - qmakeStyles += "windowsce"; - - if (dictionary[ "STYLE_WINDOWSMOBILE" ] == "yes") - qmakeStyles += "windowsmobile"; - if (dictionary[ "STYLE_ANDROID" ] == "yes") qmakeStyles += "android"; @@ -3021,9 +2940,6 @@ void Configure::generateOutputVars() else if (dictionary[ "DBUS" ] == "linked") qtConfig += "dbus dbus-linked"; - if (dictionary[ "CETEST" ] == "yes") - qtConfig += "cetest"; - // ### Vestige if (dictionary["AUDIO_BACKEND"] == "yes") qtConfig += "audio-backend"; @@ -3037,6 +2953,9 @@ void Configure::generateOutputVars() if (dictionary["DIRECTWRITE"] == "yes") qtConfig += "directwrite"; + if (dictionary["DIRECTWRITE2"] == "yes") + qtConfig += "directwrite2"; + if (dictionary["DIRECT2D"] == "yes") qtConfig += "direct2d"; @@ -3088,6 +3007,9 @@ void Configure::generateOutputVars() if (dictionary["REDUCE_EXPORTS"] == "yes") qtConfig += "reduce_exports"; + if (!dictionary["POLL"].isEmpty()) + qtConfig += "poll_" + dictionary["POLL"]; + // We currently have no switch for QtConcurrent, so add it unconditionally. qtConfig += "concurrent"; @@ -3211,14 +3133,6 @@ void Configure::generateCachefile() if (dictionary["QT_XKBCOMMON"] == "no") moduleStream << "DEFINES += QT_NO_XKBCOMMON" << endl; - if (dictionary["CETEST"] == "yes") { - moduleStream << "QT_CE_RAPI_INC = " << formatPath(dictionary["QT_CE_RAPI_INC"]) << endl; - moduleStream << "QT_CE_RAPI_LIB = " << formatPath(dictionary["QT_CE_RAPI_LIB"]) << endl; - } - - if (dictionary["CE_SIGNATURE"] != QLatin1String("no")) - moduleStream << "DEFAULT_SIGNATURE=" << dictionary["CE_SIGNATURE"] << endl; - // embedded if (!dictionary["KBD_DRIVERS"].isEmpty()) moduleStream << "kbd-drivers += "<< dictionary["KBD_DRIVERS"]<<endl; @@ -3244,6 +3158,8 @@ void Configure::generateCachefile() moduleStream << " avx"; if (dictionary[ "AVX2" ] == "yes") moduleStream << " avx2"; + if (!dictionary[ "AVX512" ].isEmpty()) + moduleStream << ' ' << dictionary[ "AVX512" ]; if (dictionary[ "NEON" ] == "yes") moduleStream << " neon"; if (dictionary[ "LARGE_FILE" ] == "yes") @@ -3565,6 +3481,9 @@ void Configure::generateQConfigPri() if (dictionary["DIRECTWRITE"] == "yes") configStream << " directwrite"; + if (dictionary["DIRECTWRITE2"] == "yes") + configStream << " directwrite2"; + if (dictionary["ANDROID_STYLE_ASSETS"] == "yes") configStream << " android-style-assets"; @@ -3577,7 +3496,7 @@ void Configure::generateQConfigPri() configStream << " QT_TARGET_ARCH = " << dictionary["QT_ARCH"] << endl; configStream << "} else {" << endl; configStream << " QT_ARCH = " << dictionary["QT_ARCH"] << endl; - if (dictionary.contains("XQMAKESPEC") && !dictionary["XQMAKESPEC"].startsWith("wince")) { + if (dictionary.contains("XQMAKESPEC")) { // FIXME: add detection configStream << " QMAKE_DEFAULT_LIBDIRS = /lib /usr/lib" << endl; configStream << " QMAKE_DEFAULT_INCDIRS = /usr/include /usr/local/include" << endl; @@ -3730,6 +3649,8 @@ void Configure::generateConfigfiles() tmpStream << "#define QT_COMPILER_SUPPORTS_AVX 1" << endl; if (dictionary[ "AVX2" ] == "yes") tmpStream << "#define QT_COMPILER_SUPPORTS_AVX2 1" << endl; + foreach (const QString &avx512feature, dictionary[ "AVX512" ].split(' ', QString::SkipEmptyParts)) + tmpStream << "#define QT_COMPILER_SUPPRTS_" << avx512feature.toUpper() << " 1" << endl; if (dictionary["QREAL"] != "double") { tmpStream << "#define QT_COORD_TYPE " << dictionary["QREAL"] << endl; @@ -3744,9 +3665,6 @@ void Configure::generateConfigfiles() if (dictionary["STYLE_WINDOWSXP"] != "yes" && dictionary["STYLE_WINDOWSVISTA"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSXP"; if (dictionary["STYLE_WINDOWSVISTA"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSVISTA"; - if (dictionary["STYLE_WINDOWSCE"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSCE"; - if (dictionary["STYLE_WINDOWSMOBILE"] != "yes") qconfigList += "QT_NO_STYLE_WINDOWSMOBILE"; - if (dictionary["STYLE_GTK"] != "yes") qconfigList += "QT_NO_STYLE_GTK"; if (dictionary["GIF"] == "yes") qconfigList += "QT_BUILTIN_GIF_READER=1"; if (dictionary["PNG"] != "yes") qconfigList += "QT_NO_IMAGEFORMAT_PNG"; @@ -3784,8 +3702,7 @@ void Configure::generateConfigfiles() if (dictionary["POSIX_IPC"] == "yes") qconfigList += "QT_POSIX_IPC"; - else if ((platform() != ANDROID) && (platform() != WINDOWS) && (platform() != WINDOWS_CE) - && (platform() != WINDOWS_RT)) + else if ((platform() != ANDROID) && (platform() != WINDOWS) && (platform() != WINDOWS_RT)) qconfigList << "QT_NO_SYSTEMSEMAPHORE" << "QT_NO_SHAREDMEMORY"; if (dictionary["FONT_CONFIG"] == "no") qconfigList += "QT_NO_FONTCONFIG"; @@ -3897,13 +3814,19 @@ void Configure::displayConfig() sout << "Using PCH .................." << dictionary[ "PCH" ] << endl; sout << "Accessibility support......." << dictionary[ "ACCESSIBILITY" ] << endl; sout << "RTTI support................" << dictionary[ "RTTI" ] << endl; - sout << "SSE2 support................" << dictionary[ "SSE2" ] << endl; - sout << "SSE3 support................" << dictionary[ "SSE3" ] << endl; - sout << "SSSE3 support..............." << dictionary[ "SSSE3" ] << endl; - sout << "SSE4.1 support.............." << dictionary[ "SSE4_1" ] << endl; - sout << "SSE4.2 support.............." << dictionary[ "SSE4_2" ] << endl; - sout << "AVX support................." << dictionary[ "AVX" ] << endl; - sout << "AVX2 support................" << dictionary[ "AVX2" ] << endl; + sout << "SSE support................." + << (dictionary[ "SSE2" ] == "no" ? "<none>" : "SSE2") + << (dictionary[ "SSE3" ] == "no" ? "" : " SSE3") + << (dictionary[ "SSSE3" ] == "no" ? "" : " SSSE3") + << (dictionary[ "SSE4_1" ] == "no" ? "" : " SSE4.1") + << (dictionary[ "SSE4_2" ] == "no" ? "" : " SSE4.2") + << endl; + sout << "AVX support................." + << (dictionary[ "AVX" ] == "no" ? "<none>" : "AVX") + << (dictionary[ "AVX2" ] == "no" ? "" : " AVX2") + << endl; + sout << "AVX512 support.............." + << (dictionary[ "AVX512" ].isEmpty() ? QString("<none>") : dictionary[ "AVX512" ].toUpper()) << endl; sout << "NEON support................" << dictionary[ "NEON" ] << endl; sout << "OpenGL support.............." << dictionary[ "OPENGL" ] << endl; sout << "Large File support.........." << dictionary[ "LARGE_FILE" ] << endl; @@ -3924,6 +3847,7 @@ void Configure::displayConfig() sout << "Qt GUI module support......." << dictionary[ "GUI" ] << endl; sout << "QML debugging..............." << dictionary[ "QML_DEBUG" ] << endl; sout << "DirectWrite support........." << dictionary[ "DIRECTWRITE" ] << endl; + sout << "DirectWrite 2 support......." << dictionary[ "DIRECTWRITE2" ] << endl; sout << "Use system proxies.........." << dictionary[ "SYSTEM_PROXIES" ] << endl; sout << endl; @@ -3937,12 +3861,13 @@ void Configure::displayConfig() sout << " GIF support............." << dictionary[ "GIF" ] << endl; sout << " JPEG support............" << dictionary[ "JPEG" ] << endl; sout << " PNG support............." << dictionary[ "PNG" ] << endl; + sout << " DoubleConversion........" << dictionary[ "DOUBLECONVERSION" ] << endl; sout << " FreeType support........" << dictionary[ "FREETYPE" ] << endl; sout << " Fontconfig support......" << dictionary[ "FONT_CONFIG" ] << endl; sout << " HarfBuzz support........" << dictionary[ "HARFBUZZ" ] << endl; sout << " PCRE support............" << dictionary[ "PCRE" ] << endl; sout << " ICU support............." << dictionary[ "ICU" ] << endl; - if ((platform() == QNX) || (platform() == BLACKBERRY)) { + if (platform() == QNX) { sout << " SLOG2 support..........." << dictionary[ "SLOG2" ] << endl; sout << " IMF support............." << dictionary[ "QNX_IMF" ] << endl; sout << " PPS support............." << dictionary[ "PPS" ] << endl; @@ -3957,8 +3882,6 @@ void Configure::displayConfig() sout << " Windows XP.............." << dictionary[ "STYLE_WINDOWSXP" ] << endl; sout << " Windows Vista..........." << dictionary[ "STYLE_WINDOWSVISTA" ] << endl; sout << " Fusion.................." << dictionary[ "STYLE_FUSION" ] << endl; - sout << " Windows CE.............." << dictionary[ "STYLE_WINDOWSCE" ] << endl; - sout << " Windows Mobile.........." << dictionary[ "STYLE_WINDOWSMOBILE" ] << endl; sout << endl; sout << "Sql Drivers:" << endl; @@ -3990,13 +3913,6 @@ void Configure::displayConfig() sout << "Examples installed to......." << formatConfigPath("QT_REL_INSTALL_EXAMPLES") << endl; sout << "Tests installed to.........." << formatConfigPath("QT_REL_INSTALL_TESTS") << endl; - if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith(QLatin1String("wince"))) { - sout << "Using c runtime detection..." << dictionary[ "CE_CRT" ] << endl; - sout << "Cetest support.............." << dictionary[ "CETEST" ] << endl; - sout << "Signature..................." << dictionary[ "CE_SIGNATURE"] << endl; - sout << endl; - } - if (checkAvailability("INCREDIBUILD_XGE")) sout << "Using IncrediBuild XGE......" << dictionary["INCREDIBUILD_XGE"] << endl; if (!qmakeDefines.isEmpty()) { @@ -4058,14 +3974,6 @@ void Configure::displayConfig() << "will be the same unless you are cross-compiling)." << endl << endl; } - if (dictionary["C++STD"] == "c++98") { - sout << endl - << "NOTE: The -no-c++11 / -c++-level c++98 option is deprecated." << endl - << endl - << "Qt 5.7 will require C++11 support. The options are in effect for this" << endl - << "Qt 5.6 build, but you should update your build scripts to remove the" << endl - << "option and, if necessary, upgrade your compiler." << endl; - } if (dictionary["RELEASE_TOOLS"] == "yes" && dictionary["BUILD"] != "debug" ) { sout << endl << "NOTE: -optimized-tools is not useful in -release mode." << endl; @@ -4308,7 +4216,7 @@ void Configure::generateQConfigCpp() << confStrings[1] << "#endif\n" << ";\n" << endl; - if ((platform() != WINDOWS) && (platform() != WINDOWS_CE) && (platform() != WINDOWS_RT)) + if ((platform() != WINDOWS) && (platform() != WINDOWS_RT)) tmpStream << "#define QT_CONFIGURE_SETTINGS_PATH \"" << dictionary["QT_REL_INSTALL_SETTINGS"] << "\"" << endl; tmpStream << endl @@ -4363,10 +4271,10 @@ void Configure::buildQmake() << "QT_MAJOR_VERSION = " << dictionary["VERSION_MAJOR"] << endl << "QT_MINOR_VERSION = " << dictionary["VERSION_MINOR"] << endl << "QT_PATCH_VERSION = " << dictionary["VERSION_PATCH"] << endl; - if (dictionary[ "QMAKESPEC" ] == QString("win32-g++")) { - stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\win32-g++" << endl + if (dictionary[ "QMAKESPEC" ].startsWith("win32-g++")) { + stream << "QMAKESPEC = $(SOURCE_PATH)\\mkspecs\\" << dictionary[ "QMAKESPEC" ] << endl << "EXTRA_CFLAGS = -DUNICODE -ffunction-sections" << endl - << "EXTRA_CXXFLAGS = -DUNICODE -ffunction-sections" << endl + << "EXTRA_CXXFLAGS = -std=c++11 -DUNICODE -ffunction-sections" << endl << "EXTRA_LFLAGS = -Wl,--gc-sections" << endl << "QTOBJS = qfilesystemengine_win.o \\" << endl << " qfilesystemiterator_win.o \\" << endl @@ -4544,18 +4452,17 @@ bool Configure::showLicense(QString orgLicenseFile) return true; } - bool showLgpl2 = true; + bool showGpl2 = true; QString licenseFile = orgLicenseFile; QString theLicense; if (dictionary["EDITION"] == "OpenSource") { if (platform() != WINDOWS_RT - && platform() != WINDOWS_CE && (platform() != ANDROID || dictionary["ANDROID_STYLE_ASSETS"] == "no")) { - theLicense = "GNU Lesser General Public License (LGPL) version 2.1" - "\nor the GNU Lesser General Public License (LGPL) version 3"; + theLicense = "GNU Lesser General Public License (LGPL) version 3\n" + "or the GNU General Public License (GPL) version 2"; } else { theLicense = "GNU Lesser General Public License (LGPL) version 3"; - showLgpl2 = false; + showGpl2 = false; } } else { // the first line of the license file tells us which license it is @@ -4573,9 +4480,9 @@ bool Configure::showLicense(QString orgLicenseFile) << "the " << theLicense << "." << endl << endl; if (dictionary["EDITION"] == "OpenSource") { - cout << "Type '3' to view the Lesser GNU General Public License version 3 (LGPLv3)." << endl; - if (showLgpl2) - cout << "Type 'L' to view the Lesser GNU General Public License version 2.1 (LGPLv2.1)." << endl; + cout << "Type 'L' to view the GNU Lesser General Public License version 3 (LGPLv3)." << endl; + if (showGpl2) + cout << "Type 'G' to view the GNU General Public License version 2 (GPLv2)." << endl; } else { cout << "Type '?' to view the " << theLicense << "." << endl; } @@ -4592,10 +4499,10 @@ bool Configure::showLicense(QString orgLicenseFile) return false; } else { if (dictionary["EDITION"] == "OpenSource") { - if (accept == '3') - licenseFile = orgLicenseFile + "/LICENSE.LGPLv3"; + if (accept == 'L') + licenseFile = orgLicenseFile + "/LICENSE.LGPL3"; else - licenseFile = orgLicenseFile + "/LICENSE.LGPLv21"; + licenseFile = orgLicenseFile + "/LICENSE.GPL2"; } // Get console line height, to fill the screen properly int i = 0, screenHeight = 25; // default @@ -4630,7 +4537,7 @@ void Configure::readLicense() dictionary["LICENSE FILE"] = sourcePath; bool openSource = false; - bool hasOpenSource = QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.LGPLv3") || QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.LGPLv21"); + bool hasOpenSource = QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.LGPL3") || QFile::exists(dictionary["LICENSE FILE"] + "/LICENSE.GPL2"); if (dictionary["BUILDTYPE"] == "commercial") { openSource = false; } else if (dictionary["BUILDTYPE"] == "opensource") { @@ -4716,14 +4623,10 @@ QString Configure::platformName() const default: case WINDOWS: return QStringLiteral("Qt for Windows"); - case WINDOWS_CE: - return QStringLiteral("Qt for Windows CE"); case WINDOWS_RT: return QStringLiteral("Qt for Windows Runtime"); case QNX: return QStringLiteral("Qt for QNX"); - case BLACKBERRY: - return QStringLiteral("Qt for Blackberry"); case ANDROID: return QStringLiteral("Qt for Android"); case OTHER: @@ -4736,14 +4639,11 @@ QString Configure::qpaPlatformName() const switch (platform()) { default: case WINDOWS: - case WINDOWS_CE: return QStringLiteral("windows"); case WINDOWS_RT: return QStringLiteral("winrt"); case QNX: return QStringLiteral("qnx"); - case BLACKBERRY: - return QStringLiteral("blackberry"); case ANDROID: return QStringLiteral("android"); case OTHER: @@ -4759,15 +4659,9 @@ int Configure::platform() const if ((xQMakeSpec.startsWith("winphone") || xQMakeSpec.startsWith("winrt"))) return WINDOWS_RT; - if ((qMakeSpec.startsWith("wince") || xQMakeSpec.startsWith("wince"))) - return WINDOWS_CE; - if (xQMakeSpec.contains("qnx")) return QNX; - if (xQMakeSpec.contains("blackberry")) - return BLACKBERRY; - if (xQMakeSpec.contains("android")) return ANDROID; |