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.addExtraCodeModelFlags();
|
||||
builder.undefineClangVersionMacrosForMsvc();
|
||||
|
||||
builder.undefineCppLanguageFeatureMacrosForMsvc2015();
|
||||
builder.addProjectConfigFileInclude();
|
||||
builder.addMsvcCompatibilityVersion();
|
||||
@@ -163,6 +164,19 @@ QStringList ProjectUpdater::toolChainArguments(CppTools::ProjectPart *projectPar
|
||||
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)
|
||||
{
|
||||
int index = 0;
|
||||
@@ -171,6 +185,8 @@ ClangBackEnd::CompilerMacros ProjectUpdater::createCompilerMacros(const ProjectE
|
||||
return ClangBackEnd::CompilerMacro{macro.key, macro.value, ++index};
|
||||
});
|
||||
|
||||
cleanupMacros(macros);
|
||||
|
||||
std::sort(macros.begin(), macros.end());
|
||||
|
||||
return macros;
|
||||
|
@@ -310,6 +310,14 @@ TEST_F(ProjectUpdater, CreateSortedCompilerMacros)
|
||||
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)
|
||||
{
|
||||
CppTools::ProjectPart projectPart;
|
||||
|
Reference in New Issue
Block a user