forked from qt-creator/qt-creator
ClangCodeModel: Support setting additional preprocessor directives
... for a document. This was only ever implemented for the built-in code model. Fixes: QTCREATORBUG-20423 Change-Id: Ia99d0136e9995a5626058ad06173ea077be024d8 Reviewed-by: <github-actions-qt-creator@cristianadam.eu> Reviewed-by: David Schulz <david.schulz@qt.io>
This commit is contained in:
@@ -171,7 +171,7 @@ GenerateCompilationDbResult generateCompilationDB(QList<ProjectInfo::ConstPtr> p
|
||||
QTC_ASSERT(projectInfo, continue);
|
||||
QStringList args;
|
||||
const CompilerOptionsBuilder optionsBuilder = clangOptionsBuilder(
|
||||
*projectPart, warningsConfig, clangIncludeDir);
|
||||
*projectPart, warningsConfig, clangIncludeDir, {});
|
||||
QJsonArray ppOptions;
|
||||
if (purpose == CompilationDbPurpose::Project) {
|
||||
args = projectPartArguments(*projectPart);
|
||||
@@ -328,7 +328,8 @@ QString textUntilPreviousStatement(TextEditor::TextDocumentManipulatorInterface
|
||||
|
||||
CompilerOptionsBuilder clangOptionsBuilder(const ProjectPart &projectPart,
|
||||
const ClangDiagnosticConfig &warningsConfig,
|
||||
const Utils::FilePath &clangIncludeDir)
|
||||
const FilePath &clangIncludeDir,
|
||||
const Macros &extraMacros)
|
||||
{
|
||||
const auto useBuildSystemWarnings = warningsConfig.useBuildSystemWarnings()
|
||||
? UseBuildSystemWarnings::Yes
|
||||
@@ -336,7 +337,9 @@ CompilerOptionsBuilder clangOptionsBuilder(const ProjectPart &projectPart,
|
||||
CompilerOptionsBuilder optionsBuilder(projectPart, UseSystemHeader::No,
|
||||
UseTweakedHeaderPaths::Yes, UseLanguageDefines::No,
|
||||
useBuildSystemWarnings, clangIncludeDir);
|
||||
optionsBuilder.provideAdditionalMacros({ProjectExplorer::Macro("Q_CREATOR_RUN", "1")});
|
||||
Macros fullMacroList = extraMacros;
|
||||
fullMacroList += Macro("Q_CREATOR_RUN", "1");
|
||||
optionsBuilder.provideAdditionalMacros(fullMacroList);
|
||||
optionsBuilder.build(ProjectFile::Unclassified, UsePrecompiledHeaders::No);
|
||||
optionsBuilder.add("-fmessage-length=0", /*gccOnlyOption=*/true);
|
||||
optionsBuilder.add("-fdiagnostics-show-note-include-stack", /*gccOnlyOption=*/true);
|
||||
|
||||
Reference in New Issue
Block a user