diff options
author | Tobias Hunger <tobias.hunger@qt.io> | 2020-04-23 18:29:27 +0200 |
---|---|---|
committer | Tobias Hunger <tobias.hunger@qt.io> | 2020-04-30 08:06:39 +0000 |
commit | 0b9513f2731564f28622fcb6b9b8bca4e38c0c53 (patch) | |
tree | 01b2e50a6d60138a9cd722d40514d86463647d8c /src/plugins/cmakeprojectmanager | |
parent | 60064620c8cb0f1fe171225137ed249954199ac4 (diff) |
CMake: Simplify CMake Build System states a bit
Merge handleParsingSucceeded and handleParsingSuccess as well as
handleParsingFailed and handleParsingError.
Change-Id: If4f84bdfa2f59cfa0037a941372a1929996be3bd
Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
Diffstat (limited to 'src/plugins/cmakeprojectmanager')
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp | 30 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsystem.h | 27 | ||||
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildsystem.md | 8 |
3 files changed, 26 insertions, 39 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp index 9b6158b9b6..966ebabd0a 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.cpp @@ -359,25 +359,6 @@ void CMakeBuildSystem::clearCMakeCache() m_buildDirManager.clearCache(); } -void CMakeBuildSystem::handleParsingSuccess() -{ - QTC_ASSERT(m_waitingForParse, return ); - - m_waitingForParse = false; - - combineScanAndParse(); -} - -void CMakeBuildSystem::handleParsingError() -{ - QTC_CHECK(m_waitingForParse); - - m_waitingForParse = false; - m_combinedScanAndParseResult = false; - - combineScanAndParse(); -} - std::unique_ptr<CMakeProjectNode> CMakeBuildSystem::generateProjectTree(const QList<const FileNode *> &allFiles) { @@ -539,7 +520,10 @@ void CMakeBuildSystem::handleParsingSucceeded() setApplicationTargets(appTargets()); setDeploymentData(deploymentData()); - handleParsingSuccess(); + QTC_ASSERT(m_waitingForParse, return ); + m_waitingForParse = false; + + combineScanAndParse(); } void CMakeBuildSystem::handleParsingFailed(const QString &msg) @@ -551,7 +535,11 @@ void CMakeBuildSystem::handleParsingFailed(const QString &msg) m_buildDirManager.takeCMakeConfiguration(errorMessage)); // ignore errorMessage here, we already got one. - handleParsingError(); + QTC_CHECK(m_waitingForParse); + m_waitingForParse = false; + m_combinedScanAndParseResult = false; + + combineScanAndParse(); } void CMakeBuildSystem::wireUpConnections(const Project *p) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h index 796d91e565..7179a42f0e 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.h +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.h @@ -63,35 +63,38 @@ public: QStringList filesGeneratedFrom(const QString &sourceFile) const final; + // Actions: void runCMake(); void runCMakeAndScanProjectTree(); - // Context menu actions: - void buildCMakeTarget(const QString &buildTarget); - // Treescanner states: - void handleTreeScanningFinished(); - bool persistCMakeState(); void clearCMakeCache(); - // Parser states: - void handleParsingSuccess(); - void handleParsingError(); - - CMakeBuildConfiguration *cmakeBuildConfiguration() const; + // Context menu actions: + void buildCMakeTarget(const QString &buildTarget); + // Queries: const QList<ProjectExplorer::BuildTargetInfo> appTargets() const; QStringList buildTargetTitles() const; const QList<CMakeBuildTarget> &buildTargets() const; ProjectExplorer::DeploymentData deploymentData() const; + CMakeBuildConfiguration *cmakeBuildConfiguration() const; + private: - std::unique_ptr<CMakeProjectNode> generateProjectTree( - const QList<const ProjectExplorer::FileNode *> &allFiles); + // Parser states: + void handleParsingSuccess(); + void handleParsingError(); + + // Treescanner states: + void handleTreeScanningFinished(); // Combining Treescanner and Parser states: void combineScanAndParse(); + std::unique_ptr<CMakeProjectNode> generateProjectTree( + const QList<const ProjectExplorer::FileNode *> &allFiles); + void checkAndReportError(QString &errorMessage); void updateProjectData(); diff --git a/src/plugins/cmakeprojectmanager/cmakebuildsystem.md b/src/plugins/cmakeprojectmanager/cmakebuildsystem.md index 97930e844c..1e28c0ad52 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildsystem.md +++ b/src/plugins/cmakeprojectmanager/cmakebuildsystem.md @@ -45,11 +45,9 @@ graph TD parse --> FileApiReader::parse FileApiReader::parse --> handleParsingSucceeded - handleParsingSucceeded --> handleParsingSuccess + handleParsingSucceeded --> combineScanAndParse FileApiReader::parse --> handleParsingFailed - handleParsingFailed --> handleParsingError - handleParsingError --> combineScanAndParse - handleParsingSuccess --> combineScanAndParse + handleParsingFailed --> combineScanAndParse TreeScanner::asyncScanForFiles --> handleTreeScanningFinished handleTreeScanningFinished --> combineScanAndParse @@ -110,7 +108,6 @@ sequenceDiagram alt Return Result from FileApiReader FileApiReader ->> BuildDirManager: signal dataAvailable() BuildDirManager ->> CMakeBuildSystem: signal dataAvailable() and trigger handleParsingSucceeded() - CMakeBuildSystem ->> CMakeBuildSystem: call handleParsingSuccess() CMakeBuildSystem ->> BuildDirManager: call takeBuildTargets() BuildDirManager ->> FileApiReader: call takeBuildTargets() CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...) @@ -118,7 +115,6 @@ sequenceDiagram else FileApiReader ->> BuildDirManager: signal errorOccurred(...) BuildDirManager ->> CMakeBuildSystem: signal errorOccurred(...) and trigger handelParsingFailed(...) - CMakeBuildSystem ->> CMakeBuildSystem: call handelParsingError() CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...) BuildDirManager ->> FileApiReader: call takeCMakeConfiguration(....) end |