aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2018-02-21 17:57:32 +0100
committerChristian Kandeler <christian.kandeler@qt.io>2018-02-22 15:19:48 +0000
commitedeac6bab66d6fc8d53daf82bc51e145158b1a3d (patch)
treee67f5d1fb58b1857d4259998a2e9b468ba2ac3c0 /share
parent905b78882ac6c6bc14674a23f2eeb8fdea331c9b (diff)
Darwin: Fix lipo rules
- We must activate these rules only on the product that is the actual aggregator. - The lipo command must only consider artifacts of the multiplexed variants of the same product. Change-Id: I25dc42cb53d84d85786b2d7ff96297b7fd58a90d Reviewed-by: Jake Petroules <jake.petroules@qt.io>
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/cpp/DarwinGCC.qbs9
-rw-r--r--share/qbs/modules/cpp/darwin.js2
2 files changed, 7 insertions, 4 deletions
diff --git a/share/qbs/modules/cpp/DarwinGCC.qbs b/share/qbs/modules/cpp/DarwinGCC.qbs
index e6a668486..16176b4eb 100644
--- a/share/qbs/modules/cpp/DarwinGCC.qbs
+++ b/share/qbs/modules/cpp/DarwinGCC.qbs
@@ -64,6 +64,7 @@ UnixGCC {
lipoName: "lipo"
lipoPath: lipoPathPrefix + lipoName
+ property bool enableAggregationRules: product.aggregate && !product.multiplexConfigurationId
targetVendor: "apple"
targetSystem: "darwin"
@@ -206,7 +207,7 @@ UnixGCC {
property bool libcxxAvailable: qbs.toolchain.contains("clang") && cxxLanguageVersion !== "c++98"
Rule {
- condition: product.aggregate
+ condition: enableAggregationRules
inputsFromDependencies: ["application"]
multiplex: true
@@ -217,7 +218,7 @@ UnixGCC {
}
Rule {
- condition: product.aggregate
+ condition: enableAggregationRules
inputsFromDependencies: ["loadablemodule"]
multiplex: true
@@ -229,7 +230,7 @@ UnixGCC {
}
Rule {
- condition: product.aggregate
+ condition: enableAggregationRules
inputsFromDependencies: ["dynamiclibrary"]
multiplex: true
@@ -241,7 +242,7 @@ UnixGCC {
}
Rule {
- condition: product.aggregate
+ condition: enableAggregationRules
inputsFromDependencies: ["staticlibrary"]
multiplex: true
diff --git a/share/qbs/modules/cpp/darwin.js b/share/qbs/modules/cpp/darwin.js
index 24b6ee089..6373b57c4 100644
--- a/share/qbs/modules/cpp/darwin.js
+++ b/share/qbs/modules/cpp/darwin.js
@@ -130,6 +130,8 @@ function lipoOutputArtifacts(product, inputs, fileTag, debugSuffix) {
function prepareLipo(project, product, inputs, outputs, input, output) {
var cmd;
var commands = [];
+ for (var p in inputs)
+ inputs[p] = inputs[p].filter(function(inp) { return inp.product.name === product.name; });
var allInputs = [].concat.apply([], Object.keys(inputs).map(function (tag) {
return ["application", "dynamiclibrary", "staticlibrary", "loadablemodule"].contains(tag)
? inputs[tag] : [];