forked from qt-creator/qt-creator
ProjectExplorer: Split sysroot and target flags
Whitelist target even if we have the sysroot set in the kit. Change-Id: Ie51c0b25255e23458321303fc80ee9cf91879ab1 Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -546,15 +546,19 @@ QStringList GccToolChain::gccPrepareArguments(const QStringList &flags,
|
|||||||
for (int i = 0; i < allFlags.size(); ++i) {
|
for (int i = 0; i < allFlags.size(); ++i) {
|
||||||
const QString &flag = allFlags.at(i);
|
const QString &flag = allFlags.at(i);
|
||||||
if (flag.startsWith("-stdlib=") || flag.startsWith("--gcc-toolchain=")
|
if (flag.startsWith("-stdlib=") || flag.startsWith("--gcc-toolchain=")
|
||||||
|| flag.startsWith("-B") || (flag.startsWith("-isystem") && flag.length() > 8)) {
|
|| flag.startsWith("-B") || flag.startsWith("--target=")
|
||||||
|
|| (flag.startsWith("-isystem") && flag.length() > 8)) {
|
||||||
arguments << flag;
|
arguments << flag;
|
||||||
|
} else if ((flag == "-target" || flag == "-gcc-toolchain" || flag == "-isystem")
|
||||||
|
&& i < flags.size() - 1) {
|
||||||
|
arguments << flag << allFlags.at(i + 1);
|
||||||
|
++i;
|
||||||
} else if (!hasKitSysroot) {
|
} else if (!hasKitSysroot) {
|
||||||
// pass build system's sysroot to compiler, if we didn't pass one from kit
|
// pass build system's sysroot to compiler, if we didn't pass one from kit
|
||||||
if (flag.startsWith("--sysroot=")) {
|
if (flag.startsWith("--sysroot=")
|
||||||
|
|| (flag.startsWith("-isysroot") && flag.length() > 9)) {
|
||||||
arguments << flag;
|
arguments << flag;
|
||||||
} else if ((flag.startsWith("-isysroot") || flag.startsWith("--sysroot")
|
} else if (flag == "-isysroot" && i < flags.size() - 1) {
|
||||||
|| flag == "-target" || flag == "-gcc-toolchain" || flag == "-isystem")
|
|
||||||
&& i < flags.size() - 1) {
|
|
||||||
arguments << flag << allFlags.at(i + 1);
|
arguments << flag << allFlags.at(i + 1);
|
||||||
++i;
|
++i;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user