From 44c5c6ac58fab3b1842b46ad3d65b4febce80e1d Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Thu, 9 Jun 2016 19:48:48 +0200 Subject: [PATCH] Add static library for qmake project file parser. This is needed to build plugins "out of source". Change-Id: If842cde86e1eb54daa3daf7f9d6f27751f657d9e Reviewed-by: Joerg Bornemann --- qbs/modules/qtc/qtc.qbs | 2 +- src/plugins/android/android.qbs | 1 + .../qmakeandroidsupport.qbs | 4 -- .../qmakeprojectmanager.qbs | 4 +- src/plugins/qtsupport/qtsupport.qbs | 55 +--------------- src/shared/proparser/proparser.qbs | 62 +++++++++++++++++++ src/src.qbs | 5 +- 7 files changed, 70 insertions(+), 63 deletions(-) create mode 100644 src/shared/proparser/proparser.qbs diff --git a/qbs/modules/qtc/qtc.qbs b/qbs/modules/qtc/qtc.qbs index 53ed54719cc..1e1b8f90f28 100644 --- a/qbs/modules/qtc/qtc.qbs +++ b/qbs/modules/qtc/qtc.qbs @@ -64,7 +64,7 @@ Module { Rule { condition: make_dev_package - inputs: ["dynamiclibrary", "staticlibrary"] + inputs: [product.type.contains("dynamiclibrary") ? "dynamiclibrary" : "staticlibrary"] Artifact { filePath: product.name + "-module.qbs" fileTags: ["qtc.dev-module"] diff --git a/src/plugins/android/android.qbs b/src/plugins/android/android.qbs index 1a08abc7646..f326a88dd47 100644 --- a/src/plugins/android/android.qbs +++ b/src/plugins/android/android.qbs @@ -9,6 +9,7 @@ Project { Depends { name: "Qt"; submodules: ["widgets", "xml", "network"] } Depends { name: "Core" } Depends { name: "Debugger" } + Depends { name: "ProParser" } Depends { name: "ProjectExplorer" } Depends { name: "QmlDebug" } Depends { name: "QtSupport" } diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.qbs b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.qbs index a2a25ae27e2..1766420659c 100644 --- a/src/plugins/qmakeandroidsupport/qmakeandroidsupport.qbs +++ b/src/plugins/qmakeandroidsupport/qmakeandroidsupport.qbs @@ -15,10 +15,6 @@ QtcPlugin { Depends { name: "Qt.network" } Depends { name: "Qt.widgets" } - cpp.includePaths: base.concat([ - project.sharedSourcesDir, - ]) - files: [ "androidextralibrarylistmodel.cpp", "androidextralibrarylistmodel.h", diff --git a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs index a6aac164ac6..2b9af592046 100644 --- a/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs +++ b/src/plugins/qmakeprojectmanager/qmakeprojectmanager.qbs @@ -11,6 +11,7 @@ Project { Depends { name: "Utils" } Depends { name: "Core" } + Depends { name: "ProParser" } Depends { name: "ProjectExplorer" } Depends { name: "QtSupport" } Depends { name: "CppTools" } @@ -108,8 +109,7 @@ Project { } Export { - Depends { name: "cpp" } - cpp.includePaths: [project.sharedSourcesDir] + Depends { name: "ProParser" } } } } diff --git a/src/plugins/qtsupport/qtsupport.qbs b/src/plugins/qtsupport/qtsupport.qbs index 8673a0ffcbe..585fda5c19b 100644 --- a/src/plugins/qtsupport/qtsupport.qbs +++ b/src/plugins/qtsupport/qtsupport.qbs @@ -11,50 +11,10 @@ Project { Depends { name: "Utils" } Depends { name: "Core" } + Depends { name: "ProParser" } Depends { name: "ProjectExplorer" } Depends { name: "CppTools" } - cpp.includePaths: base.concat([ - project.sharedSourcesDir, - ]) - - cpp.defines: base.concat([ - "QMAKE_AS_LIBRARY", - "QMAKE_LIBRARY", - "PROPARSER_THREAD_SAFE", - "PROEVALUATOR_THREAD_SAFE", - "PROEVALUATOR_CUMULATIVE", - "QMAKE_BUILTIN_PRFS", - "PROEVALUATOR_SETENV" - ]) - - Group { - name: "Shared" - prefix: project.sharedSourcesDir + "/proparser/" - files: [ - "ioutils.cpp", - "ioutils.h", - "profileevaluator.cpp", - "profileevaluator.h", - "proitems.cpp", - "proitems.h", - "proparser.qrc", - "prowriter.cpp", - "prowriter.h", - "qmake_global.h", - "qmakebuiltins.cpp", - "qmakeevaluator.cpp", - "qmakeevaluator.h", - "qmakeevaluator_p.h", - "qmakeglobals.cpp", - "qmakeglobals.h", - "qmakeparser.cpp", - "qmakeparser.h", - "qmakevfs.cpp", - "qmakevfs.h", - ] - } - files: [ "baseqtversion.cpp", "baseqtversion.h", @@ -120,18 +80,5 @@ Project { "gettingstartedwelcomepage.h" ] } - - - Export { - cpp.includePaths: "../../shared" - cpp.defines: [ - "QMAKE_AS_LIBRARY", - "PROPARSER_THREAD_SAFE", - "PROEVALUATOR_CUMULATIVE", - "PROEVALUATOR_THREAD_SAFE", - "QMAKE_BUILTIN_PRFS", - "PROEVALUATOR_SETENV" - ] - } } } diff --git a/src/shared/proparser/proparser.qbs b/src/shared/proparser/proparser.qbs new file mode 100644 index 00000000000..315f041d5a1 --- /dev/null +++ b/src/shared/proparser/proparser.qbs @@ -0,0 +1,62 @@ +import qbs + +Project { + name: "ProParser" + + QtcDevHeaders { } + + // Built as required by the QtSupport plugin. Other potential users need to include the sources + // directly. + QtcProduct { + type: ["staticlibrary", "qtc.dev-module"] + install: qtc.make_dev_package + installDir: qtc.ide_library_path + installTags: ["staticlibrary"] + + cpp.defines: base.concat([ + "QMAKE_BUILTIN_PRFS", + "QMAKE_AS_LIBRARY", + "PROPARSER_THREAD_SAFE", + "PROEVALUATOR_THREAD_SAFE", + "PROEVALUATOR_CUMULATIVE", + "PROEVALUATOR_SETENV", + ]) + + Depends { name: "Qt.xml" } + + Export { + Depends { name: "cpp" } + cpp.defines: base.concat([ + "QMAKE_AS_LIBRARY", + "PROPARSER_THREAD_SAFE", + "PROEVALUATOR_THREAD_SAFE", + "PROEVALUATOR_CUMULATIVE", + "PROEVALUATOR_SETENV", + ]) + cpp.includePaths: base.concat([".."]) + } + + files: [ + "ioutils.cpp", + "ioutils.h", + "profileevaluator.cpp", + "profileevaluator.h", + "proitems.cpp", + "proitems.h", + "proparser.qrc", + "prowriter.cpp", + "prowriter.h", + "qmake_global.h", + "qmakebuiltins.cpp", + "qmakeevaluator.cpp", + "qmakeevaluator.h", + "qmakeevaluator_p.h", + "qmakeglobals.cpp", + "qmakeglobals.h", + "qmakeparser.cpp", + "qmakeparser.h", + "qmakevfs.cpp", + "qmakevfs.h", + ] + } +} diff --git a/src/src.qbs b/src/src.qbs index cca3a2ddd95..885bb6dd1a0 100644 --- a/src/src.qbs +++ b/src/src.qbs @@ -8,10 +8,11 @@ Project { references: [ "app/app.qbs", "app/app_version_header.qbs", - project.sharedSourcesDir + "/json", "libs/libs.qbs", "plugins/plugins.qbs", - "tools/tools.qbs" + "tools/tools.qbs", + project.sharedSourcesDir + "/json", + project.sharedSourcesDir + "/proparser", ] property bool qbsSubModuleExists: File.exists(qbsProject.qbsBaseDir + "/qbs.qbs")