diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp index d53c50b5fa2..f479bdcb355 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdatabaseproject.cpp @@ -109,7 +109,7 @@ ToolChain *toolchainFromFlags(const Kit *kit, const QStringList &flags, const Ut return ToolChainKitAspect::toolChain(kit, language); // Try exact compiler match. - const Utils::FilePath compiler = Utils::FilePath::fromString(compilerPath(flags.front())); + const Utils::FilePath compiler = Utils::FilePath::fromUserInput(compilerPath(flags.front())); ToolChain *toolchain = ToolChainManager::toolChain([&compiler, &language](const ToolChain *tc) { return tc->isValid() && tc->language() == language && tc->compilerCommand() == compiler; }); diff --git a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp index 01ec506c27a..bf5ff01e2ae 100644 --- a/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp +++ b/src/plugins/compilationdatabaseprojectmanager/compilationdbparser.cpp @@ -157,11 +157,8 @@ static QStringList jsonObjectFlags(const QJsonObject &object, QSet &fla static FilePath jsonObjectFilePath(const QJsonObject &object) { - const QString workingDir = QDir::cleanPath(object["directory"].toString()); - FilePath fileName = FilePath::fromString(QDir::cleanPath(object["file"].toString())); - if (fileName.toFileInfo().isRelative()) - fileName = FilePath::fromString(QDir::cleanPath(workingDir + "/" + fileName.toString())); - return fileName; + const FilePath workingDir = FilePath::fromUserInput(object["directory"].toString()); + return workingDir.resolvePath(object["file"].toString()); } std::vector CompilationDbParser::readJsonObjects() const