CMake: Fix project parsing notification

This builds on top of 08677c0b01 and
fixes one more code path to go through a common entry/exit point.

Change-Id: I1d00fa9242f247028e5d3b0ef3b5fe1d3f4cb03d
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tim Jenssen <tim.jenssen@qt.io>
This commit is contained in:
Tobias Hunger
2017-09-28 11:32:39 +02:00
parent 1fa26bd9b3
commit 02533e61cf
24 changed files with 812 additions and 648 deletions

View File

@@ -33,10 +33,11 @@
#include <memory>
namespace ProjectExplorer { class ProjectNode; }
namespace CMakeProjectManager {
namespace Internal {
class ServerModeReader : public BuildDirReader
{
Q_OBJECT
@@ -45,18 +46,17 @@ public:
ServerModeReader();
~ServerModeReader() final;
void setParameters(const Parameters &p) final;
void setParameters(const BuildDirParameters &p) final;
bool isCompatible(const Parameters &p) final;
bool isCompatible(const BuildDirParameters &p) final;
void resetData() final;
void parse(bool force) final;
void parse(bool forceConfiguration) final;
void stop() final;
bool isReady() const final;
bool isParsing() const final;
bool hasData() const final;
QList<CMakeBuildTarget> buildTargets() const final;
QList<CMakeBuildTarget> takeBuildTargets() final;
CMakeConfig takeParsedConfiguration() final;
void generateProjectTree(CMakeProjectNode *root,
const QList<const ProjectExplorer::FileNode *> &allFiles) final;
@@ -160,21 +160,19 @@ private:
const QList<ProjectExplorer::FileNode *> knownHeaders,
const QList<const ProjectExplorer::FileNode *> &allFiles);
bool m_hasData = false;
std::unique_ptr<ServerMode> m_cmakeServer;
std::unique_ptr<QFutureInterface<void>> m_future;
int m_progressStepMinimum = 0;
int m_progressStepMaximum = 1000;
CMakeConfig m_cmakeCache;
CMakeConfig m_cmakeConfiguration;
QSet<Utils::FileName> m_cmakeFiles;
QList<ProjectExplorer::FileNode *> m_cmakeInputsFileNodes;
QList<Project *> m_projects;
mutable QList<Target *> m_targets;
QList<Target *> m_targets;
QList<FileGroup *> m_fileGroups;
CMakeParser m_parser;