diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-10 13:46:03 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-10-18 09:02:16 +0000 |
commit | d658f63d699f2fbb939c59ad6c39e493011de99e (patch) | |
tree | 087c14eab70b057aaa7dddd5f8af0555f4022262 /src/lib/qtprofilesetup | |
parent | fa5e42f915211637da0d6461c9764962ee47f923 (diff) |
qtprofilesetup: Understand the mkspec prefix "mingw"
E.g. Fedora provides "mingw-w64-g++".
Change-Id: Ife197baa8ddd1b364025056b1ec7895a0b60d5dc
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'src/lib/qtprofilesetup')
-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 |
3 files changed, 22 insertions, 8 deletions
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 adeeef7bc..7b8b9c49b 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -430,8 +430,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)); @@ -648,7 +647,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") @@ -692,7 +691,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; @@ -811,11 +810,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-"))) @@ -855,7 +855,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); |