diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-03-06 10:46:26 +0100 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-03-14 08:53:13 +0000 |
commit | 2acaba8ea211e1ba00c2e2844aa00ca16c7a04f4 (patch) | |
tree | 6be71fac638be27609fb6b196ce73d058780c67f /qbs-resources | |
parent | 149e20aca1e401ba18bbae602df2caa7dc68c493 (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.qbs | 23 | ||||
-rw-r--r-- | qbs-resources/modules/qbsbuildconfig/qbsbuildconfig.qbs | 2 |
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: ".." |