Clang: Ensure that platform codegen flags get also filtered

Leave the function addExtraCodeModelFlags() around as it's used by
ClangPchManager::ProjectUpdater::toolChainArguments().

This allows us to filter out excess target arguments in a follow-up
change.

Change-Id: I742d713dd1ca6c391ba77c52555dcf4e94cc2ff9
Reviewed-by: Cristian Adam <cristian.adam@qt.io>
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Nikolai Kosjar
2019-10-11 15:01:09 +02:00
parent 6e3de85b33
commit 8f6eb41cad
2 changed files with 4 additions and 5 deletions

View File

@@ -140,8 +140,6 @@ QStringList CompilerOptionsBuilder::build(ProjectFile::Kind fileKind,
addPrecompiledHeaderOptions(usePrecompiledHeaders); addPrecompiledHeaderOptions(usePrecompiledHeaders);
addProjectConfigFileInclude(); addProjectConfigFileInclude();
addExtraCodeModelFlags();
addMsvcCompatibilityVersion(); addMsvcCompatibilityVersion();
addProjectMacros(); addProjectMacros();
undefineClangVersionMacrosForMsvc(); undefineClangVersionMacrosForMsvc();
@@ -727,7 +725,8 @@ void CompilerOptionsBuilder::evaluateCompilerFlags()
const Core::Id &toolChain = m_projectPart.toolchainType; const Core::Id &toolChain = m_projectPart.toolchainType;
bool containsDriverMode = false; bool containsDriverMode = false;
bool skipNext = false; bool skipNext = false;
for (const QString &option : m_projectPart.compilerFlags) { const QStringList allFlags = m_projectPart.compilerFlags + m_projectPart.extraCodeModelFlags;
for (const QString &option : allFlags) {
if (skipNext) { if (skipNext) {
skipNext = false; skipNext = false;
continue; continue;

View File

@@ -593,14 +593,14 @@ TEST_F(CompilerOptionsBuilder, BuildAllOptions)
ASSERT_THAT(compilerOptionsBuilder.options(), ASSERT_THAT(compilerOptionsBuilder.options(),
ElementsAre("-nostdinc", ElementsAre("-nostdinc",
"-nostdinc++", "-nostdinc++",
"-arch",
"x86_64",
"-fsyntax-only", "-fsyntax-only",
"-m64", "-m64",
"--target=x86_64-apple-darwin10", "--target=x86_64-apple-darwin10",
"-x", "-x",
"c++", "c++",
"-std=c++17", "-std=c++17",
"-arch",
"x86_64",
"-DprojectFoo=projectBar", "-DprojectFoo=projectBar",
"-I", IsPartOfHeader("wrappedQtHeaders"), "-I", IsPartOfHeader("wrappedQtHeaders"),
"-I", IsPartOfHeader(toNative("wrappedQtHeaders/QtCore").toStdString()), "-I", IsPartOfHeader(toNative("wrappedQtHeaders/QtCore").toStdString()),