From f1b2100e34c46c5102a584dfc70f2f89196b16d8 Mon Sep 17 00:00:00 2001
From: Erik Verbruggen <erik.verbruggen@nokia.com>
Date: Wed, 14 Mar 2012 10:25:55 +0100
Subject: [PATCH] Move the ModelManagerInterface out of the CPlusPlus library.

Change-Id: Iffaa18f848a22f6961b49dff048672b194570df6
Reviewed-by: Roberto Raggi <roberto.raggi@nokia.com>
---
 src/libs/cplusplus/cplusplus-lib.pri          |  8 ++------
 src/plugins/analyzerbase/analyzerutils.cpp    |  2 +-
 .../autotoolsproject.cpp                      |  2 +-
 .../classview/classview_dependencies.pri      |  1 -
 src/plugins/classview/classviewmanager.cpp    |  2 +-
 src/plugins/classview/classviewparser.cpp     |  2 +-
 src/plugins/classview/classviewparser.h       |  2 +-
 .../cmakeprojectmanager/cmakeproject.cpp      |  2 +-
 .../cmakeuicodemodelsupport.cpp               |  2 +-
 .../cmakeuicodemodelsupport.h                 |  2 +-
 src/plugins/cppeditor/cppeditor.cpp           |  2 +-
 src/plugins/cppeditor/cppeditor.h             |  2 +-
 src/plugins/cppeditor/cppelementevaluator.cpp |  4 ++--
 src/plugins/cppeditor/cpphoverhandler.cpp     |  2 +-
 src/plugins/cppeditor/cppplugin.cpp           |  2 +-
 src/plugins/cppeditor/cppquickfixes.cpp       |  2 +-
 .../cpptools}/ModelManagerInterface.cpp       |  0
 .../cpptools}/ModelManagerInterface.h         | 20 +++++++++----------
 .../cpptools}/TypeHierarchyBuilder.cpp        |  0
 .../cpptools}/TypeHierarchyBuilder.h          |  5 +++--
 .../cpptools/abstracteditorsupport.cpp        |  2 +-
 src/plugins/cpptools/cppfindreferences.cpp    |  2 +-
 src/plugins/cpptools/cppmodelmanager.cpp      |  4 ++--
 src/plugins/cpptools/cppmodelmanager.h        |  2 +-
 src/plugins/cpptools/cpprefactoringchanges.h  |  2 +-
 src/plugins/cpptools/cpptools.pro             |  8 ++++++--
 .../cpptools/uicodecompletionsupport.h        |  2 +-
 src/plugins/debugger/cdb/cdbengine.cpp        |  2 +-
 src/plugins/debugger/debuggerplugin.cpp       |  2 +-
 src/plugins/debugger/watchutils.cpp           |  2 +-
 src/plugins/designer/codemodelhelpers.cpp     |  2 +-
 src/plugins/designer/qtcreatorintegration.cpp |  2 +-
 src/plugins/designer/qtcreatorintegration.h   |  2 +-
 .../genericprojectmanager/genericproject.cpp  |  2 +-
 .../qmljstools/qmljsfindexportedcpptypes.cpp  |  2 +-
 src/plugins/qmljstools/qmljsmodelmanager.cpp  |  2 +-
 .../qmljstools/qmljstools_dependencies.pri    |  1 +
 src/plugins/qt4projectmanager/qt4nodes.cpp    |  2 +-
 src/plugins/qt4projectmanager/qt4project.cpp  |  4 ++--
 src/plugins/todo/cpptodoitemsscanner.h        |  2 +-
 src/plugins/vcsbase/vcsbase_dependencies.pri  |  2 +-
 src/plugins/vcsbase/vcsbasesubmiteditor.cpp   |  2 +-
 42 files changed, 58 insertions(+), 59 deletions(-)
 rename src/{libs/cplusplus => plugins/cpptools}/ModelManagerInterface.cpp (100%)
 rename src/{libs/cplusplus => plugins/cpptools}/ModelManagerInterface.h (94%)
 rename src/{libs/cplusplus => plugins/cpptools}/TypeHierarchyBuilder.cpp (100%)
 rename src/{libs/cplusplus => plugins/cpptools}/TypeHierarchyBuilder.h (95%)

