diff options
author | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-06-02 12:22:47 +0200 |
---|---|---|
committer | Joerg Bornemann <joerg.bornemann@digia.com> | 2014-06-02 12:22:47 +0200 |
commit | 746e2a54cb9e78efc8995886f2de1d429b74fdec (patch) | |
tree | f6641b2992540d886b5cb4b7879b30e737c2a3aa /src | |
parent | 0d17c9617e1478951ea8e967937adb7d16a8e3b3 (diff) | |
parent | b300372f7e6bb106e8b77adebaa40bfbfebebd3a (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')
-rw-r--r-- | src/lib/corelib/api/api.pri | 7 | ||||
-rw-r--r-- | src/lib/corelib/buildgraph/jscommandexecutor.cpp | 8 | ||||
-rw-r--r-- | src/lib/corelib/corelib.qbs | 2 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/qtprofilesetup.cpp | 39 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/QtModule.qbs | 5 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/core.qbs | 8 | ||||
-rw-r--r-- | src/lib/qtprofilesetup/templates/qtfunctions.js | 8 |
7 files changed, 58 insertions, 19 deletions
diff --git a/src/lib/corelib/api/api.pri b/src/lib/corelib/api/api.pri index e1cc31a36..2259face1 100644 --- a/src/lib/corelib/api/api.pri +++ b/src/lib/corelib/api/api.pri @@ -23,7 +23,12 @@ SOURCES += \ $$PWD/qmljsrewriter.cpp !qbs_no_dev_install { - api_headers.files = $$PWD/projectdata.h $$PWD/runenvironment.h $$PWD/jobs.h $$PWD/project.h + api_headers.files = \ + $$PWD/jobs.h \ + $$PWD/languageinfo.h \ + $$PWD/project.h \ + $$PWD/projectdata.h \ + $$PWD/runenvironment.h api_headers.path = $${QBS_INSTALL_PREFIX}/include/qbs/api INSTALLS += api_headers } diff --git a/src/lib/corelib/buildgraph/jscommandexecutor.cpp b/src/lib/corelib/buildgraph/jscommandexecutor.cpp index e2d1e14e4..cc7eb715b 100644 --- a/src/lib/corelib/buildgraph/jscommandexecutor.cpp +++ b/src/lib/corelib/buildgraph/jscommandexecutor.cpp @@ -181,14 +181,14 @@ void JsCommandExecutor::onJavaScriptCommandFinished() { m_running = false; const JavaScriptCommandResult &result = m_objectInThread->result(); + ErrorInfo err; if (!result.success) { logger().qbsDebug() << "JS context:\n" << jsCommand()->properties(); logger().qbsDebug() << "JS code:\n" << jsCommand()->sourceCode(); - QString msg = tr("Error while executing JavaScriptCommand:\n"); - msg += result.errorMessage; - emit finished(ErrorInfo(msg, result.errorLocation)); + err.append(tr("Error while executing JavaScriptCommand:"), result.errorLocation); + err.append(result.errorMessage); } - emit finished(); + emit finished(err); } const JavaScriptCommand *JsCommandExecutor::jsCommand() const diff --git a/src/lib/corelib/corelib.qbs b/src/lib/corelib/corelib.qbs index a7214f306..697c764c6 100644 --- a/src/lib/corelib/corelib.qbs +++ b/src/lib/corelib/corelib.qbs @@ -37,7 +37,6 @@ QbsLibrary { "internaljobs.h", "jobs.cpp", "languageinfo.cpp", - "languageinfo.h", "project.cpp", "projectdata.cpp", "projectdata_p.h", @@ -56,6 +55,7 @@ QbsLibrary { prefix: "api/" files: [ "jobs.h", + "languageinfo.h", "project.h", "projectdata.h", "runenvironment.h" 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); } |