CppEditor: Make CompilerOptionsBuilder take the actual clang include dir

This is more clear than passing in version and fallback path and
calculating the real path from them somewhere down the line.
No functional changes for now.

Change-Id: Iae2fc8015c778d787ed6e0ce898f41a7a05b2607
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
Christian Kandeler
2022-05-09 14:59:04 +02:00
parent d458f9f5e6
commit ad8db12de9
8 changed files with 43 additions and 65 deletions

View File

@@ -375,10 +375,11 @@ CompilerOptionsBuilder clangOptionsBuilder(const ProjectPart &projectPart,
const auto useBuildSystemWarnings = warningsConfig.useBuildSystemWarnings()
? UseBuildSystemWarnings::Yes
: UseBuildSystemWarnings::No;
const FilePath clangIncludeDir = Core::ICore::clangIncludeDirectory(
QString(CLANG_VERSION), FilePath(CLANG_INCLUDE_DIR));
CompilerOptionsBuilder optionsBuilder(projectPart, UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No,
useBuildSystemWarnings, QString(CLANG_VERSION),
FilePath(CLANG_INCLUDE_DIR));
useBuildSystemWarnings, clangIncludeDir);
optionsBuilder.provideAdditionalMacros({ProjectExplorer::Macro("Q_CREATOR_RUN", "1")});
optionsBuilder.build(ProjectFile::Unclassified, UsePrecompiledHeaders::No);
const QString uiIncludePath

View File

@@ -119,13 +119,14 @@ AnalyzeUnit::AnalyzeUnit(const FileInfo &fileInfo,
const FilePath &clangIncludeDir,
const QString &clangVersion)
{
const FilePath actualClangIncludeDir = Core::ICore::clangIncludeDirectory(
clangVersion, clangIncludeDir);
CompilerOptionsBuilder optionsBuilder(*fileInfo.projectPart,
UseSystemHeader::No,
UseTweakedHeaderPaths::Tools,
UseLanguageDefines::No,
UseBuildSystemWarnings::No,
clangVersion,
clangIncludeDir);
actualClangIncludeDir);
file = fileInfo.file.toString();
arguments = extraClangToolsPrependOptions();
arguments.append(optionsBuilder.build(fileInfo.kind, CppEditor::getPchUsage()));

View File

@@ -108,14 +108,12 @@ CompilerOptionsBuilder::CompilerOptionsBuilder(const ProjectPart &projectPart,
UseTweakedHeaderPaths useTweakedHeaderPaths,
UseLanguageDefines useLanguageDefines,
UseBuildSystemWarnings useBuildSystemWarnings,
const QString &clangVersion,
const FilePath &clangIncludeDirectory)
: m_projectPart(projectPart)
, m_useSystemHeader(useSystemHeader)
, m_useTweakedHeaderPaths(useTweakedHeaderPaths)
, m_useLanguageDefines(useLanguageDefines)
, m_useBuildSystemWarnings(useBuildSystemWarnings)
, m_clangVersion(clangVersion)
, m_clangIncludeDirectory(clangIncludeDirectory)
{
}
@@ -351,7 +349,6 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
Internal::HeaderPathFilter filter{
m_projectPart,
m_useTweakedHeaderPaths,
m_clangVersion,
m_clangIncludeDirectory};
filter.process();
@@ -362,8 +359,6 @@ void CompilerOptionsBuilder::addHeaderPathOptions()
addIncludeDirOptionForPath(headerPath);
if (m_useTweakedHeaderPaths != UseTweakedHeaderPaths::No) {
QTC_CHECK(!m_clangVersion.isEmpty()
&& "Clang resource directory is required with UseTweakedHeaderPaths::Yes.");
// Exclude all built-in includes and Clang resource directory.
m_options.prepend("-nostdinc++");

View File

@@ -50,7 +50,6 @@ public:
UseTweakedHeaderPaths useTweakedHeaderPaths = UseTweakedHeaderPaths::No,
UseLanguageDefines useLanguageDefines = UseLanguageDefines::No,
UseBuildSystemWarnings useBuildSystemWarnings = UseBuildSystemWarnings::No,
const QString &clangVersion = {},
const Utils::FilePath &clangIncludeDirectory = {});
QStringList build(ProjectFile::Kind fileKind, UsePrecompiledHeaders usePrecompiledHeaders);
@@ -116,7 +115,6 @@ private:
const UseLanguageDefines m_useLanguageDefines;
const UseBuildSystemWarnings m_useBuildSystemWarnings;
const QString m_clangVersion;
const Utils::FilePath m_clangIncludeDirectory;
ProjectExplorer::Macros m_additionalMacros;

View File

