summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Donchevskii <ivan.donchevskii@qt.io>2018-11-21 09:47:55 +0100
committerIvan Donchevskii <ivan.donchevskii@qt.io>2018-11-21 13:13:30 +0000
commit8d78378e5c46f43f3e7dd67b83ef0a08c8f5950e (patch)
tree6a3b69c763562e2add7cf82145c1e067ab3828cd
parenta23560582e11bce673819d6cfb24318bbbf24f5c (diff)
downloadqt-creator-8d78378e5c46f43f3e7dd67b83ef0a08c8f5950e.tar.gz
ProjectExplorer: White list -target and -gcc-toolchain
Clang from Android NDK does not recognize -fPIC option unless "-target" is specified. They are also required to properly get include paths. Change-Id: I0fc4b70f43669142b7f57f3372cbdca0eea68a40 Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
-rw-r--r--src/plugins/projectexplorer/gcctoolchain.cpp42
1 files changed, 22 insertions, 20 deletions
diff --git a/src/plugins/projectexplorer/gcctoolchain.cpp b/src/plugins/projectexplorer/gcctoolchain.cpp
index f0469b9c47..3a1c39b8d7 100644
--- a/src/plugins/projectexplorer/gcctoolchain.cpp
+++ b/src/plugins/projectexplorer/gcctoolchain.cpp
@@ -396,27 +396,28 @@ ToolChain::MacroInspectionRunner GccToolChain::createMacroInspectionRunner() con
} else if (a == "-arch") {
if (++iArg < allFlags.length() && !arguments.contains(a))
arguments << a << allFlags.at(iArg);
- } else if (a == "--sysroot" || a == "-isysroot" || a == "-D" ||a == "-U") {
+ } else if (a == "--sysroot" || a == "-isysroot" || a == "-D" || a == "-U"
+ || a == "-gcc-toolchain" || a == "-target") {
if (++iArg < allFlags.length())
arguments << a << allFlags.at(iArg);
- } else if (a == "-m128bit-long-double" || a == "-m32" || a == "-m3dnow" || a == "-m3dnowa"
- || a == "-m64" || a == "-m96bit-long-double" || a == "-mabm" || a == "-maes"
- || a.startsWith("-march=") || a == "-mavx" || a.startsWith("-masm=")
- || a.startsWith("-mfloat-abi")
- || a == "-mcx16" || a == "-mfma" || a == "-mfma4" || a == "-mlwp"
- || a == "-mpclmul" || a == "-mpopcnt" || a == "-msse" || a == "-msse2"
- || a == "-msse2avx" || a == "-msse3" || a == "-msse4" || a == "-msse4.1"
- || a == "-msse4.2" || a == "-msse4a" || a == "-mssse3"
- || a.startsWith("-mtune=") || a == "-mxop"
- || a == "-Os" || a == "-O0" || a == "-O1" || a == "-O2" || a == "-O3"
- || a == "-ffinite-math-only" || a == "-fshort-double" || a == "-fshort-wchar"
- || a == "-fsignaling-nans" || a == "-fno-inline" || a == "-fno-exceptions"
- || a == "-fstack-protector" || a == "-fstack-protector-all"
- || a == "-fsanitize=address" || a == "-fno-rtti"
- || a.startsWith("-std=") || a.startsWith("-stdlib=") || a.startsWith("-specs=")
- || a == "-ansi" || a == "-undef" || a.startsWith("-D") || a.startsWith("-U")
- || a == "-fopenmp" || a == "-Wno-deprecated" || a == "-fPIC" || a == "-fpic"
- || a == "-fPIE" || a == "-fpie")
+ } else if (a == "-m128bit-long-double" || a == "-m32" || a == "-m3dnow"
+ || a == "-m3dnowa" || a == "-m64" || a == "-m96bit-long-double"
+ || a == "-mabm" || a == "-maes" || a.startsWith("-march=") || a == "-mavx"
+ || a.startsWith("-masm=") || a.startsWith("-mfloat-abi") || a == "-mcx16"
+ || a == "-mfma" || a == "-mfma4" || a == "-mlwp" || a == "-mpclmul"
+ || a == "-mpopcnt" || a == "-msse" || a == "-msse2" || a == "-msse2avx"
+ || a == "-msse3" || a == "-msse4" || a == "-msse4.1" || a == "-msse4.2"
+ || a == "-msse4a" || a == "-mssse3" || a.startsWith("-mtune=")
+ || a == "-mxop" || a == "-Os" || a == "-O0" || a == "-O1" || a == "-O2"
+ || a == "-O3" || a == "-ffinite-math-only" || a == "-fshort-double"
+ || a == "-fshort-wchar" || a == "-fsignaling-nans" || a == "-fno-inline"
+ || a == "-fno-exceptions" || a == "-fstack-protector"
+ || a == "-fstack-protector-all" || a == "-fsanitize=address"
+ || a == "-fno-rtti" || a.startsWith("-std=") || a.startsWith("-stdlib=")
+ || a.startsWith("-specs=") || a == "-ansi" || a == "-undef"
+ || a.startsWith("-D") || a.startsWith("-U") || a == "-fopenmp"
+ || a == "-Wno-deprecated" || a == "-fPIC" || a == "-fpic" || a == "-fPIE"
+ || a == "-fpie")
arguments << a;
}
@@ -551,7 +552,8 @@ QStringList GccToolChain::gccPrepareArguments(const QStringList &flags,
// pass build system's sysroot to compiler, if we didn't pass one from kit
if (flag.startsWith("--sysroot=")) {
arguments << flag;
- } else if ((flag.startsWith("-isysroot") || flag.startsWith("--sysroot"))
+ } else if ((flag.startsWith("-isysroot") || flag.startsWith("--sysroot")
+ || flag == "-target" || flag == "-gcc-toolchain")
&& i < flags.size() - 1) {
arguments << flag << allFlags.at(i + 1);
++i;