ClangCodeModel: Move another call out of a tight loop

... when creating a compilation db.

Change-Id: I4d392587f13214042b449a450ef1d4ae1c283ecb
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
This commit is contained in:
Christian Kandeler
2022-05-05 15:50:46 +02:00
parent 0a9d1df61d
commit 3ce7ca7242
3 changed files with 17 additions and 13 deletions

View File

@@ -1454,11 +1454,12 @@ private:
static void addToCompilationDb(QJsonObject &cdb,
const CppEditor::CompilerOptionsBuilder &optionsBuilder,
CppEditor::UsePrecompiledHeaders usePch,
const QStringList &projectOptions,
const Utils::FilePath &workingDir,
const CppEditor::ProjectFile &sourceFile)
{
QStringList args = clangOptionsForFile(optionsBuilder, sourceFile, projectOptions);
QStringList args = clangOptionsForFile(optionsBuilder, sourceFile, projectOptions, usePch);
// TODO: clangd seems to apply some heuristics depending on what we put here.
// Should we make use of them or keep using our own?
@@ -1495,8 +1496,9 @@ ClangdClient::ClangdClient(Project *project, const Utils::FilePath &jsonDbDir)
CppEditor::CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
*CppEditor::CppModelManager::instance()->fallbackProjectPart(),
warningsConfig);
const CppEditor::UsePrecompiledHeaders usePch = CppEditor::getPchUsage();
const QStringList clangOptions = clangOptionsForFile(
optionsBuilder, {}, optionsForProject(nullptr, warningsConfig));
optionsBuilder, {}, optionsForProject(nullptr, warningsConfig), usePch);
initOptions.insert("fallbackFlags", QJsonArray::fromStringList(clangOptions));
setInitializationOptions(initOptions);
}
@@ -1919,8 +1921,8 @@ void ClangdClient::updateParserConfig(const Utils::FilePath &filePath,
warningsConfig);
const CppEditor::ProjectFile file(filePath.toString(),
CppEditor::ProjectFile::classify(filePath.toString()));
addToCompilationDb(cdbChanges, optionsBuilder, optionsForProject(project(), warningsConfig),
filePath.parentDir(), file);
addToCompilationDb(cdbChanges, optionsBuilder, CppEditor::getPchUsage(),
optionsForProject(project(), warningsConfig), filePath.parentDir(), file);
QJsonObject settings;
addCompilationDb(settings, cdbChanges);
DidChangeConfigurationParams configChangeParams;