aboutsummaryrefslogtreecommitdiffstats
path: root/share
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2016-10-17 11:43:09 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2016-10-17 11:43:09 +0200
commit830503d04708ebd6a64dfd260b35cfeea26ba60a (patch)
treeb43c489469f8d452e7ba9d568f0f1d36e85fbe08 /share
parentb2b9d77f5cdfbb5ed19554e2d424b5be75ef8e73 (diff)
parent704eb30d27117d88e3edbe5d255ea5b8989509f3 (diff)
Merge 1.6 into master
Diffstat (limited to 'share')
-rw-r--r--share/qbs/modules/bundle/BundleModule.qbs2
-rw-r--r--share/qbs/modules/cpp/CppModule.qbs1
-rw-r--r--share/qbs/modules/cpp/gcc.js16
-rw-r--r--share/qbs/modules/cpp/ios-gcc.qbs24
-rw-r--r--share/qbs/modules/cpp/msvc.js9
5 files changed, 24 insertions, 28 deletions
diff --git a/share/qbs/modules/bundle/BundleModule.qbs b/share/qbs/modules/bundle/BundleModule.qbs
index a267b5252..7c2278977 100644
--- a/share/qbs/modules/bundle/BundleModule.qbs
+++ b/share/qbs/modules/bundle/BundleModule.qbs
@@ -487,7 +487,7 @@ Module {
condition: qbs.targetOS.contains("darwin")
multiplex: true
inputs: ["aggregate_infoplist", "pkginfo", "hpp",
- "icns", "resourcerules", "xcent",
+ "icns", "xcent",
"compiled_ibdoc", "compiled_assetcatalog",
"xcode.provisioningprofile.main"]
diff --git a/share/qbs/modules/cpp/CppModule.qbs b/share/qbs/modules/cpp/CppModule.qbs
index 6aa0211a3..2459a419b 100644
--- a/share/qbs/modules/cpp/CppModule.qbs
+++ b/share/qbs/modules/cpp/CppModule.qbs
@@ -146,6 +146,7 @@ Module {
property stringList compilerWrapper
property string linkerName
property string linkerPath: linkerName
+ property stringList linkerWrapper
property string staticLibraryPrefix
property string dynamicLibraryPrefix
property string loadableModulePrefix
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index 7c85f1ed4..3590bd34c 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -749,10 +749,22 @@ function prepareLinker(project, product, inputs, outputs, input, output) {
primaryOutput = outputs.loadablemodule[0];
}
- cmd = new Command(effectiveLinkerPath(product, inputs),
- linkerFlags(project, product, inputs, primaryOutput));
+ var linkerPath = effectiveLinkerPath(product, inputs)
+
+ var args = linkerFlags(project, product, inputs, primaryOutput)
+ var wrapperArgsLength = 0;
+ var wrapperArgs = ModUtils.moduleProperty(product, "linkerWrapper");
+ if (wrapperArgs && wrapperArgs.length > 0) {
+ wrapperArgsLength = wrapperArgs.length;
+ args.unshift(linkerPath);
+ linkerPath = wrapperArgs.shift();
+ args = wrapperArgs.concat(args);
+ }
+
+ cmd = new Command(linkerPath, args);
cmd.description = 'linking ' + primaryOutput.fileName;
cmd.highlight = 'linker';
+ cmd.responseFileArgumentIndex = wrapperArgsLength;
cmd.responseFileUsagePrefix = '@';
commands.push(cmd);
diff --git a/share/qbs/modules/cpp/ios-gcc.qbs b/share/qbs/modules/cpp/ios-gcc.qbs
index 1ab6e8021..2ff4dc49c 100644
--- a/share/qbs/modules/cpp/ios-gcc.qbs
+++ b/share/qbs/modules/cpp/ios-gcc.qbs
@@ -62,30 +62,6 @@ DarwinGCC {
Rule {
condition: !product.moduleProperty("qbs", "targetOS").contains("ios-simulator")
- multiplex: true
- inputs: ["qbs"]
-
- Artifact {
- filePath: product.destinationDirectory + "/"
- + product.moduleProperty("bundle", "contentsFolderPath")
- + "/ResourceRules.plist"
- fileTags: ["resourcerules"]
- }
-
- prepare: {
- var cmd = new JavaScriptCommand();
- cmd.description = "generating ResourceRules";
- cmd.highlight = "codegen";
- cmd.sysroot = product.moduleProperty("qbs","sysroot");
- cmd.sourceCode = function() {
- File.copy(sysroot + "/ResourceRules.plist", outputs.resourcerules[0].filePath);
- }
- return cmd;
- }
- }
-
- Rule {
- condition: !product.moduleProperty("qbs", "targetOS").contains("ios-simulator")
inputsFromDependencies: ["bundle"]
Artifact {
diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js
index b8464a651..cb8c48482 100644
--- a/share/qbs/modules/cpp/msvc.js
+++ b/share/qbs/modules/cpp/msvc.js
@@ -319,8 +319,15 @@ function prepareLinker(project, product, inputs, outputs, input, output) {
if (ModUtils.moduleProperty(product, "allowUnresolvedSymbols"))
args.push("/FORCE:UNRESOLVED");
+ var linkerPath = product.moduleProperty("cpp", "linkerPath");
+ var wrapperArgs = product.moduleProperty("cpp", "linkerWrapper");
+ if (wrapperArgs && wrapperArgs.length > 0) {
+ args.unshift(linkerPath);
+ linkerPath = wrapperArgs.shift();
+ args = wrapperArgs.concat(args);
+ }
var commands = [];
- var cmd = new Command(product.moduleProperty("cpp", "linkerPath"), args)
+ var cmd = new Command(linkerPath, args)
cmd.description = 'linking ' + primaryOutput.fileName;
cmd.highlight = 'linker';
cmd.workingDirectory = FileInfo.path(primaryOutput.filePath)