From afd520c94c784e1f680f938d38ca36ebf0ec0907 Mon Sep 17 00:00:00 2001 From: Jake Petroules Date: Thu, 1 Jun 2017 14:19:10 -0700 Subject: Fix system include paths compatibility with QNX SDK < 7 Task-number: QBS-1137 Change-Id: I924d9376e55f4681f639f75949db86e1aba7d5b0 Reviewed-by: Christian Kandeler --- share/qbs/modules/cpp/GenericGCC.qbs | 3 +++ share/qbs/modules/cpp/gcc.js | 16 +++++++++++----- share/qbs/modules/cpp/qnx-qcc.qbs | 2 ++ 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 -- cgit v1.2.3