aboutsummaryrefslogtreecommitdiffstats
path: root/qbs-resources
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@digia.com>2014-10-29 14:34:48 +0100
committerJoerg Bornemann <joerg.bornemann@theqtcompany.com>2014-10-30 16:26:08 +0100
commit01286887e9867723c7854c4af169fb37de946a74 (patch)
treef21ce01c146ed120d6ef91d070ae1ea7aa44b26f /qbs-resources
parent7c82e9f3f417564dff89b75c802e4bd91e4b1ca7 (diff)
qbs build: Introduce convenience item QbsProduct.
As base product for QbsApp, QbsLibrary etc. Has little functionality at the moment, but will get more soon. Change-Id: I29ac78db2ff1ba109dd09a55e7593b2beeaba741 Reviewed-by: Joerg Bornemann <joerg.bornemann@theqtcompany.com>
Diffstat (limited to 'qbs-resources')
-rw-r--r--qbs-resources/imports/QbsApp.qbs27
-rw-r--r--qbs-resources/imports/QbsAutotest.qbs21
-rw-r--r--qbs-resources/imports/QbsFunctions/functions.js18
-rw-r--r--qbs-resources/imports/QbsLibrary.qbs26
-rw-r--r--qbs-resources/imports/QbsProduct.qbs5
5 files changed, 97 insertions, 0 deletions
diff --git a/qbs-resources/imports/QbsApp.qbs b/qbs-resources/imports/QbsApp.qbs
new file mode 100644
index 000000000..f940d8aa8
--- /dev/null
+++ b/qbs-resources/imports/QbsApp.qbs
@@ -0,0 +1,27 @@
+import qbs
+
+QbsProduct {
+ Depends { name: "qbscore" }
+ Depends { name: "cpp" }
+ type: "application"
+ consoleApplication: true
+ destinationDirectory: "bin"
+ cpp.includePaths: [
+ "../shared", // for the logger
+ ]
+ Group {
+ fileTagsFilter: product.type
+ qbs.install: true
+ qbs.installDir: project.appInstallDir
+ }
+ Group {
+ name: "logging"
+ prefix: "../shared/logging/"
+ files: [
+ "coloredoutput.cpp",
+ "coloredoutput.h",
+ "consolelogger.cpp",
+ "consolelogger.h"
+ ]
+ }
+}
diff --git a/qbs-resources/imports/QbsAutotest.qbs b/qbs-resources/imports/QbsAutotest.qbs
new file mode 100644
index 000000000..4edccb94d
--- /dev/null
+++ b/qbs-resources/imports/QbsAutotest.qbs
@@ -0,0 +1,21 @@
+import qbs
+
+QtApplication {
+ type: "application"
+ property string testName
+ name: "tst_" + testName
+ Depends { name: "Qt.test" }
+ Depends { name: "qbscore" }
+ cpp.includePaths: "../../../src"
+ destinationDirectory: "bin"
+ Group {
+ name: "logging"
+ prefix: "../../../src/app/shared/logging/"
+ files: [
+ "coloredoutput.cpp",
+ "coloredoutput.h",
+ "consolelogger.cpp",
+ "consolelogger.h"
+ ]
+ }
+}
diff --git a/qbs-resources/imports/QbsFunctions/functions.js b/qbs-resources/imports/QbsFunctions/functions.js
new file mode 100644
index 000000000..108259d37
--- /dev/null
+++ b/qbs-resources/imports/QbsFunctions/functions.js
@@ -0,0 +1,18 @@
+function qbsVersion() { return "1.4.0"; }
+
+function versionIsAtLeast(actualVersion, expectedVersion)
+{
+ var actualVersionParts = actualVersion.split('.').map(function(item) {
+ return parseInt(item, 10);
+ });
+ var expectedVersionParts = expectedVersion.split('.').map(function(item) {
+ return parseInt(item, 10);
+ });
+ for (var i = 0; i < expectedVersionParts.length; ++i) {
+ if (actualVersionParts[i] > expectedVersionParts[i])
+ return true;
+ if (actualVersionParts[i] < expectedVersionParts[i])
+ return false;
+ }
+ return i === expectedVersionParts.length || expectedVersionParts[i] === 0;
+}
diff --git a/qbs-resources/imports/QbsLibrary.qbs b/qbs-resources/imports/QbsLibrary.qbs
new file mode 100644
index 000000000..e358fecfa
--- /dev/null
+++ b/qbs-resources/imports/QbsLibrary.qbs
@@ -0,0 +1,26 @@
+import qbs
+import QbsFunctions
+
+QbsProduct {
+ Depends { name: "cpp" }
+ version: QbsFunctions.qbsVersion()
+ type: Qt.core.staticBuild ? "staticlibrary" : "dynamiclibrary"
+ targetName: (qbs.enableDebugCode && qbs.targetOS.contains("windows")) ? (name + 'd') : name
+ destinationDirectory: qbs.targetOS.contains("windows") ? "bin" : project.libDirName
+ cpp.defines: base.concat(type == "staticlibrary" ? ["QBS_STATIC_LIB"] : ["QBS_LIBRARY"])
+ cpp.installNamePrefix: "@rpath"
+ cpp.visibility: "minimal"
+ property string headerInstallPrefix: "/include/qbs"
+ Group {
+ fileTagsFilter: product.type.concat("dynamiclibrary_symlink")
+ qbs.install: true
+ qbs.installDir: project.libInstallDir
+ }
+ Export {
+ Depends { name: "cpp" }
+ Depends { name: "Qt"; submodules: ["core"] }
+ cpp.rpaths: project.libRPaths
+ cpp.includePaths: "."
+ cpp.defines: product.type === "staticlibrary" ? ["QBS_STATIC_LIB"] : []
+ }
+}
diff --git a/qbs-resources/imports/QbsProduct.qbs b/qbs-resources/imports/QbsProduct.qbs
new file mode 100644
index 000000000..39b0cc5a0
--- /dev/null
+++ b/qbs-resources/imports/QbsProduct.qbs
@@ -0,0 +1,5 @@
+import qbs
+
+Product {
+ Depends { name: "Qt.core" }
+}