aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/qtprofilesetup
diff options
context:
space:
mode:
authorJoerg Bornemann <joerg.bornemann@digia.com>2014-06-02 12:22:47 +0200
committerJoerg Bornemann <joerg.bornemann@digia.com>2014-06-02 12:22:47 +0200
commit746e2a54cb9e78efc8995886f2de1d429b74fdec (patch)
treef6641b2992540d886b5cb4b7879b30e737c2a3aa /src/lib/qtprofilesetup
parent0d17c9617e1478951ea8e967937adb7d16a8e3b3 (diff)
parentb300372f7e6bb106e8b77adebaa40bfbfebebd3a (diff)
Merge remote-tracking branch 'origin/1.2'
Conflicts: qbs_version.pri share/qbs/modules/cpp/GenericGCC.qbs version.js Change-Id: I77e3d22cdc6f95bfa83c64a7fcfde735c6393d10
Diffstat (limited to 'src/lib/qtprofilesetup')
-rw-r--r--src/lib/qtprofilesetup/qtprofilesetup.cpp39
-rw-r--r--src/lib/qtprofilesetup/templates/QtModule.qbs5
-rw-r--r--src/lib/qtprofilesetup/templates/core.qbs8
-rw-r--r--src/lib/qtprofilesetup/templates/qtfunctions.js8
4 files changed, 47 insertions, 13 deletions
diff --git a/src/lib/qtprofilesetup/qtprofilesetup.cpp b/src/lib/qtprofilesetup/qtprofilesetup.cpp
index ddaec6c8e..c99406358 100644
--- a/src/lib/qtprofilesetup/qtprofilesetup.cpp
+++ b/src/lib/qtprofilesetup/qtprofilesetup.cpp
@@ -50,7 +50,8 @@ struct QtModuleInfo
QtModuleInfo(const QString &name, const QString &qbsName,
const QStringList &deps = QStringList())
: name(name), qbsName(qbsName), dependencies(deps),
- hasLibrary(!qbsName.endsWith(QLatin1String("-private")))
+ hasLibrary(!qbsName.endsWith(QLatin1String("-private"))),
+ isStaticLibrary(false)
{
const QString coreModule = QLatin1String("core");
if (qbsName != coreModule && !dependencies.contains(coreModule))
@@ -59,13 +60,25 @@ struct QtModuleInfo
QtModuleInfo() : hasLibrary(true) {}
+ QString modulePrefix; // default is empty and means "Qt".
QString name; // As in the path to the headers and ".name" in the pri files.
QString qbsName; // Lower-case version without "qt" prefix.
QStringList dependencies; // qbs names.
QStringList includePaths;
bool hasLibrary;
+ bool isStaticLibrary;
};
+static QString qtModuleName(const QtModuleInfo &module)
+{
+ if (module.name.startsWith(QLatin1String("Qt")))
+ return module.name.mid(2); // Strip off "Qt".
+ else if (module.name.startsWith(QLatin1String("QAx")))
+ return module.name.mid(1); // Strip off "Q".
+ else
+ return module.name;
+}
+
static void copyTemplateFile(const QString &fileName, const QString &targetDirectory,
const QString &profileName)
{
@@ -197,12 +210,20 @@ static void createModules(Profile &profile, Settings *settings,
<< QtModuleInfo(QLatin1String("QtTest"), QLatin1String("testlib"))
<< QtModuleInfo(QLatin1String("QtTest"), QLatin1String("testlib-private"),
QStringList() << QLatin1String("testlib"))
- << QtModuleInfo(QLatin1String("QAxContainer"), QLatin1String("axcontainer"))
- << QtModuleInfo(QLatin1String("QAxServer"), QLatin1String("axserver"))
<< QtModuleInfo(QLatin1String("QtDBus"), QLatin1String("dbus"))
<< QtModuleInfo(QLatin1String("QtDBus"), QLatin1String("dbus-private"),
QStringList() << QLatin1String("dbus"));
+ QtModuleInfo axcontainer(QLatin1String("QAxContainer"), QLatin1String("axcontainer"));
+ axcontainer.modulePrefix = QLatin1String("Q");
+ axcontainer.isStaticLibrary = true;
+ modules << axcontainer;
+
+ QtModuleInfo axserver = axcontainer;
+ axserver.name = QLatin1String("QAxServer");
+ axserver.qbsName = QLatin1String("axserver");
+ modules << axserver;
+
QtModuleInfo designerComponentsPrivate(QLatin1String("QtDesignerComponents"),
QLatin1String("designercomponents-private"),
QStringList() << QLatin1String("gui-private") << QLatin1String("designer-private"));
@@ -311,7 +332,7 @@ static void createModules(Profile &profile, Settings *settings,
.arg(profile.name(), moduleFile.fileName(), moduleFile.errorString()));
}
QByteArray content = moduleFile.readAll();
- content.replace("### name", '"' + module.name.mid(2).toUtf8() + '"'); // Strip off "Qt".
+ content.replace("### name", '"' + qtModuleName(module).toUtf8() + '"');
content.replace("### has library", module.hasLibrary ? "true" : "false");
replaceListPlaceholder(content, "### dependencies", module.dependencies);
replaceListPlaceholder(content, "### includes", module.includePaths);
@@ -337,6 +358,16 @@ static void createModules(Profile &profile, Settings *settings,
s << indent << "property string qmlImportsPath: "
<< quotedPath(qtEnvironment.qmlImportPath);
}
+ if (!module.modulePrefix.isEmpty()) {
+ if (!propertiesString.isEmpty())
+ propertiesString += "\n ";
+ propertiesString += "qtModulePrefix: \"" + module.modulePrefix.toUtf8() + '"';
+ }
+ if (module.isStaticLibrary) {
+ if (!propertiesString.isEmpty())
+ propertiesString += "\n ";
+ propertiesString += "isStaticLibrary: true";
+ }
content.replace("### special properties", propertiesString);
moduleFile.resize(0);
moduleFile.write(content);
diff --git a/src/lib/qtprofilesetup/templates/QtModule.qbs b/src/lib/qtprofilesetup/templates/QtModule.qbs
index 2b9b92df4..4445a58cf 100644
--- a/src/lib/qtprofilesetup/templates/QtModule.qbs
+++ b/src/lib/qtprofilesetup/templates/QtModule.qbs
@@ -14,9 +14,12 @@ Module {
property string qtLibInfix: Qt.core.libInfix
property string repository: Qt.core.versionMajor === 5 ? 'qtbase' : undefined
property string includeDirName: qtModulePrefix + qtModuleName
- property string internalLibraryName: QtFunctions.getQtLibraryName(qtModuleName + qtLibInfix, Qt.core, qbs, qtModulePrefix)
+ property string internalLibraryName: QtFunctions.getQtLibraryName(qtModuleName + qtLibInfix,
+ Qt.core, qbs, isStaticLibrary,
+ qtModulePrefix)
property string qtVersion: Qt.core.version
property bool hasLibrary: true
+ property bool isStaticLibrary: false
Properties {
condition: qtModuleName != undefined
diff --git a/src/lib/qtprofilesetup/templates/core.qbs b/src/lib/qtprofilesetup/templates/core.qbs
index 35ca1b8fd..c195234a6 100644
--- a/src/lib/qtprofilesetup/templates/core.qbs
+++ b/src/lib/qtprofilesetup/templates/core.qbs
@@ -78,22 +78,22 @@ Module {
cpp.dynamicLibraries: {
var libs = [];
if (!frameworkBuild)
- libs=[QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs)];
+ libs=[QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs, staticBuild)];
if (qbs.targetOS.contains('ios') && staticBuild)
libs = libs.concat(["z", "m",
- QtFunctions.getQtLibraryName("PlatformSupport", qtcore, qbs)]);
+ QtFunctions.getQtLibraryName("PlatformSupport", qtcore, qbs, true)]);
if (libs.length === 0)
return undefined;
return libs;
}
cpp.linkerFlags: ((qbs.targetOS.contains('ios') && staticBuild) ?
["-force_load", pluginPath + "/platforms/" +
- QtFunctions.getPlatformLibraryName("libqios", qtcore, qbs) + ".a"] : undefined)
+ QtFunctions.getPlatformLibraryName("libqios", qtcore, qbs, true) + ".a"] : undefined)
cpp.frameworkPaths: frameworkBuild ? [libPath] : undefined
cpp.frameworks: {
var frameworks = [];
if (frameworkBuild)
- frameworks = [QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs)]
+ frameworks = [QtFunctions.getQtLibraryName('Core' + libInfix, qtcore, qbs, false)]
if (qbs.targetOS.contains('ios') && staticBuild)
frameworks = frameworks.concat(["Foundation", "CoreFoundation"]);
if (frameworks.length === 0)
diff --git a/src/lib/qtprofilesetup/templates/qtfunctions.js b/src/lib/qtprofilesetup/templates/qtfunctions.js
index 144955d5e..8a667ee58 100644
--- a/src/lib/qtprofilesetup/templates/qtfunctions.js
+++ b/src/lib/qtprofilesetup/templates/qtfunctions.js
@@ -1,11 +1,11 @@
// helper functions for the Qt modules
-function getPlatformLibraryName(name, qtcore, qbs)
+function getPlatformLibraryName(name, qtcore, qbs, isStaticLibrary)
{
var libName = name;
if (qbs.targetOS.contains('windows')) {
libName += (qbs.enableDebugCode ? 'd' : '');
- if (qtcore.versionMajor < 5)
+ if (!isStaticLibrary && qtcore.versionMajor < 5)
libName += qtcore.versionMajor;
if (!qbs.toolchain.contains("mingw"))
libName += '.lib';
@@ -18,11 +18,11 @@ function getPlatformLibraryName(name, qtcore, qbs)
return libName;
}
-function getQtLibraryName(qtModule, qtcore, qbs, prefix)
+function getQtLibraryName(qtModule, qtcore, qbs, isStaticLibrary, prefix)
{
var libName = (prefix === undefined) ? "Qt" : prefix;
if (qtcore.versionMajor >= 5 && !qtcore.frameworkBuild)
libName += qtcore.versionMajor;
libName += qtModule;
- return getPlatformLibraryName(libName, qtcore, qbs);
+ return getPlatformLibraryName(libName, qtcore, qbs, isStaticLibrary);
}