diff options
author | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-08-19 18:20:49 +0200 |
---|---|---|
committer | Erik Verbruggen <erik.verbruggen@digia.com> | 2013-09-10 07:36:25 +0200 |
commit | 87a3aac18f70daa6921292f944fb69378c75aaf7 (patch) | |
tree | fb386fbd0bf181d8e429db94b0d158d9f259579a /src | |
parent | fbf64eae72473efb7c5d52d3f7ad369b912b6098 (diff) | |
download | qt-creator-87a3aac18f70daa6921292f944fb69378c75aaf7.tar.gz |
C++: add fallback project part querying
When a file is not part of any other project part, this project part can
be used to get at least some compiler flags, defines, etc. to use. This
can happen when either a file outside a project is opened, or when the
project description is incomplete.
Change-Id: I5d595fae7195e8b61dbad14368b6cae9eb15c21b
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.cpp | 17 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanager.h | 1 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanagerinterface.cpp | 2 | ||||
-rw-r--r-- | src/plugins/cpptools/cppmodelmanagerinterface.h | 5 |
4 files changed, 22 insertions, 3 deletions
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp index 6e942767fd..0de3470e62 100644 --- a/src/plugins/cpptools/cppmodelmanager.cpp +++ b/src/plugins/cpptools/cppmodelmanager.cpp @@ -410,7 +410,7 @@ void CppModelManager::dumpModelManagerConfiguration() cxxExtensions << QLatin1String("MicrosoftExtensions"); if (part->cxxExtensions & ProjectPart::BorlandExtensions) cxxExtensions << QLatin1String("BorlandExtensions"); - if (part->cxxExtensions & ProjectPart::OpenMP) + if (part->cxxExtensions & ProjectPart::OpenMPExtensions) cxxExtensions << QLatin1String("OpenMP"); qDebug() << "cVersion:" << cVersion; @@ -777,6 +777,21 @@ QList<ProjectPart::Ptr> CppModelManager::projectPart(const QString &fileName) co return parts; } +ProjectPart::Ptr CppModelManager::fallbackProjectPart() const +{ + ProjectPart::Ptr part(new ProjectPart); + + part->defines = m_definedMacros; + part->includePaths = m_includePaths; + part->frameworkPaths = m_frameworkPaths; + part->cVersion = ProjectPart::C11; + part->cxxVersion = ProjectPart::CXX11; + part->cxxExtensions = ProjectPart::AllExtensions; + part->qtVersion = ProjectPart::Qt5; + + return part; +} + bool CppModelManager::isCppEditor(Core::IEditor *editor) const { return editor->context().contains(ProjectExplorer::Constants::LANG_CXX); diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h index ff28eadd2d..8f6877ff60 100644 --- a/src/plugins/cpptools/cppmodelmanager.h +++ b/src/plugins/cpptools/cppmodelmanager.h @@ -74,6 +74,7 @@ public: virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const; virtual QFuture<void> updateProjectInfo(const ProjectInfo &newProjectInfo); virtual QList<CppTools::ProjectPart::Ptr> projectPart(const QString &fileName) const; + virtual ProjectPart::Ptr fallbackProjectPart() const; virtual CPlusPlus::Snapshot snapshot() const; virtual Document::Ptr document(const QString &fileName) const; diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.cpp b/src/plugins/cpptools/cppmodelmanagerinterface.cpp index cb5ba96e6d..d2e138dc66 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.cpp +++ b/src/plugins/cpptools/cppmodelmanagerinterface.cpp @@ -147,7 +147,7 @@ void ProjectPart::evaluateToolchain(const ToolChain *tc, if (cxx & ToolChain::MicrosoftExtensions) cxxExtensions |= MicrosoftExtensions; if (cxx & ToolChain::OpenMP) - cxxExtensions |= OpenMP; + cxxExtensions |= OpenMPExtensions; cWarningFlags = tc->warningFlags(cflags); cxxWarningFlags = tc->warningFlags(cxxflags); diff --git a/src/plugins/cpptools/cppmodelmanagerinterface.h b/src/plugins/cpptools/cppmodelmanagerinterface.h index dd9f8b9ac3..8a276ece48 100644 --- a/src/plugins/cpptools/cppmodelmanagerinterface.h +++ b/src/plugins/cpptools/cppmodelmanagerinterface.h @@ -85,7 +85,9 @@ public: GnuExtensions = 0x1, MicrosoftExtensions = 0x2, BorlandExtensions = 0x4, - OpenMP = 0x8 + OpenMPExtensions = 0x8, + + AllExtensions = GnuExtensions | MicrosoftExtensions | BorlandExtensions | OpenMPExtensions }; Q_DECLARE_FLAGS(CXXExtensions, CXXExtension) @@ -217,6 +219,7 @@ public: virtual ProjectInfo projectInfo(ProjectExplorer::Project *project) const = 0; virtual QFuture<void> updateProjectInfo(const ProjectInfo &pinfo) = 0; virtual QList<ProjectPart::Ptr> projectPart(const QString &fileName) const = 0; + virtual ProjectPart::Ptr fallbackProjectPart() const = 0; virtual QStringList includePaths() = 0; |