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>
This commit is contained in:
Tobias Hunger
2020-04-23 18:29:27 +02:00
parent 60064620c8
commit 0b9513f273
3 changed files with 26 additions and 39 deletions

View File

@@ -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)

View File

@@ -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();

View File

@@ -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