summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kandeler <christian.kandeler@qt.io>2022-05-10 16:28:49 +0200
committerChristian Kandeler <christian.kandeler@qt.io>2022-05-11 07:40:30 +0000
commitc1fcaa28775240af47c62c479918d6f08e74617d (patch)
tree02cfe418fd6d1b2f65688dd0ae6d2d574dfe6f60
parentc5f424d696eaa6fc450464359c55fd0c9a09c539 (diff)
downloadqt-creator-c1fcaa28775240af47c62c479918d6f08e74617d.tar.gz
ClangCodeModel: Fix build with Qt 5.15
Artificially lower the number of function parameters in generateCompilationDB(), to accommodate Qt5's QtConcurrent::run(). Change-Id: Ide88925deb443378b9308d924406ec6f6f90e8aa Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org> Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: Christian Stenger <christian.stenger@qt.io>
-rw-r--r--src/plugins/clangcodemodel/clangcodemodelplugin.cpp4
-rw-r--r--src/plugins/clangcodemodel/clangmodelmanagersupport.cpp3
-rw-r--r--src/plugins/clangcodemodel/clangutils.cpp16
-rw-r--r--src/plugins/clangcodemodel/clangutils.h2
4 files changed, 13 insertions, 12 deletions
diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
index a60023a9d7..49cd18ba95 100644
--- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
+++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp
@@ -85,8 +85,8 @@ void ClangCodeModelPlugin::generateCompilationDB()
QFuture<GenerateCompilationDbResult> task
= QtConcurrent::run(&Internal::generateCompilationDB, projectInfo,
projectInfo->buildRoot(), CompilationDbPurpose::Project,
- warningsConfig,
- optionsForProject(target->project(), warningsConfig),
+ qMakePair(warningsConfig,
+ optionsForProject(target->project(), warningsConfig)),
FilePath());
Core::ProgressManager::addTask(task, tr("Generating Compilation DB"), "generate compilation db");
m_generatorWatcher.setFuture(task);
diff --git a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
index 0d7780e9f3..b37e776f56 100644
--- a/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
+++ b/src/plugins/clangcodemodel/clangmodelmanagersupport.cpp
@@ -424,7 +424,8 @@ void ClangModelManagerSupport::updateLanguageClient(
const ClangDiagnosticConfig warningsConfig = warningsConfigForProject(project);
auto future = Utils::runAsync(&Internal::generateCompilationDB, projectInfo, jsonDbDir,
CompilationDbPurpose::CodeModel,
- warningsConfig, optionsForProject(project, warningsConfig),
+ qMakePair(warningsConfig,
+ optionsForProject(project, warningsConfig)),
includeDir);
generatorWatcher->setFuture(future);
m_generatorSynchronizer.addFuture(future);
diff --git a/src/plugins/clangcodemodel/clangutils.cpp b/src/plugins/clangcodemodel/clangutils.cpp
index 664442cced..3016073b59 100644
--- a/src/plugins/clangcodemodel/clangutils.cpp
+++ b/src/plugins/clangcodemodel/clangutils.cpp
@@ -168,12 +168,12 @@ static QJsonObject createFileObject(const FilePath &buildDir,
return fileObject;
}
-GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::ConstPtr projectInfo,
- const Utils::FilePath &baseDir,
- CompilationDbPurpose purpose,
- const ClangDiagnosticConfig &warningsConfig,
- const QStringList &projectOptions,
- const FilePath &clangIncludeDir)
+GenerateCompilationDbResult generateCompilationDB(
+ const CppEditor::ProjectInfo::ConstPtr projectInfo,
+ const Utils::FilePath &baseDir,
+ CompilationDbPurpose purpose,
+ const QPair<ClangDiagnosticConfig, QStringList> &configAndOptions,
+ const FilePath &clangIncludeDir)
{
QTC_ASSERT(!baseDir.isEmpty(), return GenerateCompilationDbResult(QString(),
QCoreApplication::translate("ClangUtils", "Could not retrieve build directory.")));
@@ -190,11 +190,11 @@ GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::
compileCommandsFile.write("[");
const UsePrecompiledHeaders usePch = getPchUsage();
- const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(projectOptions);
+ const QJsonArray jsonProjectOptions = QJsonArray::fromStringList(configAndOptions.second);
for (ProjectPart::ConstPtr projectPart : projectInfo->projectParts()) {
QStringList args;
const CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
- *projectPart, warningsConfig, clangIncludeDir);
+ *projectPart, configAndOptions.first, clangIncludeDir);
QJsonArray ppOptions;
if (purpose == CompilationDbPurpose::Project) {
args = projectPartArguments(*projectPart);
diff --git a/src/plugins/clangcodemodel/clangutils.h b/src/plugins/clangcodemodel/clangutils.h
index 71fa091971..67e50734be 100644
--- a/src/plugins/clangcodemodel/clangutils.h
+++ b/src/plugins/clangcodemodel/clangutils.h
@@ -90,7 +90,7 @@ public:
enum class CompilationDbPurpose { Project, CodeModel };
GenerateCompilationDbResult generateCompilationDB(const CppEditor::ProjectInfo::ConstPtr projectInfo,
const Utils::FilePath &baseDir, CompilationDbPurpose purpose,
- const CppEditor::ClangDiagnosticConfig &warningsConfig, const QStringList &projectOptions,
+ const QPair<CppEditor::ClangDiagnosticConfig, QStringList> &configAndOptions,
const Utils::FilePath &clangIncludeDir);
class DiagnosticTextInfo