aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-10-19 10:47:29 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2018-10-19 10:47:29 +0200
commit89d5e584db040bcccab9d8c02479e437f3e37530 (patch)
tree4a7a6a39c681c3a18b83dac296bfe554ab921df1
parent6ef8f37ac8cf7c4b4982b53477c7f0e73e197394 (diff)
parentb9e5dd581a06a97d45260fa9b393b135a9f1ad8f (diff)
Merge 1.12 into master
-rw-r--r--src/app/qbs-setup-qt/setupqt.cpp10
-rw-r--r--src/lib/qtprofilesetup/qtenvironment.h14
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp14
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.h2
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.pro2
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 \