diff --git a/src/libs/cplusplus/cplusplus-lib.pri b/src/libs/cplusplus/cplusplus-lib.pri
index 57b2e2ffdf8..a48a23d11b6 100644
--- a/src/libs/cplusplus/cplusplus-lib.pri
+++ b/src/libs/cplusplus/cplusplus-lib.pri
@@ -53,9 +53,7 @@ HEADERS += \
     $$PWD/pp-engine.h \
     $$PWD/pp-macro-expander.h \
     $$PWD/pp-scanner.h \
-    $$PWD/ModelManagerInterface.h \
-    $$PWD/findcdbbreakpoint.h \
-    $$PWD/TypeHierarchyBuilder.h
+    $$PWD/findcdbbreakpoint.h
 
 SOURCES += \
     $$PWD/SimpleLexer.cpp \
@@ -82,8 +80,6 @@ SOURCES += \
     $$PWD/pp-engine.cpp \
     $$PWD/pp-macro-expander.cpp \
     $$PWD/pp-scanner.cpp \
-    $$PWD/ModelManagerInterface.cpp \
-    $$PWD/findcdbbreakpoint.cpp \
-    $$PWD/TypeHierarchyBuilder.cpp
+    $$PWD/findcdbbreakpoint.cpp
 
 RESOURCES += $$PWD/cplusplus.qrc
diff --git a/src/plugins/analyzerbase/analyzerutils.cpp b/src/plugins/analyzerbase/analyzerutils.cpp
index 902bac34040..870cb160df4 100644
--- a/src/plugins/analyzerbase/analyzerutils.cpp
+++ b/src/plugins/analyzerbase/analyzerutils.cpp
@@ -41,7 +41,7 @@
 #include <utils/qtcassert.h>
 
 #include <cplusplus/ExpressionUnderCursor.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/LookupItem.h>
 #include <cplusplus/TypeOfExpression.h>
 
diff --git a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
index 132f8059375..79e58a9ca9c 100644
--- a/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
+++ b/src/plugins/autotoolsprojectmanager/autotoolsproject.cpp
@@ -48,7 +48,7 @@
 #include <projectexplorer/buildsteplist.h>
 #include <projectexplorer/projectexplorerconstants.h>
 #include <extensionsystem/pluginmanager.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <coreplugin/icore.h>
 #include <utils/qtcassert.h>
 
diff --git a/src/plugins/classview/classview_dependencies.pri b/src/plugins/classview/classview_dependencies.pri
index 19ddab5e9ad..b130241048a 100644
--- a/src/plugins/classview/classview_dependencies.pri
+++ b/src/plugins/classview/classview_dependencies.pri
@@ -2,5 +2,4 @@ include(../../libs/utils/utils.pri)
 include(../../plugins/coreplugin/coreplugin.pri)
 include(../../plugins/cpptools/cpptools.pri)
 include(../../plugins/projectexplorer/projectexplorer.pri)
-include(../../libs/cplusplus/cplusplus.pri)
 include(../../plugins/texteditor/texteditor.pri)
diff --git a/src/plugins/classview/classviewmanager.cpp b/src/plugins/classview/classviewmanager.cpp
index e3e78ccbffc..d2bedb4f42e 100644
--- a/src/plugins/classview/classviewmanager.cpp
+++ b/src/plugins/classview/classviewmanager.cpp
@@ -40,7 +40,7 @@
 #include <projectexplorer/projectexplorer.h>
 #include <projectexplorer/session.h>
 #include <texteditor/basetexteditor.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cpptools/cpptoolsconstants.h>
 #include <coreplugin/icore.h>
 #include <coreplugin/progressmanager/progressmanager.h>
diff --git a/src/plugins/classview/classviewparser.cpp b/src/plugins/classview/classviewparser.cpp
index 0056918976b..2eff6ab8e3f 100644
--- a/src/plugins/classview/classviewparser.cpp
+++ b/src/plugins/classview/classviewparser.cpp
@@ -41,7 +41,7 @@
 #include <Name.h>
 
 // other
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/Overview.h>
 #include <cplusplus/Icons.h>
 #include <projectexplorer/projectexplorer.h>
