aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-07-04 15:51:01 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-07-07 14:00:52 +0200
commitea9cadb04b488d689b005924c456b0cf54e2160f (patch)
tree119584885f3713af76eb6a7db005a7f6e55edad0 /src
parentcc446ec06dcbb0a4570005c5d30bf94451861500 (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.cpp8
-rw-r--r--src/lib/qtprofilesetup/qtmoduleinfo.h1
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp4
-rw-r--r--src/lib/qtprofilesetup/templates/QtModule.qbs14
-rw-r--r--src/lib/qtprofilesetup/templates/core.qbs10
-rw-r--r--src/lib/qtprofilesetup/templates/gui.qbs2
-rw-r--r--src/lib/qtprofilesetup/templates/module.qbs2
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@