diff options
author | Christian Kandeler <christian.kandeler@qt.io> | 2018-05-22 16:23:17 +0200 |
---|---|---|
committer | Christian Kandeler <christian.kandeler@qt.io> | 2018-06-01 11:14:13 +0000 |
commit | 17059ccd06e56010fa0d44ebcaf0be7b85d69703 (patch) | |
tree | 321e1b3bc972163c8fdb43a78c4c96d4720c665e /share/qbs | |
parent | e655352e1ebfd09f2b08114f4d61c7a2f8dfc645 (diff) |
Simplify installation of applications and libraries
Add "install" and "installDir" convenience properties to our
Application, DynamicLibrary and StaticLibrary items, so users are no
longer required to write groups with file tag filters for the normal
installation case. The installDir property has a suitable default value
for the respective target platform, as does qbs.installPrefix.
[ChangeLog] The Application, DynamicLibrary and StaticLibrary items now
have properties for more convenient installation of target binaries.
Task-number: QBS-229
Change-Id: I9cfa4c02a7c555b0af637257da63967cd62cc119
Reviewed-by: Oswald Buddenhagen <oswald.buddenhagen@qt.io>
Reviewed-by: Joerg Bornemann <joerg.bornemann@qt.io>
Diffstat (limited to 'share/qbs')
-rw-r--r-- | share/qbs/imports/qbs/base/Application.qbs | 10 | ||||
-rw-r--r-- | share/qbs/imports/qbs/base/DynamicLibrary.qbs | 20 | ||||
-rw-r--r-- | share/qbs/imports/qbs/base/NativeBinary.qbs | 4 | ||||
-rw-r--r-- | share/qbs/imports/qbs/base/StaticLibrary.qbs | 9 | ||||
-rw-r--r-- | share/qbs/modules/qbs/common.qbs | 2 |
5 files changed, 44 insertions, 1 deletions
diff --git a/share/qbs/imports/qbs/base/Application.qbs b/share/qbs/imports/qbs/base/Application.qbs index e16a93761..7f26279c8 100644 --- a/share/qbs/imports/qbs/base/Application.qbs +++ b/share/qbs/imports/qbs/base/Application.qbs @@ -36,4 +36,14 @@ NativeBinary { return ["dynamiclibrary", "android.nativelibrary"]; return ["application"]; } + + installDir: isBundle ? "Applications" : "bin" + + Group { + condition: install + fileTagsFilter: isBundle ? "bundle.content" : "application"; + qbs.install: true + qbs.installDir: installDir + qbs.installSourceBase: isBundle ? destinationDirectory : outer + } } diff --git a/share/qbs/imports/qbs/base/DynamicLibrary.qbs b/share/qbs/imports/qbs/base/DynamicLibrary.qbs index 32d8fec41..4853b9598 100644 --- a/share/qbs/imports/qbs/base/DynamicLibrary.qbs +++ b/share/qbs/imports/qbs/base/DynamicLibrary.qbs @@ -32,4 +32,24 @@ import qbs Library { type: ["dynamiclibrary"].concat(isForAndroid ? ["android.nativelibrary"] : []) + + installDir: isBundle ? "Library/Frameworks" : qbs.targetOS.contains("windows") + ? "bin" : "lib" + property bool installImportLib: false + property string importLibInstallDir: "lib" + + Group { + condition: install + fileTagsFilter: isBundle ? "bundle.content" : ["dynamiclibrary", "dynamiclibrary_symlink"] + qbs.install: true + qbs.installDir: installDir + qbs.installSourceBase: isBundle ? destinationDirectory : outer + } + + Group { + condition: installImportLib + fileTagsFilter: "dynamiclibrary_import" + qbs.install: true + qbs.installDir: importLibInstallDir + } } diff --git a/share/qbs/imports/qbs/base/NativeBinary.qbs b/share/qbs/imports/qbs/base/NativeBinary.qbs index 0a772b60c..ce8f458f4 100644 --- a/share/qbs/imports/qbs/base/NativeBinary.qbs +++ b/share/qbs/imports/qbs/base/NativeBinary.qbs @@ -33,6 +33,10 @@ import qbs Product { property bool isForAndroid: qbs.targetOS.contains("android") property bool isForDarwin: qbs.targetOS.contains("darwin") + property bool isBundle: isForDarwin && bundle.isBundle + + property bool install: false + property string installDir Depends { name: "bundle" } diff --git a/share/qbs/imports/qbs/base/StaticLibrary.qbs b/share/qbs/imports/qbs/base/StaticLibrary.qbs index 1609bdcea..be5f7a7c4 100644 --- a/share/qbs/imports/qbs/base/StaticLibrary.qbs +++ b/share/qbs/imports/qbs/base/StaticLibrary.qbs @@ -32,4 +32,13 @@ import qbs Library { type: ["staticlibrary"] + + installDir: isBundle ? "Library/Frameworks" : "lib" + Group { + condition: install + fileTagsFilter: isBundle ? "bundle.content" : "staticlibrary"; + qbs.install: true + qbs.installDir: installDir + qbs.installSourceBase: isBundle ? destinationDirectory : outer + } } diff --git a/share/qbs/modules/qbs/common.qbs b/share/qbs/modules/qbs/common.qbs index 86ce27c59..4e96a320b 100644 --- a/share/qbs/modules/qbs/common.qbs +++ b/share/qbs/modules/qbs/common.qbs @@ -102,7 +102,7 @@ Module { property path installSourceBase property string installRoot: project.buildDirectory + "/install-root" property string installDir - property string installPrefix: "" + property string installPrefix: qbs.targetOS.contains("unix") ? "/usr/local" : "" property path sysroot PropertyOptions { |