diff --git a/src/plugins/classview/classviewparser.h b/src/plugins/classview/classviewparser.h
index 07069918606..a74d7e43608 100644
--- a/src/plugins/classview/classviewparser.h
+++ b/src/plugins/classview/classviewparser.h
@@ -38,7 +38,7 @@
 #include "classviewparsertreeitem.h"
 
 #include <CPlusPlusForwardDeclarations.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppDocument.h>
 
 // might be changed to forward declaration - is not done to be less dependent
diff --git a/src/plugins/cmakeprojectmanager/cmakeproject.cpp b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
index ba79dff82c4..8f70cfc19ab 100644
--- a/src/plugins/cmakeprojectmanager/cmakeproject.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeproject.cpp
@@ -47,7 +47,7 @@
 #include <projectexplorer/buildsteplist.h>
 #include <projectexplorer/buildmanager.h>
 #include <projectexplorer/toolchain.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/qtcassert.h>
 #include <coreplugin/icore.h>
diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
index fb1a7279364..1a4e427cf94 100644
--- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.cpp
@@ -35,7 +35,7 @@
 #include "cmaketarget.h"
 #include "cmakebuildconfiguration.h"
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 
 #include <QProcess>
 
diff --git a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h
index 2fe7cc0ffc0..b04b9a5f8bf 100644
--- a/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h
+++ b/src/plugins/cmakeprojectmanager/cmakeuicodemodelsupport.h
@@ -33,7 +33,7 @@
 #ifndef CMAKEUICODEMODELSUPPORT_H
 #define CMAKEUICODEMODELSUPPORT_H
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cpptools/uicodecompletionsupport.h>
 
 #include <QDateTime>
diff --git a/src/plugins/cppeditor/cppeditor.cpp b/src/plugins/cppeditor/cppeditor.cpp
index e6149b9bacd..44fce2a77f4 100644
--- a/src/plugins/cppeditor/cppeditor.cpp
+++ b/src/plugins/cppeditor/cppeditor.cpp
@@ -49,7 +49,7 @@
 #include <SymbolVisitor.h>
 #include <TranslationUnit.h>
 #include <cplusplus/ASTPath.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/ExpressionUnderCursor.h>
 #include <cplusplus/TypeOfExpression.h>
 #include <cplusplus/Overview.h>
diff --git a/src/plugins/cppeditor/cppeditor.h b/src/plugins/cppeditor/cppeditor.h
index 999e4dacc76..bcdcf3e15c0 100644
--- a/src/plugins/cppeditor/cppeditor.h
+++ b/src/plugins/cppeditor/cppeditor.h
@@ -36,7 +36,7 @@
 #include "cppeditorenums.h"
 #include "cppfunctiondecldeflink.h"
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppDocument.h>
 #include <cplusplus/LookupContext.h>
 #include <texteditor/basetexteditor.h>
diff --git a/src/plugins/cppeditor/cppelementevaluator.cpp b/src/plugins/cppeditor/cppelementevaluator.cpp
index faa723a2158..56d9660997a 100644
--- a/src/plugins/cppeditor/cppelementevaluator.cpp
+++ b/src/plugins/cppeditor/cppelementevaluator.cpp
@@ -42,8 +42,8 @@
 #include <Scope.h>
 #include <Symbol.h>
 #include <Symbols.h>
-#include <TypeHierarchyBuilder.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/TypeHierarchyBuilder.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/ExpressionUnderCursor.h>
 #include <cplusplus/Overview.h>
 #include <cplusplus/TypeOfExpression.h>
diff --git a/src/plugins/cppeditor/cpphoverhandler.cpp b/src/plugins/cppeditor/cpphoverhandler.cpp
index 6e6d3e30eef..0c1ed57da91 100644
--- a/src/plugins/cppeditor/cpphoverhandler.cpp
+++ b/src/plugins/cppeditor/cpphoverhandler.cpp
@@ -37,7 +37,7 @@
 #include <coreplugin/editormanager/ieditor.h>
 #include <coreplugin/editormanager/editormanager.h>
 #include <coreplugin/helpmanager.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <extensionsystem/pluginmanager.h>
 #include <texteditor/itexteditor.h>
 #include <texteditor/basetexteditor.h>