@@ -209,13 +209,13 @@ void CompilerOptionsBuilderTest::testHeaderPathOptionsOrder()
TestHelper t;
CompilerOptionsBuilder compilerOptionsBuilder{t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", ""};
"/dummy"};
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
(QStringList{"-nostdinc", "-nostdinc++", "-I", t.toNative("/tmp/path"),
"-I", t.toNative("/tmp/system_path"), "-isystem", "", "-isystem",
t.toNative("/tmp/builtin_path")}));
"-I", t.toNative("/tmp/system_path"), "-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("/tmp/builtin_path")}));
}
void CompilerOptionsBuilderTest::testHeaderPathOptionsOrderMsvc()
@@ -224,14 +224,14 @@ void CompilerOptionsBuilderTest::testHeaderPathOptionsOrderMsvc()
t.toolchainType = Constants::MSVC_TOOLCHAIN_TYPEID;
CompilerOptionsBuilder compilerOptionsBuilder{t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", ""};
"/dummy"};
compilerOptionsBuilder.evaluateCompilerFlags();
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
(QStringList{"-nostdinc", "-nostdinc++", "-I", t.toNative("/tmp/path"),
"-I", t.toNative("/tmp/system_path"), "/clang:-isystem",
"/clang:", "/clang:-isystem",
"/clang:" + t.toNative("/dummy"), "/clang:-isystem",
"/clang:" + t.toNative("/tmp/builtin_path")}));
}
@@ -240,13 +240,14 @@ void CompilerOptionsBuilderTest::testUseSystemHeader()
TestHelper t;
CompilerOptionsBuilder compilerOptionsBuilder{t.finalize(), UseSystemHeader::Yes,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", ""};
"/dummy"};
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
(QStringList{"-nostdinc", "-nostdinc++", "-I", t.toNative("/tmp/path"),
"-isystem", t.toNative("/tmp/system_path"),
"-isystem", "", "-isystem", t.toNative("/tmp/builtin_path")}));
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("/tmp/builtin_path")}));
}
void CompilerOptionsBuilderTest::testNoClangHeadersPath()
@@ -272,7 +273,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderMacOs()
t.headerPaths = additionalHeaderPaths + t.headerPaths;
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
@@ -281,7 +282,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderMacOs()
"-isystem", t.toNative("/usr/include/c++/4.2.1"),
"-isystem", t.toNative("/usr/include/c++/4.2.1/backward"),
"-isystem", t.toNative("/usr/local/include"),
"-isystem", "",
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include"),
"-isystem", t.toNative("/usr/include"),
"-isystem", t.toNative("/tmp/builtin_path")}));
@@ -301,7 +302,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderLinux()
t.builtIn("/usr/include")};
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
@@ -310,7 +311,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderLinux()
"-isystem", t.toNative("/usr/include/c++/4.8/backward"),
"-isystem", t.toNative("/usr/include/x86_64-linux-gnu/c++/4.8"),
"-isystem", t.toNative("/usr/local/include"),
"-isystem", "",
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("/usr/lib/gcc/x86_64-linux-gnu/4.8/include"),
"-isystem", t.toNative("/usr/include/x86_64-linux-gnu"),
"-isystem", t.toNative("/usr/include")}));
@@ -327,7 +328,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderNoVersio
t.builtIn("C:/mingw530/i686-w64-mingw32/include/c++/backward")};
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
@@ -335,7 +336,7 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderNoVersio
"-isystem", t.toNative("C:/mingw530/i686-w64-mingw32/include/c++"),
"-isystem", t.toNative("C:/mingw530/i686-w64-mingw32/include/c++/i686-w64-mingw32"),
"-isystem", t.toNative("C:/mingw530/i686-w64-mingw32/include/c++/backward"),
"-isystem", "",
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("C:/mingw530/i686-w64-mingw32/include")}));
}
@@ -351,14 +352,14 @@ void CompilerOptionsBuilderTest::testClangHeadersAndCppIncludePathsOrderAndroidC
t.builtIn("C:/Android/sdk/ndk-bundle/sysroot/usr/include")};
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.addHeaderPathOptions();
QCOMPARE(compilerOptionsBuilder.options(),
(QStringList{"-nostdinc", "-nostdinc++",
"-isystem", t.toNative("C:/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++/include"),
"-isystem", t.toNative("C:/Android/sdk/ndk-bundle/sources/cxx-stl/llvm-libc++abi/include"),
"-isystem", t.toNative(""),
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("C:/Android/sdk/ndk-bundle/sysroot/usr/include/i686-linux-android"),
"-isystem", t.toNative("C:/Android/sdk/ndk-bundle/sources/android/support/include"),
"-isystem", t.toNative("C:/Android/sdk/ndk-bundle/sysroot/usr/include")}));
@@ -434,8 +435,7 @@ void CompilerOptionsBuilderTest::testInsertWrappedQtHeaders()
{
TestHelper t;
CompilerOptionsBuilder compilerOptionsBuilder{t.finalize(), UseSystemHeader::Yes,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", ""};
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No};
compilerOptionsBuilder.insertWrappedQtHeaders();
QVERIFY(Utils::contains(compilerOptionsBuilder.options(),
@@ -446,7 +446,7 @@ void CompilerOptionsBuilderTest::testInsertWrappedMingwHeadersWithNonMingwToolch
{
TestHelper t;
CompilerOptionsBuilder builder{t.finalize(), UseSystemHeader::Yes, UseTweakedHeaderPaths::Yes,
UseLanguageDefines::No, UseBuildSystemWarnings::No, "dummy_version", ""};
UseLanguageDefines::No, UseBuildSystemWarnings::No};
builder.insertWrappedMingwHeaders();
QVERIFY(!Utils::contains(builder.options(),
@@ -458,7 +458,7 @@ void CompilerOptionsBuilderTest::testInsertWrappedMingwHeadersWithMingwToolchain
TestHelper t;
t.toolchainType = Constants::MINGW_TOOLCHAIN_TYPEID;
CompilerOptionsBuilder builder{t.finalize(), UseSystemHeader::Yes, UseTweakedHeaderPaths::Yes,
UseLanguageDefines::No, UseBuildSystemWarnings::No, "dummy_version", ""};
UseLanguageDefines::No, UseBuildSystemWarnings::No};
builder.insertWrappedMingwHeaders();
QVERIFY(Utils::contains(builder.options(),
@@ -600,7 +600,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptions()
t.extraFlags = QStringList{"-arch", "x86_64"};
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.build(ProjectFile::CXXSource, UsePrecompiledHeaders::No);
const QString wrappedQtHeadersPath = Utils::findOrDefault(compilerOptionsBuilder.options(),
@@ -614,7 +614,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptions()
"-I", wrappedQtCoreHeadersPath,
"-I", t.toNative("/tmp/path"),
"-I", t.toNative("/tmp/system_path"),
"-isystem", "",
"-isystem", t.toNative("/dummy"),
"-isystem", t.toNative("/tmp/builtin_path")}));
}
@@ -624,7 +624,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvc()
t.toolchainType = Constants::MSVC_TOOLCHAIN_TYPEID;
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.build(ProjectFile::CXXSource, UsePrecompiledHeaders::No);
const QString wrappedQtHeadersPath = Utils::findOrDefault(compilerOptionsBuilder.options(),
@@ -642,7 +642,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvc()
"-I", wrappedQtCoreHeadersPath,
"-I", t.toNative("/tmp/path"),
"-I", t.toNative("/tmp/system_path"),
"/clang:-isystem", "/clang:",
"/clang:-isystem", "/clang:" + t.toNative("/dummy"),
"/clang:-isystem", "/clang:" + t.toNative("/tmp/builtin_path")}));
}
@@ -653,7 +653,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvcWithExceptions()
t.toolchainMacros.append(Macro{"_CPPUNWIND", "1"});
CompilerOptionsBuilder compilerOptionsBuilder(t.finalize(), UseSystemHeader::No,
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No, UseBuildSystemWarnings::No,
"dummy_version", "");
"/dummy");
compilerOptionsBuilder.build(ProjectFile::CXXSource, UsePrecompiledHeaders::No);
const QString wrappedQtHeadersPath = Utils::findOrDefault(compilerOptionsBuilder.options(),
@@ -672,7 +672,7 @@ void CompilerOptionsBuilderTest::testBuildAllOptionsMsvcWithExceptions()
"-I", wrappedQtCoreHeadersPath,
"-I", t.toNative("/tmp/path"),
"-I", t.toNative("/tmp/system_path"),
"/clang:-isystem", "/clang:",
"/clang:-isystem", "/clang:" + t.toNative("/dummy"),
"/clang:-isystem", "/clang:" + t.toNative("/tmp/builtin_path")}));
}

