CompilationDBProjectManager: Handle relative sysroot

Fixes: QTCREATORBUG-22388
Change-Id: I030b105897bd483c17aaf86229d4515b2dd747d3
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Christian Kandeler
2019-05-27 16:59:00 +02:00
parent 77d2cebc12
commit e6bda58033
2 changed files with 5 additions and 3 deletions

View File

@@ -186,7 +186,7 @@ void filteredFlags(const QString &fileName,
if (flag.startsWith("--sysroot=")) {
if (sysRoot.isEmpty())
sysRoot = flag.mid(10);
sysRoot = updatedPathFlag(flag.mid(10), workingDir);
continue;
}

View File

@@ -97,7 +97,8 @@ TEST_F(CompilationDatabaseUtils, FilterArguments)
QString::fromUtf8(HostOsInfo::isWindowsHost() ? winPath2 : otherPath2),
"-x",
"c++",
"--sysroot=C:\\sysroot\\embedded",
QString("--sysroot=") + (HostOsInfo::isWindowsHost()
? "C:\\sysroot\\embedded" : "/opt/sysroot/embedded"),
"C:\\qt-creator\\src\\plugins\\cpptools\\compileroptionsbuilder.cpp"},
"compileroptionsbuilder");
@@ -120,7 +121,8 @@ TEST_F(CompilationDatabaseUtils, FilterArguments)
{"RELATIVE_PLUGIN_PATH", "\"../lib/qtcreator/plugins\""},
{"QT_CREATOR", "1"}}));
ASSERT_THAT(fileKind, CppTools::ProjectFile::Kind::CXXSource);
ASSERT_THAT(sysRoot, QString("C:\\sysroot\\embedded"));
ASSERT_THAT(sysRoot, HostOsInfo::isWindowsHost() ? QString("C:\\sysroot\\embedded")
: QString("/opt/sysroot/embedded"));
}
static QString kCmakeCommand