diff --git a/src/plugins/cppeditor/cppplugin.cpp b/src/plugins/cppeditor/cppplugin.cpp
index ca3476bd401..b96205e43c4 100644
--- a/src/plugins/cppeditor/cppplugin.cpp
+++ b/src/plugins/cppeditor/cppplugin.cpp
@@ -57,7 +57,7 @@
 #include <texteditor/texteditorplugin.h>
 #include <texteditor/texteditorsettings.h>
 #include <texteditor/texteditorconstants.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cpptools/cpptoolsconstants.h>
 #include <cpptools/cpptoolssettings.h>
 
diff --git a/src/plugins/cppeditor/cppquickfixes.cpp b/src/plugins/cppeditor/cppquickfixes.cpp
index 7833f990995..44292fe0757 100644
--- a/src/plugins/cppeditor/cppquickfixes.cpp
+++ b/src/plugins/cppeditor/cppquickfixes.cpp
@@ -56,7 +56,7 @@
 #include <cplusplus/DependencyTable.h>
 #include <cplusplus/Overview.h>
 #include <cplusplus/TypeOfExpression.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppRewriter.h>
 #include <cpptools/cpptoolsconstants.h>
 #include <cpptools/cpprefactoringchanges.h>
diff --git a/src/libs/cplusplus/ModelManagerInterface.cpp b/src/plugins/cpptools/ModelManagerInterface.cpp
similarity index 100%
rename from src/libs/cplusplus/ModelManagerInterface.cpp
rename to src/plugins/cpptools/ModelManagerInterface.cpp
diff --git a/src/libs/cplusplus/ModelManagerInterface.h b/src/plugins/cpptools/ModelManagerInterface.h
similarity index 94%
rename from src/libs/cplusplus/ModelManagerInterface.h
rename to src/plugins/cpptools/ModelManagerInterface.h
index fdcfa7a66d6..b873e880fe9 100644
--- a/src/libs/cplusplus/ModelManagerInterface.h
+++ b/src/plugins/cpptools/ModelManagerInterface.h
@@ -35,8 +35,7 @@
 
 #include <cplusplus/CppDocument.h>
 #include <languageutils/fakemetaobject.h>
-#include <projectexplorer/project.h>
-#include <projectexplorer/toolchain.h>
+#include "cpptools_global.h"
 
 #include <QObject>
 #include <QHash>
