aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/cmakeprojectmanager
diff options
context:
space:
mode:
authorTobias Hunger <tobias.hunger@qt.io>2020-04-23 18:29:27 +0200
committerTobias Hunger <tobias.hunger@qt.io>2020-04-30 08:06:39 +0000
commit0b9513f2731564f28622fcb6b9b8bca4e38c0c53 (patch)
tree01b2e50a6d60138a9cd722d40514d86463647d8c /src/plugins/cmakeprojectmanager
parent60064620c8cb0f1fe171225137ed249954199ac4 (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.cpp30
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.h27
-rw-r--r--src/plugins/cmakeprojectmanager/cmakebuildsystem.md8
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