forked from qt-creator/qt-creator
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:
@@ -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)
|
||||
|
@@ -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();
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user