aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/app/qbs-setup-qt/setupqt.cpp28
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp32
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.h1
3 files changed, 28 insertions, 33 deletions
diff --git a/src/app/qbs-setup-qt/setupqt.cpp b/src/app/qbs-setup-qt/setupqt.cpp
index f54dde429..b36272713 100644
--- a/src/app/qbs-setup-qt/setupqt.cpp
+++ b/src/app/qbs-setup-qt/setupqt.cpp
@@ -40,7 +40,6 @@
#include <QCoreApplication>
#include <QDir>
#include <QFileInfo>
-#include <QLibrary>
#include <QProcess>
#include <QRegExp>
#include <QStringList>
@@ -250,29 +249,6 @@ QtEnvironment SetupQt::fetchEnvironment(const QString &qmakePath)
throw ErrorInfo(tr("could not determine whether Qt is a frameworks build"));
}
- // determine whether we have a static build
- if (qtVersion.majorVersion >= 5) {
- qtEnvironment.staticBuild = qtEnvironment.qtConfigItems.contains(QLatin1String("static"));
- } else {
- if (qtEnvironment.frameworkBuild) {
- // there are no Qt4 static frameworks
- qtEnvironment.staticBuild = false;
- } else {
- qtEnvironment.staticBuild = true;
- QDir libdir(qtEnvironment.libraryPath);
- const QStringList coreLibFiles
- = libdir.entryList(QStringList(QLatin1String("*Core*")), QDir::Files);
- if (coreLibFiles.isEmpty())
- throw ErrorInfo(tr("Could not determine whether Qt is a static build."));
- foreach (const QString &fileName, coreLibFiles) {
- if (QLibrary::isLibrary(qtEnvironment.libraryPath + QLatin1Char('/') + fileName)) {
- qtEnvironment.staticBuild = false;
- break;
- }
- }
- }
- }
-
// determine whether Qt is built with debug, release or both
if (qtEnvironment.qtConfigItems.contains(QLatin1String("debug_and_release"))) {
qtEnvironment.buildVariant << QLatin1String("debug") << QLatin1String("release");
@@ -285,10 +261,6 @@ QtEnvironment SetupQt::fetchEnvironment(const QString &qmakePath)
qtEnvironment.buildVariant << QLatin1String("debug");
}
- // determine whether user apps require C++11
- if (qtEnvironment.qtConfigItems.contains(QLatin1String("c++11")) && qtEnvironment.staticBuild)
- qtEnvironment.configItems.append(QLatin1String("c++11"));
-
if (!QFileInfo(qtEnvironment.mkspecPath).exists())
throw ErrorInfo(tr("mkspec '%1' does not exist").arg(qtEnvironment.mkspecPath));
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp
index 33bd533b3..5278bfc9f 100644
--- a/src/lib/qtprofilesetup/qtprofilesetup.cpp
+++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp
@@ -39,6 +39,7 @@
#include <QDirIterator>
#include <QFile>
#include <QFileInfo>
+#include <QLibrary>
#include <QRegExp>
#include <QTextStream>
@@ -340,9 +341,34 @@ static QString guessMinimumWindowsVersion(const QtEnvironment &qt)
return qt.qtMajorVersion < 5 ? QLatin1String("5.0") : QLatin1String("5.1");
}
+static bool checkForStaticBuild(const QtEnvironment &qt)
+{
+ if (qt.qtMajorVersion >= 5)
+ return qt.qtConfigItems.contains(QLatin1String("static"));
+ if (qt.frameworkBuild)
+ return false; // there are no Qt4 static frameworks
+ QDir libdir(qt.libraryPath);
+ const QStringList coreLibFiles
+ = libdir.entryList(QStringList(QLatin1String("*Core*")), QDir::Files);
+ if (coreLibFiles.isEmpty())
+ throw ErrorInfo(Internal::Tr::tr("Could not determine whether Qt is a static build."));
+ foreach (const QString &fileName, coreLibFiles) {
+ if (QLibrary::isLibrary(qt.libraryPath + QLatin1Char('/') + fileName))
+ return false;
+ }
+ return true;
+}
+
ErrorInfo setupQtProfile(const QString &profileName, Settings *settings,
- const QtEnvironment &qtEnvironment)
+ const QtEnvironment &_qtEnvironment)
{
+ QtEnvironment qtEnvironment = _qtEnvironment;
+ const bool staticBuild = checkForStaticBuild(qtEnvironment);
+
+ // determine whether user apps require C++11
+ if (qtEnvironment.qtConfigItems.contains(QLatin1String("c++11")) && staticBuild)
+ qtEnvironment.configItems.append(QLatin1String("c++11"));
+
Profile profile(profileName, settings);
profile.removeProfile();
const QString settingsTemplate(QLatin1String("Qt.core.%1"));
@@ -358,9 +384,7 @@ ErrorInfo setupQtProfile(const QString &profileName, Settings *settings,
profile.setValue(settingsTemplate.arg("namespace"), qtEnvironment.qtNameSpace);
profile.setValue(settingsTemplate.arg("libInfix"), qtEnvironment.qtLibInfix);
profile.setValue(settingsTemplate.arg("buildVariant"), qtEnvironment.buildVariant);
- if (qtEnvironment.staticBuild)
- profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")),
- qtEnvironment.staticBuild);
+ profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")), staticBuild);
// Set the minimum operating system versions appropriate for this Qt version
const QString windowsVersion = guessMinimumWindowsVersion(qtEnvironment);
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.h b/src/lib/qtprofilesetup/qtprofilesetup.h
index df0c1fb1c..a2283202a 100644
--- a/src/lib/qtprofilesetup/qtprofilesetup.h
+++ b/src/lib/qtprofilesetup/qtprofilesetup.h
@@ -61,7 +61,6 @@ public:
int qtMinorVersion;
int qtPatchVersion;
bool frameworkBuild;
- bool staticBuild;
};
QBS_EXPORT ErrorInfo setupQtProfile(const QString &profileName, Settings *settings,