@@ -66,18 +65,20 @@ namespace CppTools {
 
 namespace CPlusPlus {
 
-class CPLUSPLUS_EXPORT CppModelManagerInterface : public QObject
+class CPPTOOLS_EXPORT CppModelManagerInterface : public QObject
 {
     Q_OBJECT
 
 public:
     enum Language { CXX, OBJC };
 
-    class CPLUSPLUS_EXPORT ProjectPart
+    class CPPTOOLS_EXPORT ProjectPart
     {
     public:
         ProjectPart()
-            : qtVersion(UnknownQt)
+            : language(CXX)
+            , cxx11Enabled(false)
+            , qtVersion(UnknownQt)
         {}
 
     public: //attributes
@@ -87,7 +88,7 @@ public:
         QStringList frameworkPaths;
         QStringList precompiledHeaders;
         Language language;
-        ProjectExplorer::ToolChain::CompilerFlags flags;
+        bool cxx11Enabled;
         enum QtVersion {
             UnknownQt = -1,
             NoQt = 0,
@@ -96,16 +97,13 @@ public:
         };
         QtVersion qtVersion;
 
-        bool cpp0xEnabled() const
-        { return flags == ProjectExplorer::ToolChain::STD_CXX11; }
-
         bool objcEnabled() const
         { return language == CppModelManagerInterface::OBJC; }
 
         typedef QSharedPointer<ProjectPart> Ptr;
     };
 
-    class CPLUSPLUS_EXPORT ProjectInfo
+    class CPPTOOLS_EXPORT ProjectInfo
     {
     public:
         ProjectInfo()
@@ -155,7 +153,7 @@ public:
         QByteArray m_defines;
     };
 
-    class CPLUSPLUS_EXPORT WorkingCopy
+    class CPPTOOLS_EXPORT WorkingCopy
     {
     public:
         void insert(const QString &fileName, const QString &source, unsigned revision = 0)
diff --git a/src/libs/cplusplus/TypeHierarchyBuilder.cpp b/src/plugins/cpptools/TypeHierarchyBuilder.cpp
similarity index 100%
rename from src/libs/cplusplus/TypeHierarchyBuilder.cpp
rename to src/plugins/cpptools/TypeHierarchyBuilder.cpp
diff --git a/src/libs/cplusplus/TypeHierarchyBuilder.h b/src/plugins/cpptools/TypeHierarchyBuilder.h
similarity index 95%
rename from src/libs/cplusplus/TypeHierarchyBuilder.h
rename to src/plugins/cpptools/TypeHierarchyBuilder.h
index 1fd8a820169..93727f548e8 100644
--- a/src/libs/cplusplus/TypeHierarchyBuilder.h
+++ b/src/plugins/cpptools/TypeHierarchyBuilder.h
@@ -36,6 +36,7 @@
 #include "CppDocument.h"
 #include "ModelManagerInterface.h"
 #include "Overview.h"
+#include "cpptools_global.h"
 
 #include <QList>
 #include <QStringList>
@@ -43,7 +44,7 @@
 
 namespace CPlusPlus {
 
-class CPLUSPLUS_EXPORT TypeHierarchy
+class CPPTOOLS_EXPORT TypeHierarchy
 {
     friend class TypeHierarchyBuilder;
 
@@ -59,7 +60,7 @@ private:
     QList<TypeHierarchy> _hierarchy;
 };
 
-class CPLUSPLUS_EXPORT TypeHierarchyBuilder
+class CPPTOOLS_EXPORT TypeHierarchyBuilder
 {
 public:
     TypeHierarchyBuilder(Symbol *symbol, const Snapshot &snapshot);
diff --git a/src/plugins/cpptools/abstracteditorsupport.cpp b/src/plugins/cpptools/abstracteditorsupport.cpp
index e6e3e206511..3fb2d76983e 100644
--- a/src/plugins/cpptools/abstracteditorsupport.cpp
+++ b/src/plugins/cpptools/abstracteditorsupport.cpp
@@ -37,7 +37,7 @@
 #include <cplusplus/Overview.h>
 #include <cplusplus/CppDocument.h>
 #include <cplusplus/ExpressionUnderCursor.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include "ModelManagerInterface.h"
 #include <CoreTypes.h>
 #include <Names.h>
 #include <Symbols.h>
diff --git a/src/plugins/cpptools/cppfindreferences.cpp b/src/plugins/cpptools/cppfindreferences.cpp
index 99361c5f384..b6305a359ee 100644
--- a/src/plugins/cpptools/cppfindreferences.cpp
+++ b/src/plugins/cpptools/cppfindreferences.cpp
@@ -55,7 +55,7 @@
 #include <Names.h>
 #include <Scope.h>
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppDocument.h>
 #include <cplusplus/Overview.h>
 #include <cplusplus/FindUsages.h>
diff --git a/src/plugins/cpptools/cppmodelmanager.cpp b/src/plugins/cpptools/cppmodelmanager.cpp
index 7f2030fdb77..bd2998d5884 100644
--- a/src/plugins/cpptools/cppmodelmanager.cpp
+++ b/src/plugins/cpptools/cppmodelmanager.cpp
@@ -96,7 +96,7 @@
 namespace CPlusPlus {
 uint qHash(const CppModelManagerInterface::ProjectPart &p)
 {
-    uint h = qHash(p.defines) ^ p.language ^ p.flags;
+    uint h = qHash(p.defines) ^ p.language ^ ((int) p.cxx11Enabled);
 
     foreach (const QString &i, p.includePaths)
         h ^= qHash(i);
@@ -113,7 +113,7 @@ bool operator==(const CppModelManagerInterface::ProjectPart &p1,
         return false;
     if (p1.language != p2.language)
         return false;
-    if (p1.flags != p2.flags)
+    if (p1.cxx11Enabled != p2.cxx11Enabled)
         return false;
     if (p1.includePaths != p2.includePaths)
         return false;
diff --git a/src/plugins/cpptools/cppmodelmanager.h b/src/plugins/cpptools/cppmodelmanager.h
index 7cf4b856857..75cb35ca5b5 100644
--- a/src/plugins/cpptools/cppmodelmanager.h
+++ b/src/plugins/cpptools/cppmodelmanager.h
@@ -35,7 +35,7 @@
 
 #include "cpptools_global.h"
 #include "cpptoolsconstants.h"
-#include <cplusplus/ModelManagerInterface.h>
+#include "ModelManagerInterface.h"
 #ifndef ICHECK_BUILD
 #  include <projectexplorer/project.h>
 #endif
diff --git a/src/plugins/cpptools/cpprefactoringchanges.h b/src/plugins/cpptools/cpprefactoringchanges.h
index e5612a9a2c8..b59a7d48eda 100644
--- a/src/plugins/cpptools/cpprefactoringchanges.h
+++ b/src/plugins/cpptools/cpprefactoringchanges.h
@@ -34,7 +34,7 @@
 #define CPPREFACTORINGCHANGES_H
 
 #include <ASTfwd.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include "ModelManagerInterface.h"
 #include <cplusplus/CppDocument.h>
 #include <cplusplus/LookupContext.h>
 
diff --git a/src/plugins/cpptools/cpptools.pro b/src/plugins/cpptools/cpptools.pro
index c53c6e8a71f..d0a78e76766 100644
--- a/src/plugins/cpptools/cpptools.pro
+++ b/src/plugins/cpptools/cpptools.pro
@@ -45,7 +45,9 @@ HEADERS += completionsettingspage.h \
     cppchecksymbols.h \
     cpplocalsymbols.h \
     cppsemanticinfo.h \
-    cppcompletionassistprovider.h
+    cppcompletionassistprovider.h \
+    ModelManagerInterface.h \
+    TypeHierarchyBuilder.h
 
 SOURCES += completionsettingspage.cpp \
     cppclassesfilter.cpp \
@@ -82,7 +84,9 @@ SOURCES += completionsettingspage.cpp \
     cppchecksymbols.cpp \
     cpplocalsymbols.cpp \
     cppsemanticinfo.cpp \
-    cppcompletionassistprovider.cpp
+    cppcompletionassistprovider.cpp \
+    ModelManagerInterface.cpp \
+    TypeHierarchyBuilder.cpp
 
 FORMS += completionsettingspage.ui \
     cppfilesettingspage.ui \
diff --git a/src/plugins/cpptools/uicodecompletionsupport.h b/src/plugins/cpptools/uicodecompletionsupport.h
index ad0495942cd..acd8f5f81e2 100644
--- a/src/plugins/cpptools/uicodecompletionsupport.h
+++ b/src/plugins/cpptools/uicodecompletionsupport.h
@@ -37,7 +37,7 @@
 #include "cpptools_global.h"
 #include "abstracteditorsupport.h"
 
-#include <cplusplus/ModelManagerInterface.h>
+#include "ModelManagerInterface.h"
 
 #include <QDateTime>
 
diff --git a/src/plugins/debugger/cdb/cdbengine.cpp b/src/plugins/debugger/cdb/cdbengine.cpp
index eac60689529..bce3ac19108 100644
--- a/src/plugins/debugger/cdb/cdbengine.cpp
+++ b/src/plugins/debugger/cdb/cdbengine.cpp
@@ -75,7 +75,7 @@
 
 #include <cplusplus/findcdbbreakpoint.h>
 #include <cplusplus/CppDocument.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 
 #include <QCoreApplication>
 #include <QFileInfo>
diff --git a/src/plugins/debugger/debuggerplugin.cpp b/src/plugins/debugger/debuggerplugin.cpp
index d072f370ae9..477fbf696e6 100644
--- a/src/plugins/debugger/debuggerplugin.cpp
+++ b/src/plugins/debugger/debuggerplugin.cpp
@@ -84,7 +84,7 @@
 #include <coreplugin/modemanager.h>
 
 #include <cppeditor/cppeditorconstants.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 
 #include <extensionsystem/pluginmanager.h>
 #include <extensionsystem/invoker.h>
diff --git a/src/plugins/debugger/watchutils.cpp b/src/plugins/debugger/watchutils.cpp
index d95834e481d..317a4887bc5 100644
--- a/src/plugins/debugger/watchutils.cpp
+++ b/src/plugins/debugger/watchutils.cpp
@@ -47,7 +47,7 @@
 #include <cpptools/cpptoolsconstants.h>
 #include <cpptools/abstracteditorsupport.h>
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/ExpressionUnderCursor.h>
 #include <cplusplus/Overview.h>
 #include <Symbols.h>
diff --git a/src/plugins/designer/codemodelhelpers.cpp b/src/plugins/designer/codemodelhelpers.cpp
index 0cf6eb48dfa..d6f150d5500 100644
--- a/src/plugins/designer/codemodelhelpers.cpp
+++ b/src/plugins/designer/codemodelhelpers.cpp
@@ -32,7 +32,7 @@
 
 #include "codemodelhelpers.h"
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/Symbols.h>
 #include <cplusplus/CoreTypes.h>
 #include <cplusplus/Name.h>
diff --git a/src/plugins/designer/qtcreatorintegration.cpp b/src/plugins/designer/qtcreatorintegration.cpp
index e1ebe0cabd5..e0b57248237 100644
--- a/src/plugins/designer/qtcreatorintegration.cpp
+++ b/src/plugins/designer/qtcreatorintegration.cpp
@@ -43,7 +43,7 @@
 #include <cpptools/cpptoolsconstants.h>
 #include <cpptools/insertionpointlocator.h>
 #include <cpptools/symbolfinder.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/Symbols.h>
 #include <cplusplus/Overview.h>
 #include <cplusplus/CoreTypes.h>
diff --git a/src/plugins/designer/qtcreatorintegration.h b/src/plugins/designer/qtcreatorintegration.h
index 87b52e5ca17..50e97bb5d9e 100644
--- a/src/plugins/designer/qtcreatorintegration.h
+++ b/src/plugins/designer/qtcreatorintegration.h
@@ -33,7 +33,7 @@
 #ifndef QTCREATORINTEGRATION_H
 #define QTCREATORINTEGRATION_H
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 
 #if QT_VERSION >= 0x050000
 #    include <QDesignerIntegration>
diff --git a/src/plugins/genericprojectmanager/genericproject.cpp b/src/plugins/genericprojectmanager/genericproject.cpp
index db917e42493..2e98b1252c9 100644
--- a/src/plugins/genericprojectmanager/genericproject.cpp
+++ b/src/plugins/genericprojectmanager/genericproject.cpp
@@ -42,7 +42,7 @@
 #include <projectexplorer/customexecutablerunconfiguration.h>
 #include <projectexplorer/toolchainmanager.h>
 #include <projectexplorer/projectexplorerconstants.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <extensionsystem/pluginmanager.h>
 #include <utils/pathchooser.h>
 #include <utils/qtcassert.h>
diff --git a/src/plugins/qmljstools/qmljsfindexportedcpptypes.cpp b/src/plugins/qmljstools/qmljsfindexportedcpptypes.cpp
index e10c15e4e8b..1f064dc6aca 100644
--- a/src/plugins/qmljstools/qmljsfindexportedcpptypes.cpp
+++ b/src/plugins/qmljstools/qmljsfindexportedcpptypes.cpp
@@ -45,7 +45,7 @@
 #include <cplusplus/CoreTypes.h>
 #include <cplusplus/Symbols.h>
 #include <cplusplus/SimpleLexer.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <utils/qtcassert.h>
 
 #include <QDebug>
diff --git a/src/plugins/qmljstools/qmljsmodelmanager.cpp b/src/plugins/qmljstools/qmljsmodelmanager.cpp
index 35f141539a2..ea67158e796 100644
--- a/src/plugins/qmljstools/qmljsmodelmanager.cpp
+++ b/src/plugins/qmljstools/qmljsmodelmanager.cpp
@@ -40,7 +40,7 @@
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <coreplugin/mimedatabase.h>
 #include <coreplugin/messagemanager.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppDocument.h>
 #include <qmljs/qmljscontext.h>
 #include <qmljs/qmljsbind.h>
diff --git a/src/plugins/qmljstools/qmljstools_dependencies.pri b/src/plugins/qmljstools/qmljstools_dependencies.pri
index b9b7d70c888..fe173668db5 100644
--- a/src/plugins/qmljstools/qmljstools_dependencies.pri
+++ b/src/plugins/qmljstools/qmljstools_dependencies.pri
@@ -4,3 +4,4 @@ include($$IDE_SOURCE_TREE/src/libs/qmljs/qmljs.pri)
 include($$IDE_SOURCE_TREE/src/plugins/projectexplorer/projectexplorer.pri)
 include($$IDE_SOURCE_TREE/src/plugins/qtsupport/qtsupport.pri)
 include($$IDE_SOURCE_TREE/src/plugins/texteditor/texteditor.pri)
+include($$IDE_SOURCE_TREE/src/plugins/cpptools/cpptools.pri)
diff --git a/src/plugins/qt4projectmanager/qt4nodes.cpp b/src/plugins/qt4projectmanager/qt4nodes.cpp
index 002eb5fd1ae..ca0751318d6 100644
--- a/src/plugins/qt4projectmanager/qt4nodes.cpp
+++ b/src/plugins/qt4projectmanager/qt4nodes.cpp
@@ -50,7 +50,7 @@
 #include <coreplugin/iversioncontrol.h>
 #include <coreplugin/vcsmanager.h>
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/CppDocument.h>
 #include <extensionsystem/pluginmanager.h>
 #include <projectexplorer/projectexplorer.h>
diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp
index bb7a8301938..bc8e4a6f87d 100644
--- a/src/plugins/qt4projectmanager/qt4project.cpp
+++ b/src/plugins/qt4projectmanager/qt4project.cpp
@@ -51,7 +51,7 @@
 #include <coreplugin/coreconstants.h>
 #include <coreplugin/progressmanager/progressmanager.h>
 #include <extensionsystem/pluginmanager.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <qmljs/qmljsmodelmanagerinterface.h>
 #include <projectexplorer/toolchain.h>
 #include <projectexplorer/headerpath.h>
@@ -542,7 +542,7 @@ void Qt4Project::updateCppCodeModel()
         part->language = CPlusPlus::CppModelManagerInterface::CXX;
         // part->flags
         if (tc)
-            part->flags = tc->compilerFlags(pro->variableValue(CppFlagsVar));
+            part->cxx11Enabled = tc->compilerFlags(pro->variableValue(CppFlagsVar)) == ToolChain::STD_CXX11;
 
         part->sourceFiles = pro->variableValue(CppSourceVar);
         pinfo.appendProjectPart(part);
diff --git a/src/plugins/todo/cpptodoitemsscanner.h b/src/plugins/todo/cpptodoitemsscanner.h
index dc5ff1d8daa..8ce7fb208a9 100644
--- a/src/plugins/todo/cpptodoitemsscanner.h
+++ b/src/plugins/todo/cpptodoitemsscanner.h
@@ -36,7 +36,7 @@
 
 #include "todoitemsscanner.h"
 
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 
 namespace Todo {
 namespace Internal {
diff --git a/src/plugins/vcsbase/vcsbase_dependencies.pri b/src/plugins/vcsbase/vcsbase_dependencies.pri
index 672a4f65cf4..3f3f1c378f8 100644
--- a/src/plugins/vcsbase/vcsbase_dependencies.pri
+++ b/src/plugins/vcsbase/vcsbase_dependencies.pri
@@ -2,4 +2,4 @@ include(../../plugins/coreplugin/coreplugin.pri)
 include(../../plugins/texteditor/texteditor.pri)
 include(../../plugins/projectexplorer/projectexplorer.pri)
 include(../../plugins/find/find.pri)
-include(../../libs/cplusplus/cplusplus.pri)
+include(../../plugins/cpptools/cpptools.pri)
diff --git a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
index 38edfae9541..41360a54584 100644
--- a/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
+++ b/src/plugins/vcsbase/vcsbasesubmiteditor.cpp
@@ -43,7 +43,7 @@
 #include <cplusplus/CoreTypes.h>
 #include <cplusplus/FullySpecifiedType.h>
 #include <cplusplus/Literals.h>
-#include <cplusplus/ModelManagerInterface.h>
+#include <cpptools/ModelManagerInterface.h>
 #include <cplusplus/Symbol.h>
 #include <cplusplus/Symbols.h>
 #include <cplusplus/TranslationUnit.h>
-- 
GitLab