CppTools: Allow interpreting ambiguous headers as C headers

...instead of C++ headers.

For the Clang Code Model this results in using "-x c-header" instead of
"-x c++-header".

This introduces a new option in Options > C++ > "Code Model" to
configure this.

Change-Id: I8a0ce8fa6155f5ef58743ebc7f1d0b500fbf6599
Reviewed-by: David Schulz <david.schulz@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
Nikolai Kosjar
2017-01-12 18:01:12 +01:00
parent 4416eecc02
commit e4e6572661
21 changed files with 228 additions and 72 deletions

View File

@@ -25,8 +25,11 @@
#include "baseeditordocumentprocessor.h"
#include "cppcodemodelsettings.h"
#include "cpplanguage.h"
#include "cppmodelmanager.h"
#include "cpptoolsbridge.h"
#include "cpptoolsreuse.h"
#include "editordocumenthandle.h"
#include <projectexplorer/session.h>
@@ -55,8 +58,13 @@ BaseEditorDocumentProcessor::~BaseEditorDocumentProcessor()
void BaseEditorDocumentProcessor::run(bool hasActiveProjectChanged)
{
const Language languagePreference = codeModelSettings()->interpretAmbigiousHeadersAsCHeaders()
? Language::C
: Language::Cxx;
runImpl({CppModelManager::instance()->workingCopy(),
ProjectExplorer::SessionManager::startupProject(),
languagePreference,
hasActiveProjectChanged});
}