summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2013-06-21 13:12:30 +0200
committerChristian Kandeler <christian.kandeler@digia.com>2013-06-25 17:05:42 +0200
commit54ed620f35f19600195e9057cfcf5bc01573f396 (patch)
tree443d85e9e02806c82e8c6db8a727babe67301943 /src
parent195d3c6f9e1524171bacc0b3e3d415ce8c88c766 (diff)
downloadqt-creator-54ed620f35f19600195e9057cfcf5bc01573f396.tar.gz
Refactor qbs project files.
- Use sub-projects. - Move the main application and the application header products into dedicated files. As a result, qtcreator.qbs becomes much simpler to understand, consisting now of just a bunch of global properties and a few sub-project references. Change-Id: Ic7300d489d3982394be5ad1d12a79a2914320298 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/app/app.qbs70
-rw-r--r--src/app/app_version_header.qbs53
-rw-r--r--src/libs/libs.qbs21
-rw-r--r--src/plugins/QtcPlugin.qbs1
-rw-r--r--src/plugins/plugins.qbs61
-rw-r--r--src/src.qbs12
-rw-r--r--src/tools/tools.qbs11
7 files changed, 229 insertions, 0 deletions
diff --git a/src/app/app.qbs b/src/app/app.qbs
new file mode 100644
index 0000000000..c92d864d9f
--- /dev/null
+++ b/src/app/app.qbs
@@ -0,0 +1,70 @@
+import qbs
+import "../../qbs/defaults.js" as Defaults
+
+Application {
+ name: project.ide_app_target
+ consoleApplication: qbs.debugInformation
+
+ cpp.rpaths: qbs.targetOS.contains("mac") ? ["@executable_path/.."]
+ : ["$ORIGIN/../lib/qtcreator"]
+ cpp.defines: Defaults.defines(qbs)
+ cpp.linkerFlags: {
+ if (qbs.buildVariant == "release" && (qbs.toolchain == "gcc" || qbs.toolchain == "mingw"))
+ return ["-Wl,-s"]
+ }
+ cpp.includePaths: [
+ "..",
+ "../libs",
+ "../shared/qtsingleapplication",
+ "../shared/qtlockedfile",
+ buildDirectory
+ ]
+
+ Depends { name: "app_version_header" }
+ Depends { name: "cpp" }
+ Depends { name: "Qt"; submodules: ["widgets", "network"] }
+ Depends { name: "Utils" }
+ Depends { name: "ExtensionSystem" }
+
+ files: [
+ "main.cpp",
+ "qtcreator.rc",
+ "../shared/qtsingleapplication/qtsingleapplication.h",
+ "../shared/qtsingleapplication/qtsingleapplication.cpp",
+ "../shared/qtsingleapplication/qtlocalpeer.h",
+ "../shared/qtsingleapplication/qtlocalpeer.cpp",
+ "../shared/qtlockedfile/qtlockedfile.cpp",
+ "../tools/qtcreatorcrashhandler/crashhandlersetup.cpp",
+ "../tools/qtcreatorcrashhandler/crashhandlersetup.h"
+ ]
+
+ Group {
+ name: "qtcreator.sh"
+ condition: qbs.targetOS.contains("unix") && !qbs.targetOS.contains("mac")
+ files: "../../bin/qtcreator.sh"
+ qbs.install: true
+ qbs.installDir: "bin"
+ }
+
+ Group {
+ name: "QtLockedFile_unix"
+ condition: qbs.targetOS.contains("unix")
+ files: [
+ "../shared/qtlockedfile/qtlockedfile_unix.cpp"
+ ]
+ }
+
+ Group {
+ name: "QtLockedFile_win"
+ condition: qbs.targetOS.contains("windows")
+ files: [
+ "../shared/qtlockedfile/qtlockedfile_win.cpp"
+ ]
+ }
+
+ Group {
+ fileTagsFilter: product.type
+ qbs.install: true
+ qbs.installDir: project.ide_app_path
+ }
+}
diff --git a/src/app/app_version_header.qbs b/src/app/app_version_header.qbs
new file mode 100644
index 0000000000..3b3ebf0e0a
--- /dev/null
+++ b/src/app/app_version_header.qbs
@@ -0,0 +1,53 @@
+import qbs
+
+Product {
+ name: "app_version_header"
+ type: "hpp"
+ files: "app_version.h.in"
+ property string ide_version_major: project.ide_version_major
+ property string ide_version_minor: project.ide_version_minor
+ property string ide_version_release: project.ide_version_release
+ property string qtcreator_version: project.qtcreator_version
+
+ Transformer {
+ inputs: ["app_version.h.in"]
+ Artifact {
+ fileName: "app/app_version.h"
+ fileTags: "hpp"
+ }
+ prepare: {
+ var cmd = new JavaScriptCommand();
+ cmd.description = "generating app_version.h";
+ cmd.highlight = "codegen";
+ cmd.qtcreator_version = product.qtcreator_version;
+ cmd.ide_version_major = product.ide_version_major;
+ cmd.ide_version_minor = product.ide_version_minor;
+ cmd.ide_version_release = product.ide_version_release;
+ cmd.onWindows = (product.moduleProperty("qbs", "targetOS") === "windows");
+ cmd.sourceCode = function() {
+ var file = new TextFile(input.fileName);
+ var content = file.readAll();
+ // replace quoted quotes
+ content = content.replace(/\\\"/g, '"');
+ // replace Windows line endings
+ if (onWindows)
+ content = content.replace(/\r\n/g, "\n");
+ // replace the magic qmake incantations
+ content = content.replace(/(\n#define IDE_VERSION) .+\n/, "$1 " + qtcreator_version + "\n");
+ content = content.replace(/(\n#define IDE_VERSION_MAJOR) .+\n/, "$1 " + ide_version_major + "\n")
+ content = content.replace(/(\n#define IDE_VERSION_MINOR) .+\n/, "$1 " + ide_version_minor + "\n")
+ content = content.replace(/(\n#define IDE_VERSION_RELEASE) .+\n/, "$1 " + ide_version_release + "\n")
+ file = new TextFile(output.fileName, TextFile.WriteOnly);
+ file.truncate();
+ file.write(content);
+ file.close();
+ }
+ return cmd;
+ }
+ }
+
+ Export {
+ Depends { name: "cpp" }
+ cpp.includePaths: product.buildDirectory
+ }
+}
diff --git a/src/libs/libs.qbs b/src/libs/libs.qbs
new file mode 100644
index 0000000000..d7ca88dd11
--- /dev/null
+++ b/src/libs/libs.qbs
@@ -0,0 +1,21 @@
+import qbs
+
+Project {
+ name: "Libs"
+ references: [
+ "aggregation/aggregation.qbs",
+ "cplusplus/cplusplus.qbs",
+ "extensionsystem/extensionsystem.qbs",
+ "glsl/glsl.qbs",
+ "languageutils/languageutils.qbs",
+ "qmleditorwidgets/qmleditorwidgets.qbs",
+ "qmljs/qmljs.qbs",
+ "qmldebug/qmldebug.qbs",
+ "qtcomponents/styleitem/styleitem.qbs",
+ "ssh/ssh.qbs",
+ "utils/process_stub.qbs",
+ "utils/process_ctrlc_stub.qbs",
+ "utils/utils.qbs",
+ "zeroconf/zeroconf.qbs",
+ ]
+}
diff --git a/src/plugins/QtcPlugin.qbs b/src/plugins/QtcPlugin.qbs
index d3476a68b3..21530f6314 100644
--- a/src/plugins/QtcPlugin.qbs
+++ b/src/plugins/QtcPlugin.qbs
@@ -19,6 +19,7 @@ Product {
}
return name;
}
+ moduleSearchPaths: "../../../qbs" // TODO: Should get inherited from project, but doesn't.
Depends { name: "ExtensionSystem" }
Depends { name: "pluginspec" }
diff --git a/src/plugins/plugins.qbs b/src/plugins/plugins.qbs
new file mode 100644
index 0000000000..0f0d044122
--- /dev/null
+++ b/src/plugins/plugins.qbs
@@ -0,0 +1,61 @@
+import qbs
+
+Project {
+ name: "Plugins"
+ references: [
+ "analyzerbase/analyzerbase.qbs",
+ "android/android.qbs",
+ "autotoolsprojectmanager/autotoolsprojectmanager.qbs",
+ "bazaar/bazaar.qbs",
+ "bineditor/bineditor.qbs",
+ "bookmarks/bookmarks.qbs",
+ "classview/classview.qbs",
+ "clearcase/clearcase.qbs",
+ "cmakeprojectmanager/cmakeprojectmanager.qbs",
+ "coreplugin/coreplugin.qbs",
+ "coreplugin/images/logo/logo.qbs",
+ "cpaster/cpaster.qbs",
+ "cpaster/frontend/frontend.qbs",
+ "cppeditor/cppeditor.qbs",
+ "cpptools/cpptools.qbs",
+ "cvs/cvs.qbs",
+ "debugger/debugger.qbs",
+ "debugger/ptracepreload.qbs",
+ "designer/designer.qbs",
+ "diffeditor/diffeditor.qbs",
+ "fakevim/fakevim.qbs",
+ "find/find.qbs",
+ "genericprojectmanager/genericprojectmanager.qbs",
+ "git/git.qbs",
+ "glsleditor/glsleditor.qbs",
+ "helloworld/helloworld.qbs",
+ "help/help.qbs",
+ "imageviewer/imageviewer.qbs",
+ "locator/locator.qbs",
+ "macros/macros.qbs",
+ "madde/madde.qbs",
+ "mercurial/mercurial.qbs",
+ "perforce/perforce.qbs",
+ "projectexplorer/projectexplorer.qbs",
+ "qbsprojectmanager/qbsprojectmanager.qbs",
+ "pythoneditor/pythoneditor.qbs",
+// "qmldesigner/qmldesigner.qbs",
+ "qmljseditor/qmljseditor.qbs",
+ "qmljstools/qmljstools.qbs",
+ "qmlprofiler/qmlprofiler.qbs",
+ "qmlprojectmanager/qmlprojectmanager.qbs",
+ "qnx/qnx.qbs",
+ "qt4projectmanager/qt4projectmanager.qbs",
+ "qtsupport/qtsupport.qbs",
+ "remotelinux/remotelinux.qbs",
+ "resourceeditor/resourceeditor.qbs",
+ "subversion/subversion.qbs",
+ "tasklist/tasklist.qbs",
+ "texteditor/texteditor.qbs",
+ "todo/todo.qbs",
+ "updateinfo/updateinfo.qbs",
+ "valgrind/valgrind.qbs",
+ "vcsbase/vcsbase.qbs",
+ "welcome/welcome.qbs"
+ ]
+}
diff --git a/src/src.qbs b/src/src.qbs
new file mode 100644
index 0000000000..2f74200f77
--- /dev/null
+++ b/src/src.qbs
@@ -0,0 +1,12 @@
+import qbs
+
+Project {
+ name: "Sources"
+ references: [
+ "app/app.qbs",
+ "app/app_version_header.qbs",
+ "libs/libs.qbs",
+ "plugins/plugins.qbs",
+ "tools/tools.qbs"
+ ]
+}
diff --git a/src/tools/tools.qbs b/src/tools/tools.qbs
new file mode 100644
index 0000000000..3b187c9d55
--- /dev/null
+++ b/src/tools/tools.qbs
@@ -0,0 +1,11 @@
+import qbs
+
+Project {
+ name: "Tools"
+ references: [
+ "qtcdebugger/qtcdebugger.qbs",
+ "qtcreatorcrashhandler/qtcreatorcrashhandler.qbs",
+ "qtpromaker/qtpromaker.qbs",
+ "sdktool/sdktool.qbs"
+ ]
+}