diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-10-06 19:18:16 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@digia.com> | 2014-10-07 12:07:15 +0200 |
commit | b7e42fbe02d6105c5e449e90f74ef16f30500440 (patch) | |
tree | bf1cfd520371fef4582044ddab3af84ff9dedd11 /src/lib/qtprofilesetup | |
parent | 2202f8b65c6eb3c1fc4784bdc76f758578856432 (diff) |
Make Qt build variants logic more sensible.v1.3.2
We no longer force the Qt build variant to match the build variant
of the application linking against it (except for MSVC, where that
is required).
Change-Id: Ie2c80fbb0d688cdcbab57ad638aaccbbd6988a22
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src/lib/qtprofilesetup')
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 3 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/QtModule.qbs | 14 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/core.qbs | 35 |
3 files changed, 36 insertions, 16 deletions
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index 65e100f57..3b924616f 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -296,7 +296,8 @@ void doSetupQtProfile(const QString &profileName, Settings *settings, profile.setValue(settingsTemplate.arg("docPath"), qtEnvironment.documentationPath); profile.setValue(settingsTemplate.arg("version"), qtEnvironment.qtVersion); profile.setValue(settingsTemplate.arg("libInfix"), qtEnvironment.qtLibInfix); - profile.setValue(settingsTemplate.arg("buildVariant"), qtEnvironment.buildVariant); + profile.setValue(settingsTemplate.arg("buildVariant"), qtEnvironment.buildVariant); // TODO: Remove in 1.5 + profile.setValue(settingsTemplate.arg("availableBuildVariants"), qtEnvironment.buildVariant); profile.setValue(settingsTemplate.arg(QLatin1String("staticBuild")), staticBuild); // Set the minimum operating system versions appropriate for this Qt version diff --git a/src/lib/qtprofilesetup/templates/QtModule.qbs b/src/lib/qtprofilesetup/templates/QtModule.qbs index 6c088555d..159568bca 100644 --- a/src/lib/qtprofilesetup/templates/QtModule.qbs +++ b/src/lib/qtprofilesetup/templates/QtModule.qbs @@ -12,11 +12,11 @@ Module { property string qtLibInfix: Qt.core.libInfix property string libNameForLinkerDebug property string libNameForLinkerRelease - property string libNameForLinker: qbs.buildVariant === "debug" + property string libNameForLinker: Qt.core.qtBuildVariant === "debug" ? libNameForLinkerDebug : libNameForLinkerRelease property string libFilePathDebug property string libFilePathRelease - property string libFilePath: qbs.buildVariant === "debug" + property string libFilePath: Qt.core.qtBuildVariant === "debug" ? libFilePathDebug : libFilePathRelease property string qtVersion: Qt.core.version property bool hasLibrary: true @@ -29,19 +29,19 @@ Module { property stringList dynamicLibsRelease property stringList linkerFlagsDebug property stringList linkerFlagsRelease - property stringList staticLibs: qbs.buildVariant === "debug" + property stringList staticLibs: Qt.core.qtBuildVariant === "debug" ? staticLibsDebug : staticLibsRelease - property stringList dynamicLibs: qbs.buildVariant === "debug" + property stringList dynamicLibs: Qt.core.qtBuildVariant === "debug" ? dynamicLibsDebug : dynamicLibsRelease property stringList frameworksDebug property stringList frameworksRelease property stringList frameworkPathsDebug property stringList frameworkPathsRelease - property stringList mFrameworks: qbs.buildVariant === "debug" + property stringList mFrameworks: Qt.core.qtBuildVariant === "debug" ? frameworksDebug : frameworksRelease - property stringList mFrameworkPaths: qbs.buildVariant === "debug" + property stringList mFrameworkPaths: Qt.core.qtBuildVariant === "debug" ? frameworkPathsDebug: frameworkPathsRelease - cpp.linkerFlags: qbs.buildVariant === "debug" + cpp.linkerFlags: Qt.core.qtBuildVariant === "debug" ? linkerFlagsDebug : linkerFlagsRelease Properties { diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs index aefd9c48d..9dd51bd53 100644 --- a/src/lib/qtprofilesetup/templates/core.qbs +++ b/src/lib/qtprofilesetup/templates/core.qbs @@ -30,34 +30,42 @@ Module { property int versionPatch: versionParts[2] property bool frameworkBuild property bool staticBuild - property stringList buildVariant + + property stringList availableBuildVariants + property stringList buildVariant // TODO: Remove in 1.5 + property string qtBuildVariant: { + if (availableBuildVariants.contains(qbs.buildVariant)) + return qbs.buildVariant; + return availableBuildVariants.length > 0 ? availableBuildVariants[0] : ""; + } + property stringList staticLibsDebug: @staticLibsDebug@ property stringList staticLibsRelease: @staticLibsRelease@ property stringList dynamicLibsDebug: @dynamicLibsDebug@ property stringList dynamicLibsRelease: @dynamicLibsRelease@ - property stringList staticLibs: qbs.buildVariant === "debug" + property stringList staticLibs: qtBuildVariant === "debug" ? staticLibsDebug : staticLibsRelease - property stringList dynamicLibs: qbs.buildVariant === "debug" + property stringList dynamicLibs: qtBuildVariant === "debug" ? dynamicLibsDebug : dynamicLibsRelease property stringList linkerFlagsDebug: @linkerFlagsDebug@ property stringList linkerFlagsRelease: @linkerFlagsRelease@ - property stringList coreLinkerFlags: qbs.buildVariant === "debug" + property stringList coreLinkerFlags: qtBuildVariant === "debug" ? linkerFlagsDebug : linkerFlagsRelease property stringList frameworksDebug: @frameworksDebug@ property stringList frameworksRelease: @frameworksRelease@ - property stringList coreFrameworks: qbs.buildVariant === "debug" + property stringList coreFrameworks: qtBuildVariant === "debug" ? frameworksDebug : frameworksRelease property stringList frameworkPathsDebug: @frameworkPathsDebug@ property stringList frameworkPathsRelease: @frameworkPathsRelease@ - property stringList coreFrameworkPaths: qbs.buildVariant === "debug" + property stringList coreFrameworkPaths: qtBuildVariant === "debug" ? frameworkPathsDebug : frameworkPathsRelease property string libNameForLinkerDebug: @libNameForLinkerDebug@ property string libNameForLinkerRelease: @libNameForLinkerRelease@ - property string libNameForLinker: qbs.buildVariant === "debug" + property string libNameForLinker: qtBuildVariant === "debug" ? libNameForLinkerDebug : libNameForLinkerRelease property string libFilePathDebug: @libFilePathDebug@ property string libFilePathRelease: @libFilePathRelease@ - property string libFilePath: qbs.buildVariant === "debug" + property string libFilePath: qtBuildVariant === "debug" ? libFilePathDebug : libFilePathRelease coreLibPaths: @libraryPaths@ @@ -168,6 +176,17 @@ Module { validator.addRangeValidator("versionPatch", versionPatch, 0); validator.validate(); + + if (availableBuildVariants.length === 0) + throw "The Qt installation supports no build variants."; + if (!availableBuildVariants.contains(qtBuildVariant)) { + throw "Qt.core.qtBuildVariant '" + qtBuildVariant + + "' is not supported by this Qt installation."; + } + if (qbs.toolchain.contains("msvc") && qtBuildVariant !== qbs.buildVariant) { + throw "Qt.core.qtBuildVariant is '" + qtBuildVariant + "', but qbs.buildVariant is '" + + qbs.buildVariant + "', which is not allowed when using MSVC."; + } } setupRunEnvironment: { |