From 246f33c20d1f9589a891223c820d009212d8bb00 Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Thu, 24 Aug 2023 19:18:44 +0200 Subject: [PATCH] CMakePM: Replace QDir with FilePath in fileapiextractor This allows remote support. Change-Id: I5ac46b1c2ed0e7e1fcc559522f1fcd902f83b8c0 Reviewed-by: Reviewed-by: Eike Ziller --- .../fileapidataextractor.cpp | 30 ++++++++----------- .../cmakeprojectmanager/fileapiparser.h | 1 - 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp index 7539ffc2945..ebb03d950fc 100644 --- a/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp +++ b/src/plugins/cmakeprojectmanager/fileapidataextractor.cpp @@ -19,7 +19,6 @@ #include -#include #include using namespace ProjectExplorer; @@ -148,7 +147,7 @@ PreprocessedData preprocess(FileApiData &data, } QVector extractBacktraceInformation(const BacktraceInfo &backtraces, - const QDir &sourceDir, + const FilePath &sourceDir, int backtraceIndex, unsigned int locationInfoPriority) { @@ -162,8 +161,7 @@ QVector extractBacktraceInformation(const BacktraceInf const size_t fileIndex = static_cast(btNode.file); QTC_ASSERT(fileIndex < backtraces.files.size(), break); - const FilePath path = FilePath::fromString( - sourceDir.absoluteFilePath(backtraces.files[fileIndex])); + const FilePath path = sourceDir.pathAppended(backtraces.files[fileIndex]).absoluteFilePath(); if (btNode.command < 0) { // No command, skip: The file itself is already covered:-) @@ -193,10 +191,8 @@ QList generateBuildTargets(const PreprocessedData &input, const FilePath &buildDirectory, bool haveLibrariesRelativeToBuildDirectory) { - QDir sourceDir(sourceDirectory.toString()); - const QList result = transform(input.targetDetails, - [&sourceDir, &sourceDirectory, &buildDirectory, + [&sourceDirectory, &buildDirectory, &haveLibrariesRelativeToBuildDirectory](const TargetDetails &t) { const FilePath currentBuildDir = buildDirectory.resolvePath(t.buildDir); @@ -221,29 +217,29 @@ QList generateBuildTargets(const PreprocessedData &input, : ct.executable.parentDir(); ct.sourceDirectory = sourceDirectory.resolvePath(t.sourceDir); - ct.backtrace = extractBacktraceInformation(t.backtraceGraph, sourceDir, t.backtrace, 0); + ct.backtrace = extractBacktraceInformation(t.backtraceGraph, sourceDirectory, t.backtrace, 0); for (const DependencyInfo &d : t.dependencies) { ct.dependencyDefinitions.append( - extractBacktraceInformation(t.backtraceGraph, sourceDir, d.backtrace, 100)); + extractBacktraceInformation(t.backtraceGraph, sourceDirectory, d.backtrace, 100)); } for (const SourceInfo &si : t.sources) { ct.sourceDefinitions.append( - extractBacktraceInformation(t.backtraceGraph, sourceDir, si.backtrace, 200)); + extractBacktraceInformation(t.backtraceGraph, sourceDirectory, si.backtrace, 200)); } for (const CompileInfo &ci : t.compileGroups) { for (const IncludeInfo &ii : ci.includes) { ct.includeDefinitions.append( - extractBacktraceInformation(t.backtraceGraph, sourceDir, ii.backtrace, 300)); + extractBacktraceInformation(t.backtraceGraph, sourceDirectory, ii.backtrace, 300)); } for (const DefineInfo &di : ci.defines) { ct.defineDefinitions.append( - extractBacktraceInformation(t.backtraceGraph, sourceDir, di.backtrace, 400)); + extractBacktraceInformation(t.backtraceGraph, sourceDirectory, di.backtrace, 400)); } } for (const InstallDestination &id : t.installDestination) { ct.installDefinitions.append( - extractBacktraceInformation(t.backtraceGraph, sourceDir, id.backtrace, 500)); + extractBacktraceInformation(t.backtraceGraph, sourceDirectory, id.backtrace, 500)); } if (ct.targetType == ExecutableType) { @@ -343,7 +339,6 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input, RawProjectParts rpps; for (const TargetDetails &t : input.targetDetails) { - QDir sourceDir(sourceDirectory.toString()); bool needPostfix = t.compileGroups.size() > 1; int count = 1; for (const CompileInfo &ci : t.compileGroups) { @@ -390,7 +385,7 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input, SourceInfo si = t.sources.at(idx); if (si.isGenerated) continue; - sources.push_back(sourceDir.absoluteFilePath(si.path)); + sources.push_back(sourceDirectory.pathAppended(si.path).absoluteFilePath().path()); } // If we are not in a pch compiler group, add all the headers that are not generated @@ -410,7 +405,8 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input, const auto mimeTypes = Utils::mimeTypesForFileName(si.path); for (const auto &mime : mimeTypes) if (mime.inherits(headerMimeType)) - sources.push_back(sourceDir.absoluteFilePath(si.path)); + sources.push_back( + sourceDirectory.pathAppended(si.path).absoluteFilePath().path()); } } @@ -431,7 +427,7 @@ RawProjectParts generateRawProjectParts(const PreprocessedData &input, }).path); if (!precompiled_header.isEmpty()) { if (precompiled_header.toFileInfo().isRelative()) { - const FilePath parentDir = FilePath::fromString(sourceDir.absolutePath()); + const FilePath parentDir = sourceDirectory.parentDir(); precompiled_header = parentDir.pathAppended(precompiled_header.toString()); } diff --git a/src/plugins/cmakeprojectmanager/fileapiparser.h b/src/plugins/cmakeprojectmanager/fileapiparser.h index f6b54968660..900f630cf7e 100644 --- a/src/plugins/cmakeprojectmanager/fileapiparser.h +++ b/src/plugins/cmakeprojectmanager/fileapiparser.h @@ -13,7 +13,6 @@ #include #include -#include #include #include #include