forked from qt-creator/qt-creator
Clang: Filter macro QT_TESTCASE_BUILDDIR out
We have to universalize it later with a UI so that user can set their own macros. Change-Id: I5385c3c1b01dbf77a1cbc2431103fcdea3f96118 Reviewed-by: Tim Jenssen <tim.jenssen@qt.io> Reviewed-by: Cristian Adam <cristian.adam@qt.io>
This commit is contained in:
@@ -156,6 +156,7 @@ QStringList ProjectUpdater::toolChainArguments(CppTools::ProjectPart *projectPar
|
|||||||
// builder.addTargetTriple(); TODO resarch why target triples are different
|
// builder.addTargetTriple(); TODO resarch why target triples are different
|
||||||
builder.addExtraCodeModelFlags();
|
builder.addExtraCodeModelFlags();
|
||||||
builder.undefineClangVersionMacrosForMsvc();
|
builder.undefineClangVersionMacrosForMsvc();
|
||||||
|
|
||||||
builder.undefineCppLanguageFeatureMacrosForMsvc2015();
|
builder.undefineCppLanguageFeatureMacrosForMsvc2015();
|
||||||
builder.addProjectConfigFileInclude();
|
builder.addProjectConfigFileInclude();
|
||||||
builder.addMsvcCompatibilityVersion();
|
builder.addMsvcCompatibilityVersion();
|
||||||
@@ -163,6 +164,19 @@ QStringList ProjectUpdater::toolChainArguments(CppTools::ProjectPart *projectPar
|
|||||||
return builder.options();
|
return builder.options();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
namespace {
|
||||||
|
void cleanupMacros(ClangBackEnd::CompilerMacros ¯os)
|
||||||
|
{
|
||||||
|
auto newEnd = std::partition(macros.begin(),
|
||||||
|
macros.end(),
|
||||||
|
[](const ClangBackEnd::CompilerMacro ¯o) {
|
||||||
|
return macro.key != "QT_TESTCASE_BUILDDIR";
|
||||||
|
});
|
||||||
|
|
||||||
|
macros.erase(newEnd, macros.end());
|
||||||
|
}
|
||||||
|
} // namespace
|
||||||
|
|
||||||
ClangBackEnd::CompilerMacros ProjectUpdater::createCompilerMacros(const ProjectExplorer::Macros &projectMacros)
|
ClangBackEnd::CompilerMacros ProjectUpdater::createCompilerMacros(const ProjectExplorer::Macros &projectMacros)
|
||||||
{
|
{
|
||||||
int index = 0;
|
int index = 0;
|
||||||
@@ -171,6 +185,8 @@ ClangBackEnd::CompilerMacros ProjectUpdater::createCompilerMacros(const ProjectE
|
|||||||
return ClangBackEnd::CompilerMacro{macro.key, macro.value, ++index};
|
return ClangBackEnd::CompilerMacro{macro.key, macro.value, ++index};
|
||||||
});
|
});
|
||||||
|
|
||||||
|
cleanupMacros(macros);
|
||||||
|
|
||||||
std::sort(macros.begin(), macros.end());
|
std::sort(macros.begin(), macros.end());
|
||||||
|
|
||||||
return macros;
|
return macros;
|
||||||
|
@@ -310,6 +310,14 @@ TEST_F(ProjectUpdater, CreateSortedCompilerMacros)
|
|||||||
CompilerMacro{"DEFINE", "1", 3}));
|
CompilerMacro{"DEFINE", "1", 3}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(ProjectUpdater, FilterCompilerMacros)
|
||||||
|
{
|
||||||
|
auto paths = updater.createCompilerMacros(
|
||||||
|
{{"DEFINE", "1"}, {"QT_TESTCASE_BUILDDIR", "2"}, {"BAR", "1"}});
|
||||||
|
|
||||||
|
ASSERT_THAT(paths, ElementsAre(CompilerMacro{"BAR", "1", 1}, CompilerMacro{"DEFINE", "1", 3}));
|
||||||
|
}
|
||||||
|
|
||||||
TEST_F(ProjectUpdater, CreateSortedIncludeSearchPaths)
|
TEST_F(ProjectUpdater, CreateSortedIncludeSearchPaths)
|
||||||
{
|
{
|
||||||
CppTools::ProjectPart projectPart;
|
CppTools::ProjectPart projectPart;
|
||||||
|
Reference in New Issue
Block a user