--- a/share/qbs/modules/cpp/CppModule.qbs +++ b/share/qbs/modules/cpp/CppModule.qbs @@ -20,6 +20,7 @@ Module { } property paths includePaths + property paths sysincludePaths property paths libraryPaths property paths frameworkPaths property string compilerPath diff --git a/share/qbs/modules/cpp/GenericGCC.qbs b/share/qbs/modules/cpp/GenericGCC.qbs index 5a0d03a..a92af09 100644 --- a/share/qbs/modules/cpp/GenericGCC.qbs +++ b/share/qbs/modules/cpp/GenericGCC.qbs @@ -241,6 +241,7 @@ CppModule { var defines = ModUtils.appendAll(input, 'defines'); var platformDefines = ModUtils.appendAll(input, 'platformDefines'); var includePaths = ModUtils.appendAll(input, 'includePaths'); + var sysincludePaths = ModUtils.appendAll(input, 'sysincludePaths'); var cppFlags = ModUtils.appendAll(input, 'cppFlags'); var cFlags = ModUtils.appendAll(input, 'cFlags'); var cxxFlags = ModUtils.appendAll(input, 'cxxFlags'); @@ -273,6 +274,8 @@ CppModule { args.push('-D' + defines[i]); for (i in includePaths) args.push('-I' + includePaths[i]); + for (i in sysincludePaths) + args.push('-isystem' + sysincludePaths[i]); if (product.module.precompiledHeader) { args.push('-include') args.push(product.name) @@ -344,6 +347,8 @@ CppModule { args.push('-D' + defines[i]); for (i in product.module.includePaths) args.push('-I' + includePaths[i]); + for (i in product.module.sysincludePaths) + args.push('-isystem' + sysincludePaths[i]); args.push('-x'); args.push('c++-header'); diff --git a/share/qbs/modules/cpp/msvc.js b/share/qbs/modules/cpp/msvc.js index 0cc9b37..6a136f6 100644 --- a/share/qbs/modules/cpp/msvc.js +++ b/share/qbs/modules/cpp/msvc.js @@ -1,4 +1,4 @@ -function prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, cFlags, cxxFlags) +function prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, sysincludePaths, cFlags, cxxFlags) { var i; var optimization = input.module.optimization @@ -35,6 +35,8 @@ function prepareCompiler(product, input, outputs, platformDefines, defines, incl args.push('/Wall') for (i in includePaths) args.push('/I' + FileInfo.toWindowsSeparators(includePaths[i])) + for (i in sysincludePaths) + args.push('/I' + FileInfo.toWindowsSeparators(sysincludePaths[i])) for (i in platformDefines) args.push('/D' + platformDefines[i]) for (i in defines) diff --git a/share/qbs/modules/cpp/windows-mingw.qbs b/share/qbs/modules/cpp/windows-mingw.qbs index 797531d..7daae39 100644 --- a/share/qbs/modules/cpp/windows-mingw.qbs +++ b/share/qbs/modules/cpp/windows-mingw.qbs @@ -39,6 +39,7 @@ GenericGCC { var platformDefines = ModUtils.appendAll(input, 'platformDefines'); var defines = ModUtils.appendAll(input, 'defines'); var includePaths = ModUtils.appendAll(input, 'includePaths'); + var sysincludePaths = ModUtils.appendAll(input, 'sysincludePaths'); var args = []; var i; for (i in platformDefines) { @@ -53,6 +54,10 @@ GenericGCC { args.push('-I'); args.push(includePaths[i]); } + for (i in sysincludePaths) { + args.push('-I'); + args.push(sysincludePaths[i]); + } args = args.concat(['-i', input.fileName, '-o', output.fileName]); var cmd = new Command(product.module.windresPath, args); diff --git a/share/qbs/modules/cpp/windows-msvc.qbs b/share/qbs/modules/cpp/windows-msvc.qbs index c9e7d9b..460e781 100644 --- a/share/qbs/modules/cpp/windows-msvc.qbs +++ b/share/qbs/modules/cpp/windows-msvc.qbs @@ -86,9 +86,10 @@ CppModule { var platformDefines = ModUtils.appendAll(input, 'platformDefines'); var defines = ModUtils.appendAll(input, 'defines'); var includePaths = ModUtils.appendAll(input, 'includePaths'); + var sysincludePaths: ModUtils.appendAll(input, 'sysincludePaths'); var cFlags = ModUtils.appendAll(input, 'cFlags'); var cxxFlags = ModUtils.appendAll(input, 'cxxFlags'); - return MSVC.prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, cFlags, cxxFlags) + return MSVC.prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, sysincludePaths, cFlags, cxxFlags) } } @@ -106,9 +107,10 @@ CppModule { var platformDefines = ModUtils.appendAll(input, 'platformDefines'); var defines = ModUtils.appendAll(input, 'defines'); var includePaths = ModUtils.appendAll(input, 'includePaths'); + var sysincludePaths: ModUtils.appendAll(input, 'sysincludePaths'); var cFlags = ModUtils.appendAll(input, 'cFlags'); var cxxFlags = ModUtils.appendAll(input, 'cxxFlags'); - return MSVC.prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, cFlags, cxxFlags) + return MSVC.prepareCompiler(product, input, outputs, platformDefines, defines, includePaths, sysincludePaths, cFlags, cxxFlags) } } @@ -220,6 +222,7 @@ CppModule { var platformDefines = ModUtils.appendAll(input, 'platformDefines'); var defines = ModUtils.appendAll(input, 'defines'); var includePaths = ModUtils.appendAll(input, 'includePaths'); + var sysincludePaths = ModUtils.appendAll(input, 'sysincludePaths'); var args = []; var i; for (i in platformDefines) { @@ -234,6 +237,10 @@ CppModule { args.push('/i'); args.push(includePaths[i]); } + for (i in sysincludePaths) { + args.push('/i'); + args.push(sysincludePaths[i]); + } args = args.concat(['/fo', output.fileName, input.fileName]); var cmd = new Command('rc', args);