diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-19 10:47:29 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-19 10:47:29 +0200 |
commit | 89d5e584db040bcccab9d8c02479e437f3e37530 (patch) | |
tree | 4a7a6a39c681c3a18b83dac296bfe554ab921df1 | |
parent | 6ef8f37ac8cf7c4b4982b53477c7f0e73e197394 (diff) | |
parent | b9e5dd581a06a97d45260fa9b393b135a9f1ad8f (diff) |
Merge 1.12 into master
Change-Id: Id6014173f52d07f1e7c15b19ddf3876bc95708a5
-rw-r--r-- | src/app/qbs-setup-qt/setupqt.cpp | 10 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtenvironment.h | 14 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 14 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.h | 2 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.pro | 2 |
5 files changed, 29 insertions, 13 deletions
diff --git a/src/app/qbs-setup-qt/setupqt.cpp b/src/app/qbs-setup-qt/setupqt.cpp index 097c9381a..f54411b48 100644 --- a/src/app/qbs-setup-qt/setupqt.cpp +++ b/src/app/qbs-setup-qt/setupqt.cpp @@ -337,11 +337,12 @@ template <typename T> bool areProfilePropertiesIncompatible(const T &set1, const return set1.size() > 0 && set2.size() > 0 && set1 != set2; } -static QStringList qbsToolchainFromQtMkspec(const QString &mkspec) +static QStringList qbsToolchainFromQtMkspec(const QtEnvironment &qtEnv) { + const QString mkspec = qtEnv.mkspecName; if (mkspec.contains(QLatin1String("-msvc"))) return QStringList() << QLatin1String("msvc"); - if (mkspec == QLatin1String("win32-g++")) + if (qtEnv.isForMinGw()) return QStringList() << QLatin1String("mingw") << QLatin1String("gcc"); if (mkspec.contains(QLatin1String("-clang"))) @@ -365,7 +366,7 @@ static Match compatibility(const EnhancedQtEnvironment &env, const Profile &tool const auto toolchainNames = Internal::Set<QString>::fromList( toolchainProfile.value(QLatin1String("qbs.toolchain")).toStringList()); const auto mkspecToolchainNames = Internal::Set<QString>::fromList( - qbsToolchainFromQtMkspec(env.mkspecName)); + qbsToolchainFromQtMkspec(env)); if (areProfilePropertiesIncompatible(toolchainNames, mkspecToolchainNames)) { auto intersection = toolchainNames; intersection.intersect(mkspecToolchainNames); @@ -377,8 +378,7 @@ static Match compatibility(const EnhancedQtEnvironment &env, const Profile &tool const auto targetPlatform = toolchainProfile.value( QLatin1String("qbs.targetPlatform")).toString(); - if (!targetPlatform.isEmpty() - && targetPlatform != qbsTargetPlatformFromQtMkspec(env.mkspecName)) + if (!targetPlatform.isEmpty() && targetPlatform != qbsTargetPlatformFromQtMkspec(env)) return MatchNone; const QString toolchainArchitecture = toolchainProfile.value(QLatin1String("qbs.architecture")) diff --git a/src/lib/qtprofilesetup/qtenvironment.h b/src/lib/qtprofilesetup/qtenvironment.h index 4fb5a03ee..72725cfae 100644 --- a/src/lib/qtprofilesetup/qtenvironment.h +++ b/src/lib/qtprofilesetup/qtenvironment.h @@ -48,6 +48,9 @@ namespace qbs { class QBS_EXPORT QtEnvironment { public: + inline bool targetsDesktopWindows() const; + inline bool isForMinGw() const; + QString installPrefixPath; QString libraryPath; QString includePath; @@ -82,6 +85,17 @@ public: bool frameworkBuild = false; }; +bool QtEnvironment::targetsDesktopWindows() const +{ + return mkspecName.startsWith(QLatin1String("win32-")) || isForMinGw(); +} + +bool QtEnvironment::isForMinGw() const +{ + return mkspecName.startsWith(QLatin1String("win32-g++")) + || mkspecName.startsWith(QLatin1String("mingw")); +} + } // namespace qbs #endif // Include guard. diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index 17e8d0cc3..3bc21b279 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -432,8 +432,7 @@ static void replaceSpecialValues(QByteArray *content, const Profile &profile, { QHash<QByteArray, QByteArray> dict; dict.insert("archs", utf8JSLiteral(extractQbsArchs(module, qtEnvironment))); - dict.insert("targetPlatform", utf8JSLiteral(qbsTargetPlatformFromQtMkspec( - qtEnvironment.mkspecName))); + dict.insert("targetPlatform", utf8JSLiteral(qbsTargetPlatformFromQtMkspec(qtEnvironment))); dict.insert("config", utf8JSLiteral(qtEnvironment.configItems)); dict.insert("qtConfig", utf8JSLiteral(qtEnvironment.qtConfigItems)); dict.insert("binPath", utf8JSLiteral(qtEnvironment.binaryPath)); @@ -650,7 +649,7 @@ static QString guessMinimumWindowsVersion(const QtEnvironment &qt) if (qt.mkspecName.startsWith(QLatin1String("winrt-"))) return QLatin1String("10.0"); - if (!qt.mkspecName.startsWith(QLatin1String("win32-"))) + if (!qt.targetsDesktopWindows()) return QString(); if (qt.architecture == QLatin1String("x86_64") @@ -694,7 +693,7 @@ static QStringList fillEntryPointLibs(const QtEnvironment &qtEnvironment, const { QStringList result; QString qtmain = qtEnvironment.libraryPath + QLatin1Char('/'); - const bool isMinGW = qtEnvironment.mkspecName.startsWith(QLatin1String("win32-g++")); + const bool isMinGW = qtEnvironment.isForMinGw(); if (isMinGW) qtmain += QLatin1String("lib"); qtmain += QLatin1String("qtmain") + qtEnvironment.qtLibInfix; @@ -813,11 +812,12 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, createModules(profile, settings, qtEnvironment); } -QString qbsTargetPlatformFromQtMkspec(const QString &mkspec) +QString qbsTargetPlatformFromQtMkspec(const QtEnvironment &qtEnv) { + QString mkspec = qtEnv.mkspecName; int idx = mkspec.lastIndexOf(QLatin1Char('/')); if (idx != -1) - return qbsTargetPlatformFromQtMkspec(mkspec.mid(idx + 1)); + mkspec = mkspec.mid(idx + 1); if (mkspec.startsWith(QLatin1String("aix-"))) return QLatin1String("aix"); if (mkspec.startsWith(QLatin1String("android-"))) @@ -857,7 +857,7 @@ QString qbsTargetPlatformFromQtMkspec(const QString &mkspec) return QLatin1String("solaris"); if (mkspec.startsWith(QLatin1String("vxworks-"))) return QLatin1String("vxworks"); - if (mkspec.startsWith(QLatin1String("win32-")) || mkspec.startsWith(QLatin1String("winrt-"))) + if (qtEnv.targetsDesktopWindows() || mkspec.startsWith(QLatin1String("winrt-"))) return QLatin1String("windows"); return QString(); } diff --git a/src/lib/qtprofilesetup/qtprofilesetup.h b/src/lib/qtprofilesetup/qtprofilesetup.h index be6642842..f28733a1b 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.h +++ b/src/lib/qtprofilesetup/qtprofilesetup.h @@ -49,7 +49,7 @@ namespace qbs { class ErrorInfo; class Settings; -QBS_EXPORT QString qbsTargetPlatformFromQtMkspec(const QString &mkspec); +QBS_EXPORT QString qbsTargetPlatformFromQtMkspec(const QtEnvironment &qtEnv); QBS_EXPORT ErrorInfo setupQtProfile(const QString &profileName, Settings *settings, const QtEnvironment &qtEnvironment); diff --git a/src/lib/qtprofilesetup/qtprofilesetup.pro b/src/lib/qtprofilesetup/qtprofilesetup.pro index a6284727a..a32ff97aa 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.pro +++ b/src/lib/qtprofilesetup/qtprofilesetup.pro @@ -2,6 +2,8 @@ TARGET = qbsqtprofilesetup include(../library.pri) include(../corelib/use_corelib.pri) +CONFIG -= qtquickcompiler + HEADERS = \ qtenvironment.h \ qtmoduleinfo.h \ |