forked from qt-creator/qt-creator
ClangCodeModel: Use Utils::runAsync instead of QtConcurrent::run
That works the same with Qt 5 and Qt 6.
This reverts commit c1fcaa2877
.
Change-Id: I603e50c793c2477454253a57bfe01eb25ecab6e3
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -35,6 +35,8 @@
|
|||||||
# include "test/clangfixittest.h"
|
# include "test/clangfixittest.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#include <utils/runextensions.h>
|
||||||
|
|
||||||
#include <coreplugin/actionmanager/actioncontainer.h>
|
#include <coreplugin/actionmanager/actioncontainer.h>
|
||||||
#include <coreplugin/actionmanager/actionmanager.h>
|
#include <coreplugin/actionmanager/actionmanager.h>
|
||||||
#include <coreplugin/messagemanager.h>
|
#include <coreplugin/messagemanager.h>
|
||||||
@@ -51,8 +53,6 @@
|
|||||||
|
|
||||||
#include <texteditor/textmark.h>
|
#include <texteditor/textmark.h>
|
||||||
|
|
||||||
#include <QtConcurrent>
|
|
||||||
|
|
||||||
using namespace Utils;
|
using namespace Utils;
|
||||||
|
|
||||||
namespace ClangCodeModel {
|
namespace ClangCodeModel {
|
||||||
@@ -83,11 +83,11 @@ void ClangCodeModelPlugin::generateCompilationDB()
|
|||||||
const CppEditor::ClangDiagnosticConfig warningsConfig
|
const CppEditor::ClangDiagnosticConfig warningsConfig
|
||||||
= warningsConfigForProject(target->project());
|
= warningsConfigForProject(target->project());
|
||||||
QFuture<GenerateCompilationDbResult> task
|
QFuture<GenerateCompilationDbResult> task
|
||||||
= QtConcurrent::run(&Internal::generateCompilationDB, projectInfo,
|
= Utils::runAsync(&Internal::generateCompilationDB, projectInfo,
|
||||||
projectInfo->buildRoot(), CompilationDbPurpose::Project,
|
projectInfo->buildRoot(), CompilationDbPurpose::Project,
|
||||||
qMakePair(warningsConfig,
|
warningsConfig,
|
||||||
optionsForProject(target->project(), warningsConfig)),
|
optionsForProject(target->project(), warningsConfig),
|
||||||
FilePath());
|
FilePath());
|
||||||
Core::ProgressManager::addTask(task, tr("Generating Compilation DB"), "generate compilation db");
|
Core::ProgressManager::addTask(task, tr("Generating Compilation DB"), "generate compilation db");
|
||||||
m_generatorWatcher.setFuture(task);
|
m_generatorWatcher.setFuture(task);
|
||||||
}
|
}
|
||||||
|
@@ -415,8 +415,7 @@ void ClangModelManagerSupport::updateLanguageClient(
|
|||||||
const ClangDiagnosticConfig warningsConfig = warningsConfigForProject(project);
|
const ClangDiagnosticConfig warningsConfig = warningsConfigForProject(project);
|
||||||
auto future = Utils::runAsync(&Internal::generateCompilationDB, projectInfo, jsonDbDir,
|
auto future = Utils::runAsync(&Internal::generateCompilationDB, projectInfo, jsonDbDir,
|
||||||
CompilationDbPurpose::CodeModel,
|
CompilationDbPurpose::CodeModel,
|
||||||
qMakePair(warningsConfig,
|
warningsConfig, optionsForProject(project, warningsConfig),
|
||||||
optionsForProject(project, warningsConfig)),
|
|
||||||
includeDir);
|
includeDir);
|
||||||
generatorWatcher->setFuture(future);
|
generatorWatcher->setFuture(future);
|
||||||
m_generatorSynchronizer.addFuture(future);
|
m_generatorSynchronizer.addFuture(future);
|
||||||
|
@@ -168,12 +168,12 @@ static QJsonObject createFileObject(const FilePath &buildDir,
|
|||||||
return fileObject;
|
return fileObject;
|
||||||
}
|
}
|
||||||
|
|
||||||
GenerateCompilationDbResult generateCompilationDB(
|
GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::ConstPtr projectInfo,
|
||||||
const CppEditor::ProjectInfo::ConstPtr projectInfo,
|
const Utils::FilePath &baseDir,
|
||||||
const Utils::FilePath &baseDir,
|
CompilationDbPurpose purpose,
|
||||||
CompilationDbPurpose purpose,
|
const ClangDiagnosticConfig &warningsConfig,
|
||||||
const QPair<ClangDiagnosticConfig, QStringList> &configAndOptions,
|
const QStringList &projectOptions,
|
||||||
const FilePath &clangIncludeDir)
|
const FilePath &clangIncludeDir)
|
||||||
{
|
{
|
||||||
QTC_ASSERT(!baseDir.isEmpty(), return GenerateCompilationDbResult(QString(),
|
QTC_ASSERT(!baseDir.isEmpty(), return GenerateCompilationDbResult(QString(),
|
||||||
QCoreApplication::translate("ClangUtils", "Could not retrieve build directory.")));
|
QCoreApplication::translate("ClangUtils", "Could not retrieve build directory.")));
|
||||||
@@ -190,11 +190,11 @@ GenerateCompilationDbResult generateCompilationDB(
|
|||||||
compileCommandsFile.write("[");
|
compileCommandsFile.write("[");
|
||||||
|
|
||||||
const UsePrecompiledHeaders usePch = getPchUsage();
|
const UsePrecompiledHeaders usePch = getPchUsage();
|
||||||
const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(configAndOptions.second);
|
const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(projectOptions);
|
||||||
for (ProjectPart::ConstPtr projectPart : projectInfo->projectParts()) {
|
for (ProjectPart::ConstPtr projectPart : projectInfo->projectParts()) {
|
||||||
QStringList args;
|
QStringList args;
|
||||||
const CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
|
const CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
|
||||||
*projectPart, configAndOptions.first, clangIncludeDir);
|
*projectPart, warningsConfig, clangIncludeDir);
|
||||||
QJsonArray ppOptions;
|
QJsonArray ppOptions;
|
||||||
if (purpose == CompilationDbPurpose::Project) {
|
if (purpose == CompilationDbPurpose::Project) {
|
||||||
args = projectPartArguments(*projectPart);
|
args = projectPartArguments(*projectPart);
|
||||||
|
@@ -90,7 +90,7 @@ public:
|
|||||||
enum class CompilationDbPurpose { Project, CodeModel };
|
enum class CompilationDbPurpose { Project, CodeModel };
|
||||||
GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::ConstPtr projectInfo,
|
GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::ConstPtr projectInfo,
|
||||||
const Utils::FilePath &baseDir, CompilationDbPurpose purpose,
|
const Utils::FilePath &baseDir, CompilationDbPurpose purpose,
|
||||||
const QPair<CppEditor::ClangDiagnosticConfig, QStringList> &configAndOptions,
|
const CppEditor::ClangDiagnosticConfig &warningsConfig, const QStringList &projectOptions,
|
||||||
const Utils::FilePath &clangIncludeDir);
|
const Utils::FilePath &clangIncludeDir);
|
||||||
|
|
||||||
class DiagnosticTextInfo
|
class DiagnosticTextInfo
|
||||||
|
Reference in New Issue
Block a user