CompilationDatabase: Support both code models

Extract headers, defines and fileKind from flags in
order to have complete project parts.

Side-effect: better support for MSVC-specific flags.
Change-Id: Iaa1413c91c96c3cf89ddbe76a7a1f0f46c5289c0
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@qt.io>
This commit is contained in:
Ivan Donchevskii
2018-10-30 10:31:34 +01:00
parent cb75aa3e58
commit f604c8a77c
20 changed files with 970 additions and 198 deletions

View File

@@ -35,6 +35,8 @@ namespace CppTools {
class CppProjectUpdater;
}
namespace ProjectExplorer { class Kit; }
namespace CompilationDatabaseProjectManager {
namespace Internal {
@@ -45,10 +47,15 @@ class CompilationDatabaseProject : public ProjectExplorer::Project
public:
explicit CompilationDatabaseProject(const Utils::FileName &filename);
~CompilationDatabaseProject() override;
bool needsConfiguration() const override { return false; }
bool needsBuildConfigurations() const override { return false; }
private:
void buildTreeAndProjectParts(const Utils::FileName &projectFile);
QFutureWatcher<void> m_parserWatcher;
std::unique_ptr<CppTools::CppProjectUpdater> m_cppCodeModelUpdater;
std::unique_ptr<ProjectExplorer::Kit> m_kit;
};
class CompilationDatabaseEditorFactory : public TextEditor::TextEditorFactory