diff --git a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp index a60023a9d72..49cd18ba95f 100644 --- a/src/plugins/clangcodemodel/clangcodemodelplugin.cpp +++ b/src/plugins/clangcodemodel/clangcodemodelplugin.cpp @@ -85,8 +85,8 @@ void ClangCodeModelPlugin::generateCompilationDB() QFuture 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 0d7780e9f3e..b37e776f564 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 664442cced8..3016073b599 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 &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 71fa0919712..67e50734be9 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 &configAndOptions, const Utils::FilePath &clangIncludeDir); class DiagnosticTextInfo