diff options
author | Ivan Komissarov <abbapoh@gmail.com> | 2020-03-16 22:15:51 +0100 |
---|---|---|
committer | Ivan Komissarov <ABBAPOH@gmail.com> | 2020-03-18 16:29:07 +0000 |
commit | 6e7faeedbc24f496e6521fd380f6fc4fb39d6df2 (patch) | |
tree | 1e0b3fd4b7df40b3ab756c521a363c657ad2fd5f /share | |
parent | dcd57b60f8a79a2ee9c46cb5fddf60846302d375 (diff) |
Make Library.qbs configurable
Move all tag installation code to the Library.qbs to make it possible to
switch between dynamic/static libraries in user code.
Also, add test for the LoadableModule item.
Change-Id: I947977e5974f9c37d27be6ccd7ad3d117a05af18
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share')
-rw-r--r-- | share/qbs/imports/qbs/base/DynamicLibrary.qbs | 20 | ||||
-rw-r--r-- | share/qbs/imports/qbs/base/Library.qbs | 39 | ||||
-rw-r--r-- | share/qbs/imports/qbs/base/StaticLibrary.qbs | 9 |
3 files changed, 39 insertions, 29 deletions
diff --git a/share/qbs/imports/qbs/base/DynamicLibrary.qbs b/share/qbs/imports/qbs/base/DynamicLibrary.qbs index 267519a42..818665e38 100644 --- a/share/qbs/imports/qbs/base/DynamicLibrary.qbs +++ b/share/qbs/imports/qbs/base/DynamicLibrary.qbs @@ -30,24 +30,4 @@ 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/Library.qbs b/share/qbs/imports/qbs/base/Library.qbs index 615c2319f..2a5183606 100644 --- a/share/qbs/imports/qbs/base/Library.qbs +++ b/share/qbs/imports/qbs/base/Library.qbs @@ -34,4 +34,43 @@ NativeBinary { return ["staticlibrary"]; return ["dynamiclibrary"].concat(isForAndroid ? ["android.nativelibrary"] : []); } + + readonly property bool isDynamicLibrary: type.contains("dynamiclibrary") + readonly property bool isStaticLibrary: type.contains("staticlibrary") + readonly property bool isLoadableModule: type.contains("loadablemodule") + + installDir: { + if (isBundle) + return "Library/Frameworks"; + if (isDynamicLibrary) + return qbs.targetOS.contains("windows") ? "bin" : "lib"; + if (isStaticLibrary) + return "lib"; + } + + property bool installImportLib: false + property string importLibInstallDir: "lib" + + Group { + condition: install + fileTagsFilter: { + if (isBundle) + return ["bundle.content"]; + if (isDynamicLibrary) + return ["dynamiclibrary", "dynamiclibrary_symlink"]; + if (isStaticLibrary) + return ["staticlibrary"]; + return []; + } + qbs.install: true + qbs.installDir: installDir + qbs.installSourceBase: isBundle ? destinationDirectory : outer + } + + Group { + condition: installImportLib && type.contains("dynamiclibrary") + fileTagsFilter: "dynamiclibrary_import" + qbs.install: true + qbs.installDir: importLibInstallDir + } } diff --git a/share/qbs/imports/qbs/base/StaticLibrary.qbs b/share/qbs/imports/qbs/base/StaticLibrary.qbs index 4eea3c991..5a78a83b0 100644 --- a/share/qbs/imports/qbs/base/StaticLibrary.qbs +++ b/share/qbs/imports/qbs/base/StaticLibrary.qbs @@ -30,13 +30,4 @@ 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 - } } |