aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJake Petroules <jake.petroules@qt.io>2017-06-01 14:19:10 -0700
committerJake Petroules <jake.petroules@qt.io>2017-06-02 18:36:15 +0000
commitafd520c94c784e1f680f938d38ca36ebf0ec0907 (patch)
treea657dcc9f92837f2ae15fa513b0f0e33de8a5805
parentbc3f802c23c91b64fe8106edb7e145807e7580c3 (diff)
Fix system include paths compatibility with QNX SDK < 7
Task-number: QBS-1137 Change-Id: I924d9376e55f4681f639f75949db86e1aba7d5b0 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--share/qbs/modules/cpp/GenericGCC.qbs3
-rw-r--r--share/qbs/modules/cpp/gcc.js16
-rw-r--r--share/qbs/modules/cpp/qnx-qcc.qbs2
3 files changed, 16 insertions, 5 deletions
diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs
index 9afb93064..4ba39a32e 100644
--- a/share/qbs/modules/cpp/GenericGCC.qbs
+++ b/share/qbs/modules/cpp/GenericGCC.qbs
@@ -175,6 +175,9 @@ CppModule {
property string dsymutilPath: toolchainPathPrefix + dsymutilName
property stringList dsymutilFlags
+ property string includeFlag: "-I"
+ property string systemIncludeFlag: "-isystem"
+
readonly property bool shouldCreateSymlinks: {
return createSymlinks && internalVersion && ["macho", "elf"].contains(cpp.imageFormat);
}
diff --git a/share/qbs/modules/cpp/gcc.js b/share/qbs/modules/cpp/gcc.js
index 9a1d9cfee..82f5c5834 100644
--- a/share/qbs/modules/cpp/gcc.js
+++ b/share/qbs/modules/cpp/gcc.js
@@ -477,7 +477,8 @@ function compilerFlags(project, product, input, output) {
var sysroot = product.cpp.sysroot;
if (sysroot) {
if (product.qbs.toolchain.contains("qcc"))
- args.push("-I" + FileInfo.joinPaths(sysroot, "usr", "include"));
+ args.push(product.cpp.systemIncludeFlag
+ + FileInfo.joinPaths(sysroot, "usr", "include"));
else if (product.qbs.targetOS.contains("darwin"))
args.push("-isysroot", sysroot);
else
@@ -593,15 +594,20 @@ function compilerFlags(project, product, input, output) {
if (defines)
allDefines = allDefines.uniqueConcat(defines);
args = args.concat(allDefines.map(function(define) { return '-D' + define }));
- if (includePaths)
- args = args.concat([].uniqueConcat(includePaths).map(function(path) { return '-I' + path }));
+ if (includePaths) {
+ args = args.concat([].uniqueConcat(includePaths).map(function(path) {
+ return input.cpp.includeFlag + path;
+ }));
+ }
var allSystemIncludePaths = [];
if (systemIncludePaths)
allSystemIncludePaths = allSystemIncludePaths.uniqueConcat(systemIncludePaths);
if (distributionIncludePaths)
allSystemIncludePaths = allSystemIncludePaths.uniqueConcat(distributionIncludePaths);
- args = args.concat(allSystemIncludePaths.map(function(path) { return '-isystem' + path }));
+ args = args.concat(allSystemIncludePaths.map(function(path) {
+ return input.cpp.systemIncludeFlag + path;
+ }));
var minimumWindowsVersion = input.cpp.minimumWindowsVersion;
if (minimumWindowsVersion && product.qbs.targetOS.contains("windows")) {
@@ -699,7 +705,7 @@ function prepareAssembler(project, product, inputs, outputs, input, output) {
allIncludePaths = allIncludePaths.uniqueConcat(systemIncludePaths);
if (distributionIncludePaths)
allIncludePaths = allIncludePaths.uniqueConcat(distributionIncludePaths);
- args = args.concat(allIncludePaths.map(function(path) { return '-I' + path }));
+ args = args.concat(allIncludePaths.map(function(path) { return input.cpp.includeFlag + path }));
args.push("-o", output.filePath);
args.push(input.filePath);
diff --git a/share/qbs/modules/cpp/qnx-qcc.qbs b/share/qbs/modules/cpp/qnx-qcc.qbs
index fcb4ceea0..0cf0b6dd3 100644
--- a/share/qbs/modules/cpp/qnx-qcc.qbs
+++ b/share/qbs/modules/cpp/qnx-qcc.qbs
@@ -48,6 +48,8 @@ UnixGCC {
targetDriverFlags: qnxTarget ? ["-V" + qnxTarget] : []
+ systemIncludeFlag: !qnx.qnx7 ? includeFlag : base
+
property string qnxTarget: qbs.architecture
? qnx.compilerName + "_" + targetSystem + qnxTargetArchName
: undefined