aboutsummaryrefslogtreecommitdiffstats
path: root/qbs-resources
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-03-06 10:46:26 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-03-14 08:53:13 +0000
commit2acaba8ea211e1ba00c2e2844aa00ca16c7a04f4 (patch)
tree6be71fac638be27609fb6b196ce73d058780c67f /qbs-resources
parent149e20aca1e401ba18bbae602df2caa7dc68c493 (diff)
Add module Exporter.qbs
This module generates qbs modules from products, providing an interface to them for use by external projects. [ChangeLog] Added new module "Exporter.qbs" for creating qbs modules from products. Task-number: QBS-1231 Change-Id: I9f0cf04b441aaf279cf19a84fd94d97a8cea9de8 Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'qbs-resources')
-rw-r--r--qbs-resources/imports/QbsLibrary.qbs23
-rw-r--r--qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs2
2 files changed, 23 insertions, 2 deletions
diff --git a/qbs-resources/imports/QbsLibrary.qbs b/qbs-resources/imports/QbsLibrary.qbs
index 986cc0318..7855a3f7b 100644
--- a/qbs-resources/imports/QbsLibrary.qbs
+++ b/qbs-resources/imports/QbsLibrary.qbs
@@ -1,10 +1,11 @@
import qbs
import qbs.FileInfo
+import qbs.Utilities
QbsProduct {
Depends { name: "cpp" }
version: qbsversion.version
- type: Qt.core.staticBuild ? "staticlibrary" : "dynamiclibrary"
+ type: libType
targetName: (qbs.enableDebugCode && qbs.targetOS.contains("windows")) ? (name + 'd') : name
destinationDirectory: FileInfo.joinPaths(project.buildDirectory,
qbs.targetOS.contains("windows") ? "bin" : qbsbuildconfig.libDirName)
@@ -17,8 +18,12 @@ QbsProduct {
cpp.visibility: "minimal"
property bool visibilityType: Qt.core.staticBuild ? "static" : "dynamic"
property string headerInstallPrefix: "/include/qbs"
+ property bool hasExporter: Utilities.versionCompare(qbs.version, "1.12") >= 0
+ property bool generateQbsModule: install && qbsbuildconfig.generateQbsModules && hasExporter
+ property stringList libType: [Qt.core.staticBuild ? "staticlibrary" : "dynamiclibrary"]
+ Depends { name: "Exporter.qbs"; condition: generateQbsModule }
Group {
- fileTagsFilter: product.type.concat("dynamiclibrary_symlink")
+ fileTagsFilter: libType.concat("dynamiclibrary_symlink")
.concat(qbs.buildVariant === "debug" ? ["debuginfo_dll"] : [])
qbs.install: install
qbs.installSourceBase: destinationDirectory
@@ -30,6 +35,11 @@ QbsProduct {
qbs.install: install
qbs.installDir: qbsbuildconfig.importLibInstallDir
}
+ Group {
+ fileTagsFilter: "Exporter.qbs.module"
+ qbs.install: install
+ qbs.installDir: FileInfo.joinPaths(qbsbuildconfig.qbsModulesBaseDir, product.name)
+ }
Properties {
condition: qbs.targetOS.contains("darwin")
@@ -41,6 +51,15 @@ QbsProduct {
Depends { name: "cpp" }
Depends { name: "Qt"; submodules: ["core"] }
+ Properties {
+ condition: product.hasExporter
+ prefixMapping: [{
+ prefix: product.sourceDirectory,
+ replacement: FileInfo.joinPaths(product.qbs.installPrefix,
+ product.headerInstallPrefix)
+ }]
+ }
+
cpp.includePaths: [product.sourceDirectory]
cpp.defines: product.visibilityType === "static" ? ["QBS_STATIC_LIB"] : []
}
diff --git a/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs b/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
index a1781400d..dd079a106 100644
--- a/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
+++ b/qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs
@@ -16,7 +16,9 @@ Module {
property bool installManPage: qbs.targetOS.contains("unix")
property bool installHtml: true
property bool installQch: false
+ property bool generateQbsModules: installApiHeaders
property string docInstallDir: "share/doc/qbs/html"
+ property string qbsModulesBaseDir: FileInfo.joinPaths(libDirName, "qbs", "modules")
property string relativeLibexecPath: "../" + libexecInstallDir
property string relativePluginsPath: "../" + libDirName
property string relativeSearchPath: ".."