diff options
author | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-21 09:47:55 +0100 |
---|---|---|
committer | Ivan Donchevskii <ivan.donchevskii@qt.io> | 2018-11-21 13:13:30 +0000 |
commit | 8d78378e5c46f43f3e7dd67b83ef0a08c8f5950e (patch) | |
tree | 6a3b69c763562e2add7cf82145c1e067ab3828cd /src/plugins/projectexplorer | |
parent | a23560582e11bce673819d6cfb24318bbbf24f5c (diff) | |
download | qt-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>
Diffstat (limited to 'src/plugins/projectexplorer')
-rw-r--r-- | src/plugins/projectexplorer/gcctoolchain.cpp | 42 |
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; |