diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2014-07-04 15:51:01 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-07-07 14:00:52 +0200 |
commit | ea9cadb04b488d689b005924c456b0cf54e2160f (patch) | |
tree | 119584885f3713af76eb6a7db005a7f6e55edad0 /src | |
parent | cc446ec06dcbb0a4570005c5d30bf94451861500 (diff) |
qtprofilesetup: Determine Qt module library name at setup time.
As opposed to calculating it in JavaScript inside the module.
Change-Id: I4d11d57a45098d7f8ac06cf60f8d8cab8b11feab
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@digia.com>
Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/qtprofilesetup/qtmoduleinfo.cpp | 8 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtmoduleinfo.h | 1 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 4 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/QtModule.qbs | 14 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/core.qbs | 10 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/gui.qbs | 2 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/module.qbs | 2 |
7 files changed, 31 insertions, 10 deletions
diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.cpp b/src/lib/qtprofilesetup/qtmoduleinfo.cpp index d304473fc..302991e80 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.cpp +++ b/src/lib/qtprofilesetup/qtmoduleinfo.cpp @@ -98,6 +98,14 @@ QString QtModuleInfo::libraryBaseName(const QtEnvironment &qtEnvironment, return libBaseName(libName, isStaticLibrary, debugBuild, qtEnvironment); } +QString QtModuleInfo::libNameForLinker(const QtEnvironment &qtEnvironment, bool debugBuild) const +{ + QString libName = libraryBaseName(qtEnvironment, debugBuild); + if (qtEnvironment.mkspecName.contains(QLatin1String("msvc"))) + libName += QLatin1String(".lib"); + return libName; +} + void QtModuleInfo::setupLibraries(const QtEnvironment &qtEnv) { setupLibraries(qtEnv, true); diff --git a/src/lib/qtprofilesetup/qtmoduleinfo.h b/src/lib/qtprofilesetup/qtmoduleinfo.h index 5b6f5e132..4bb79fd11 100644 --- a/src/lib/qtprofilesetup/qtmoduleinfo.h +++ b/src/lib/qtprofilesetup/qtmoduleinfo.h @@ -48,6 +48,7 @@ public: QString frameworkHeadersPath(const QtEnvironment &qtEnvironment) const; QStringList qt4ModuleIncludePaths(const QtEnvironment &qtEnvironment) const; QString libraryBaseName(const QtEnvironment &qtEnvironment, bool debugBuild) const; + QString libNameForLinker(const QtEnvironment &qtEnvironment, bool debugBuild) const; void setupLibraries(const QtEnvironment &qtEnv); QString modulePrefix; // default is empty and means "Qt". diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp index bb91dec34..0567a3cc7 100644 --- a/src/lib/qtprofilesetup/qtprofilesetup.cpp +++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp @@ -108,6 +108,10 @@ static void replaceSpecialValues(const QString &filePath, const Profile &profile content.replace("@frameworkPathsRelease@", utf8JSLiteral(module.frameworkPathsRelease)); content.replace("@frameworksDebug@", utf8JSLiteral(module.frameworksDebug)); content.replace("@frameworksRelease@", utf8JSLiteral(module.frameworksRelease)); + content.replace("@libNameForLinkerDebug@", + utf8JSLiteral(module.libNameForLinker(qtEnvironment, true))); + content.replace("@libNameForLinkerRelease@", + utf8JSLiteral(module.libNameForLinker(qtEnvironment, false))); QByteArray propertiesString; QByteArray compilerDefines = utf8JSLiteral(module.compilerDefines); if (module.qbsName == QLatin1String("declarative") diff --git a/src/lib/qtprofilesetup/templates/QtModule.qbs b/src/lib/qtprofilesetup/templates/QtModule.qbs index 35162f5a7..245b70a6b 100644 --- a/src/lib/qtprofilesetup/templates/QtModule.qbs +++ b/src/lib/qtprofilesetup/templates/QtModule.qbs @@ -1,6 +1,5 @@ import qbs 1.0 import qbs.FileInfo -import 'qtfunctions.js' as QtFunctions Module { Depends { name: "cpp" } @@ -13,9 +12,10 @@ Module { property path libPath: Qt.core.libPath property string qtLibInfix: Qt.core.libInfix property string includeDirName: qtModulePrefix + qtModuleName - property string internalLibraryName: QtFunctions.getQtLibraryName(qtModuleName + qtLibInfix, - Qt.core, qbs, isStaticLibrary, - qtModulePrefix) + property string libNameForLinkerDebug + property string libNameForLinkerRelease + property string libNameForLinker: qbs.buildVariant === "debug" + ? libNameForLinkerDebug : libNameForLinkerRelease property string qtVersion: Qt.core.version property bool hasLibrary: true property bool isStaticLibrary: false @@ -43,11 +43,11 @@ Module { Properties { condition: qtModuleName != undefined && hasLibrary - cpp.staticLibraries: staticLibs.concat(isStaticLibrary ? [internalLibraryName] : []) + cpp.staticLibraries: staticLibs.concat(isStaticLibrary ? [libNameForLinker] : []) cpp.dynamicLibraries: dynamicLibs.concat(!isStaticLibrary && !Qt.core.frameworkBuild - ? [internalLibraryName] : []) + ? [libNameForLinker] : []) cpp.frameworks: mFrameworks.concat(!isStaticLibrary && Qt.core.frameworkBuild - ? [internalLibraryName] : []) + ? [libNameForLinker] : []) cpp.frameworkPaths: mFrameworkPaths } } diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs index 330ecd229..638147521 100644 --- a/src/lib/qtprofilesetup/templates/core.qbs +++ b/src/lib/qtprofilesetup/templates/core.qbs @@ -52,6 +52,10 @@ Module { property stringList frameworkPathsRelease: @frameworkPathsRelease@ property stringList coreFrameworkPaths: qbs.buildVariant === "debug" ? frameworkPathsDebug : frameworkPathsRelease + property string libNameForLinkerDebug: @libNameForLinkerDebug@ + property string libNameForLinkerRelease: @libNameForLinkerRelease@ + property string libNameForLinker: qbs.buildVariant === "debug" + ? libNameForLinkerDebug : libNameForLinkerRelease coreLibPaths: @libraryPaths@ @@ -89,7 +93,7 @@ Module { cpp.staticLibraries: { var libs = []; if (staticBuild) - libs.push(QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs, staticBuild)); + libs.push(libNameForLinker); if (qbs.targetOS.contains('windows') && !product.consoleApplication) libs.push("qtmain" + libInfix + (cpp.debugInformation ? "d" : "") + (!qbs.toolchain.contains("mingw") ? ".lib" : "")); libs = libs.concat(staticLibs); @@ -98,7 +102,7 @@ Module { cpp.dynamicLibraries: { var libs = []; if (!staticBuild && !frameworkBuild) - libs=[QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs, staticBuild)]; + libs.push(libNameForLinker); if (qbs.targetOS.contains('ios') && staticBuild) libs = libs.concat(["z", "m", QtFunctions.getQtLibraryName("PlatformSupport", qtcore, qbs, true)]); @@ -112,7 +116,7 @@ Module { cpp.frameworks: { var frameworks = coreFrameworks if (frameworkBuild) - frameworks.push(QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs, false)) + frameworks.push(libNameForLinker); if (qbs.targetOS.contains('ios') && staticBuild) frameworks = frameworks.concat(["Foundation", "CoreFoundation"]); if (frameworks.length === 0) diff --git a/src/lib/qtprofilesetup/templates/gui.qbs b/src/lib/qtprofilesetup/templates/gui.qbs index ea0908f28..7e9dbdd06 100644 --- a/src/lib/qtprofilesetup/templates/gui.qbs +++ b/src/lib/qtprofilesetup/templates/gui.qbs @@ -42,6 +42,8 @@ QtModule { frameworksRelease: @frameworksRelease@ frameworkPathsDebug: @frameworkPathsDebug@ frameworkPathsRelease: @frameworkPathsRelease@ + libNameForLinkerDebug: @libNameForLinkerDebug@ + libNameForLinkerRelease: @libNameForLinkerRelease@ cpp.defines: @defines@ cpp.includePaths: @includes@ diff --git a/src/lib/qtprofilesetup/templates/module.qbs b/src/lib/qtprofilesetup/templates/module.qbs index 893fd27fa..8e791c2ad 100644 --- a/src/lib/qtprofilesetup/templates/module.qbs +++ b/src/lib/qtprofilesetup/templates/module.qbs @@ -16,6 +16,8 @@ QtModule { frameworksRelease: @frameworksRelease@ frameworkPathsDebug: @frameworkPathsDebug@ frameworkPathsRelease: @frameworkPathsRelease@ + libNameForLinkerDebug: @libNameForLinkerDebug@ + libNameForLinkerRelease: @libNameForLinkerRelease@ cpp.defines: @defines@ cpp.includePaths: @includes@ cpp.libraryPaths: @libraryPaths@ |