View File

@@ -103,17 +103,6 @@ void HeaderPathFilter::filterHeaderPath(const ProjectExplorer::HeaderPath &heade
namespace {
FilePath clangIncludeDirectory(const QString &clangVersion, const FilePath &clangFallbackIncludeDir)
{
#ifndef UNIT_TESTS
return Core::ICore::clangIncludeDirectory(clangVersion, clangFallbackIncludeDir);
#else
Q_UNUSED(clangVersion)
Q_UNUSED(clangFallbackIncludeDir)
return {CLANG_INCLUDE_DIR};
#endif
}
HeaderPaths::iterator resourceIterator(HeaderPaths &headerPaths)
{
// include/c++, include/g++, libc++\include and libc++abi\include
@@ -156,11 +145,8 @@ void HeaderPathFilter::tweakHeaderPaths()
auto split = resourceIterator(builtInHeaderPaths);
if (!clangVersion.isEmpty()) {
const FilePath clangIncludePath
= clangIncludeDirectory(clangVersion, clangFallbackIncludeDirectory);
builtInHeaderPaths.insert(split, HeaderPath::makeBuiltIn(clangIncludePath));
}
if (!clangIncludeDirectory.isEmpty())
builtInHeaderPaths.insert(split, HeaderPath::makeBuiltIn(clangIncludeDirectory));
}
void HeaderPathFilter::addPreIncludesPath()

View File

@@ -37,13 +37,11 @@ class HeaderPathFilter
public:
HeaderPathFilter(const ProjectPart &projectPart,
UseTweakedHeaderPaths useTweakedHeaderPaths = UseTweakedHeaderPaths::Yes,
const QString &clangVersion = {},
const Utils::FilePath &clangIncludeDirectory = {},
const QString &projectDirectory = {},
const QString &buildDirectory = {})
: projectPart{projectPart}
, clangVersion{clangVersion}
, clangFallbackIncludeDirectory{clangIncludeDirectory}
, clangIncludeDirectory{clangIncludeDirectory}
, projectDirectory(ensurePathWithSlashEnding(projectDirectory))
, buildDirectory(ensurePathWithSlashEnding(buildDirectory))
, useTweakedHeaderPaths{useTweakedHeaderPaths}
@@ -69,8 +67,7 @@ public:
ProjectExplorer::HeaderPaths systemHeaderPaths;
ProjectExplorer::HeaderPaths userHeaderPaths;
const ProjectPart &projectPart;
const QString clangVersion;
const Utils::FilePath clangFallbackIncludeDirectory;
const Utils::FilePath clangIncludeDirectory;
const QString projectDirectory;
const QString buildDirectory;
const UseTweakedHeaderPaths useTweakedHeaderPaths;

View File

@@ -511,7 +511,7 @@ public:
tcInfo.targetTriple = targetTriple;
tcInfo.installDir = toolchainInstallDir;
projectPart = ProjectPart::create({}, rpp, {}, {}, {}, {}, {}, tcInfo);
filter.emplace(HeaderPathFilter(*projectPart, UseTweakedHeaderPaths::No, {}, {},
filter.emplace(HeaderPathFilter(*projectPart, UseTweakedHeaderPaths::No, {},
"/project", "/build"));
return *projectPart;
}
@@ -602,7 +602,7 @@ void HeaderPathFilterTest::testDontAddInvalidPath()
void HeaderPathFilterTest::testClangHeadersPath()
{
HeaderPathFilterTestHelper t;
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{t.builtIn("clang_dir"),
@@ -631,7 +631,7 @@ void HeaderPathFilterTest::testClangHeadersAndCppIncludesPathsOrderMacOs()
};
std::copy(builtIns.begin(), builtIns.end(),
std::inserter(t.headerPaths, t.headerPaths.begin()));
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{
@@ -653,7 +653,7 @@ void HeaderPathFilterTest::testClangHeadersAndCppIncludesPathsOrderLinux()
t.builtIn("/usr/include/x86_64-linux-gnu"), t.builtIn("/usr/include")};
std::copy(builtIns.begin(), builtIns.end(),
std::inserter(t.headerPaths, t.headerPaths.begin()));
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{
@@ -675,7 +675,7 @@ void HeaderPathFilterTest::testRemoveGccInternalPaths()
t.builtIn("/usr/lib/gcc/x86_64-linux-gnu/7/include"),
t.builtIn("/usr/lib/gcc/x86_64-linux-gnu/7/include-fixed"),
};
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{t.builtIn("clang_dir")}));
@@ -697,7 +697,7 @@ void HeaderPathFilterTest::testRemoveGccInternalPathsExceptForStandardPaths()
HeaderPaths expected = t.headerPaths;
expected.append(t.builtIn("clang_dir"));
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, expected);
@@ -713,7 +713,7 @@ void HeaderPathFilterTest::testClangHeadersAndCppIncludesPathsOrderNoVersion()
t.builtIn("C:/mingw/i686-w64-mingw32/include/c++/backward"),
};
t.targetTriple = "x86_64-w64-windows-gnu";
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{
@@ -735,7 +735,7 @@ void HeaderPathFilterTest::testClangHeadersAndCppIncludesPathsOrderAndroidClang(
t.builtIn("C:/Android/sdk/ndk-bundle/sysroot/usr/include")
};
t.targetTriple = "i686-linux-android";
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "6.0", "clang_dir");
HeaderPathFilter filter(t.finalize(), UseTweakedHeaderPaths::Yes, "clang_dir");
filter.process();
QCOMPARE(filter.builtInHeaderPaths, (HeaderPaths{