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();
|
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>
|
std::unique_ptr<CMakeProjectNode>
|
||||||
CMakeBuildSystem::generateProjectTree(const QList<const FileNode *> &allFiles)
|
CMakeBuildSystem::generateProjectTree(const QList<const FileNode *> &allFiles)
|
||||||
{
|
{
|
||||||
@@ -539,7 +520,10 @@ void CMakeBuildSystem::handleParsingSucceeded()
|
|||||||
setApplicationTargets(appTargets());
|
setApplicationTargets(appTargets());
|
||||||
setDeploymentData(deploymentData());
|
setDeploymentData(deploymentData());
|
||||||
|
|
||||||
handleParsingSuccess();
|
QTC_ASSERT(m_waitingForParse, return );
|
||||||
|
m_waitingForParse = false;
|
||||||
|
|
||||||
|
combineScanAndParse();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CMakeBuildSystem::handleParsingFailed(const QString &msg)
|
void CMakeBuildSystem::handleParsingFailed(const QString &msg)
|
||||||
@@ -551,7 +535,11 @@ void CMakeBuildSystem::handleParsingFailed(const QString &msg)
|
|||||||
m_buildDirManager.takeCMakeConfiguration(errorMessage));
|
m_buildDirManager.takeCMakeConfiguration(errorMessage));
|
||||||
// ignore errorMessage here, we already got one.
|
// 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)
|
void CMakeBuildSystem::wireUpConnections(const Project *p)
|
||||||
|
@@ -63,35 +63,38 @@ public:
|
|||||||
|
|
||||||
QStringList filesGeneratedFrom(const QString &sourceFile) const final;
|
QStringList filesGeneratedFrom(const QString &sourceFile) const final;
|
||||||
|
|
||||||
|
// Actions:
|
||||||
void runCMake();
|
void runCMake();
|
||||||
void runCMakeAndScanProjectTree();
|
void runCMakeAndScanProjectTree();
|
||||||
|
|
||||||
// Context menu actions:
|
|
||||||
void buildCMakeTarget(const QString &buildTarget);
|
|
||||||
// Treescanner states:
|
|
||||||
void handleTreeScanningFinished();
|
|
||||||
|
|
||||||
bool persistCMakeState();
|
bool persistCMakeState();
|
||||||
void clearCMakeCache();
|
void clearCMakeCache();
|
||||||
|
|
||||||
// Parser states:
|
// Context menu actions:
|
||||||
void handleParsingSuccess();
|
void buildCMakeTarget(const QString &buildTarget);
|
||||||
void handleParsingError();
|
|
||||||
|
|
||||||
CMakeBuildConfiguration *cmakeBuildConfiguration() const;
|
|
||||||
|
|
||||||
|
// Queries:
|
||||||
const QList<ProjectExplorer::BuildTargetInfo> appTargets() const;
|
const QList<ProjectExplorer::BuildTargetInfo> appTargets() const;
|
||||||
QStringList buildTargetTitles() const;
|
QStringList buildTargetTitles() const;
|
||||||
const QList<CMakeBuildTarget> &buildTargets() const;
|
const QList<CMakeBuildTarget> &buildTargets() const;
|
||||||
ProjectExplorer::DeploymentData deploymentData() const;
|
ProjectExplorer::DeploymentData deploymentData() const;
|
||||||
|
|
||||||
|
CMakeBuildConfiguration *cmakeBuildConfiguration() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
std::unique_ptr<CMakeProjectNode> generateProjectTree(
|
// Parser states:
|
||||||
const QList<const ProjectExplorer::FileNode *> &allFiles);
|
void handleParsingSuccess();
|
||||||
|
void handleParsingError();
|
||||||
|
|
||||||
|
// Treescanner states:
|
||||||
|
void handleTreeScanningFinished();
|
||||||
|
|
||||||
// Combining Treescanner and Parser states:
|
// Combining Treescanner and Parser states:
|
||||||
void combineScanAndParse();
|
void combineScanAndParse();
|
||||||
|
|
||||||
|
std::unique_ptr<CMakeProjectNode> generateProjectTree(
|
||||||
|
const QList<const ProjectExplorer::FileNode *> &allFiles);
|
||||||
|
|
||||||
void checkAndReportError(QString &errorMessage);
|
void checkAndReportError(QString &errorMessage);
|
||||||
|
|
||||||
void updateProjectData();
|
void updateProjectData();
|
||||||
|
@@ -45,11 +45,9 @@ graph TD
|
|||||||
|
|
||||||
parse --> FileApiReader::parse
|
parse --> FileApiReader::parse
|
||||||
FileApiReader::parse --> handleParsingSucceeded
|
FileApiReader::parse --> handleParsingSucceeded
|
||||||
handleParsingSucceeded --> handleParsingSuccess
|
handleParsingSucceeded --> combineScanAndParse
|
||||||
FileApiReader::parse --> handleParsingFailed
|
FileApiReader::parse --> handleParsingFailed
|
||||||
handleParsingFailed --> handleParsingError
|
handleParsingFailed --> combineScanAndParse
|
||||||
handleParsingError --> combineScanAndParse
|
|
||||||
handleParsingSuccess --> combineScanAndParse
|
|
||||||
|
|
||||||
TreeScanner::asyncScanForFiles --> handleTreeScanningFinished
|
TreeScanner::asyncScanForFiles --> handleTreeScanningFinished
|
||||||
handleTreeScanningFinished --> combineScanAndParse
|
handleTreeScanningFinished --> combineScanAndParse
|
||||||
@@ -110,7 +108,6 @@ sequenceDiagram
|
|||||||
alt Return Result from FileApiReader
|
alt Return Result from FileApiReader
|
||||||
FileApiReader ->> BuildDirManager: signal dataAvailable()
|
FileApiReader ->> BuildDirManager: signal dataAvailable()
|
||||||
BuildDirManager ->> CMakeBuildSystem: signal dataAvailable() and trigger handleParsingSucceeded()
|
BuildDirManager ->> CMakeBuildSystem: signal dataAvailable() and trigger handleParsingSucceeded()
|
||||||
CMakeBuildSystem ->> CMakeBuildSystem: call handleParsingSuccess()
|
|
||||||
CMakeBuildSystem ->> BuildDirManager: call takeBuildTargets()
|
CMakeBuildSystem ->> BuildDirManager: call takeBuildTargets()
|
||||||
BuildDirManager ->> FileApiReader: call takeBuildTargets()
|
BuildDirManager ->> FileApiReader: call takeBuildTargets()
|
||||||
CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...)
|
CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...)
|
||||||
@@ -118,7 +115,6 @@ sequenceDiagram
|
|||||||
else
|
else
|
||||||
FileApiReader ->> BuildDirManager: signal errorOccurred(...)
|
FileApiReader ->> BuildDirManager: signal errorOccurred(...)
|
||||||
BuildDirManager ->> CMakeBuildSystem: signal errorOccurred(...) and trigger handelParsingFailed(...)
|
BuildDirManager ->> CMakeBuildSystem: signal errorOccurred(...) and trigger handelParsingFailed(...)
|
||||||
CMakeBuildSystem ->> CMakeBuildSystem: call handelParsingError()
|
|
||||||
CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...)
|
CMakeBuildSystem ->> BuildDirManager: call takeCMakeConfiguration(...)
|
||||||
BuildDirManager ->> FileApiReader: call takeCMakeConfiguration(....)
|
BuildDirManager ->> FileApiReader: call takeCMakeConfiguration(....)
|
||||||
end
|
end
|
||||||
|
Reference in New Issue
Block a user