From e703ca1c84b0f51f3c9d82bdfe7bc646afcb9582 Mon Sep 17 00:00:00 2001 From: Joerg Bornemann Date: Mon, 18 May 2015 17:51:39 +0200 Subject: fix setup-qt for static builds of Qt4 Treat every Qt4 module as static library if the Qt build is static. Change-Id: If31f45c775aab583a0bfb68345c9d5b977d8de97 Task-number: QBS-804 Reviewed-by: Christian Kandeler --- src/lib/qtprofilesetup/qtenvironment.h | 6 ++++++ src/lib/qtprofilesetup/qtmoduleinfo.cpp | 8 ++++++-- src/lib/qtprofilesetup/qtprofilesetup.cpp | 6 +++--- 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src/lib/qtprofilesetup') diff --git a/src/lib/qtprofilesetup/qtenvironment.h b/src/lib/qtprofilesetup/qtenvironment.h index b8eeee16e..f7b56c414 100644 --- a/src/lib/qtprofilesetup/qtenvironment.h +++ b/src/lib/qtprofilesetup/qtenvironment.h @@ -38,6 +38,11 @@ namespace qbs { class QBS_EXPORT QtEnvironment { public: + QtEnvironment() + : staticBuild(false), frameworkBuild(false) + { + } + QString installPrefixPath; QString libraryPath; QString includePath; @@ -62,6 +67,7 @@ public: int qtMajorVersion; int qtMinorVersion; int qtPatchVersion; + bool staticBuild; bool frameworkBuild; }; diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp index d190ae64a..87db445b7 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp @@ -472,8 +472,12 @@ QList allQt4Modules(const QtEnvironment &qtEnvironment) } QSet nonExistingPrlFiles; - for (int i = 0; i < modules.count(); ++i) - modules[i].setupLibraries(qtEnvironment, &nonExistingPrlFiles); + for (int i = 0; i < modules.count(); ++i) { + QtModuleInfo &module = modules[i]; + if (qtEnvironment.staticBuild) + module.isStaticLibrary = true; + module.setupLibraries(qtEnvironment, &nonExistingPrlFiles); + } replaceQtLibNamesWithFilePath(&modules, qtEnvironment); return modules; diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index 176bcce01..de5240a85 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -303,10 +303,10 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, const QtEnvironment &_qtEnvironment) { QtEnvironment qtEnvironment = _qtEnvironment; - const bool staticBuild = checkForStaticBuild(qtEnvironment); + qtEnvironment.staticBuild = checkForStaticBuild(qtEnvironment); // determine whether user apps require C++11 - if (qtEnvironment.qtConfigItems.contains(QLatin1String("c++11")) && staticBuild) + if (qtEnvironment.qtConfigItems.contains(QLatin1String("c++11")) && qtEnvironment.staticBuild) qtEnvironment.configItems.append(QLatin1String("c++11")); Profile profile(profileName, settings); @@ -326,7 +326,7 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, profile.setValue(settingsTemplate.arg(QLatin1String("buildVariant")), qtEnvironment.buildVariant); // TODO: Remove in 1.5 profile.setValue(settingsTemplate.arg(QLatin1String("availableBuildVariants")), qtEnvironment.buildVariant); - profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")), staticBuild); + profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")), qtEnvironment.staticBuild); // Set the minimum operating system versions appropriate for this Qt version const QString windowsVersion = guessMinimumWindowsVersion(qtEnvironment); -- cgit v1.2.3