aboutsummaryrefslogtreecommitdiffstats
path: root/share/qbs/modules/bundle/BundleModule.qbs
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-02-23 15:38:24 -0800
committerJake Petroules <jake.petroules@qt.io>2017-02-24 16:32:24 +0000
commite093bda8b4a894d0f6824adfcc5556b958e7bb59 (patch)
treed30aa1aeaa67b887ec7bbc9acc4457dbe37834ec /share/qbs/modules/bundle/BundleModule.qbs
parent146ff07d44570c68c43a874b4c997cb715c4b849 (diff)
Make sure the bundle rule only accepts inputs from compatible rules
This fixes a regression introduced in e9fb1cc which broke all bundle products on Apple platforms. Change-Id: Ice17bb1d6d6b535d8c654ae6c717f32d9b2ea41e Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Diffstat (limited to 'share/qbs/modules/bundle/BundleModule.qbs')
-rw-r--r--share/qbs/modules/bundle/BundleModule.qbs11
1 files changed, 10 insertions, 1 deletions
diff --git a/share/qbs/modules/bundle/BundleModule.qbs b/share/qbs/modules/bundle/BundleModule.qbs
index 0bf25033d..a7e6ec186 100644
--- a/share/qbs/modules/bundle/BundleModule.qbs
+++ b/share/qbs/modules/bundle/BundleModule.qbs
@@ -69,6 +69,7 @@ Module {
// Outputs
property var xcodeSettings: ({})
+ property var productTypeIdentifierChain: []
configure: {
var specsPath = path;
@@ -84,11 +85,14 @@ Module {
additionalSettings,
!qbs.targetOS.contains("macos"));
var settings = reader.expandedSettings(_productTypeIdentifier);
- if (settings) {
+ var chain = reader.productTypeIdentifierChain(_productTypeIdentifier);
+ if (settings && chain) {
xcodeSettings = settings;
+ productTypeIdentifierChain = chain;
found = true;
} else {
xcodeSettings = {};
+ productTypeIdentifierChain = [];
found = false;
}
}
@@ -180,6 +184,7 @@ Module {
// private properties
property string _productTypeIdentifier: Bundle.productTypeIdentifier(product.type)
+ property stringList _productTypeIdentifierChain: bundleSettingsProbe.productTypeIdentifierChain
property bool _useXcodeBuildSpecs: true // false to use ONLY the qbs build specs
@@ -496,6 +501,10 @@ Module {
"compiled_ibdoc", "compiled_assetcatalog",
"xcode.provisioningprofile.main"]
+ // Make sure the inputs of this rule are only those rules which produce outputs compatible
+ // with the type of the bundle being produced.
+ excludedAuxiliaryInputs: Bundle.excludedAuxiliaryInputs(project, product)
+
outputFileTags: [
"bundle.content",
"bundle.symlink.headers", "bundle.symlink.private-headers",