CMake: Trigger reparse when target changed

Change-Id: I47959361a345e372265a19982c1b1e6ea778dd89
Task-number: QTCREATORBUG-15927
Reviewed-by: Tim Jenssen <tim.jenssen@theqtcompany.com>
This commit is contained in:
Tobias Hunger
2016-03-30 14:00:14 +02:00
parent 8799188be5
commit 6059527951
2 changed files with 12 additions and 7 deletions

View File

@@ -148,18 +148,22 @@ void CMakeBuildConfiguration::ctor()
m_buildDirManager, &BuildDirManager::forceReparse);
connect(this, &CMakeBuildConfiguration::buildDirectoryChanged,
m_buildDirManager, &BuildDirManager::forceReparse);
connect(target(), &Target::kitChanged, this, [this]() {
ProjectExplorer::Kit *k = target()->kit();
CMakeConfig config = cmakeConfiguration();
config.append(CMakeConfigurationKitInformation::configuration(k)); // last value wins...
setCMakeConfiguration(config);
m_buildDirManager->maybeForceReparse();
});
connect(target(), &Target::kitChanged, this, &CMakeBuildConfiguration::maybeForceReparse);
connect(project, &Project::activeTargetChanged, this, &CMakeBuildConfiguration::maybeForceReparse);
connect(this, &CMakeBuildConfiguration::parsingStarted, project, &CMakeProject::handleParsingStarted);
connect(this, &CMakeBuildConfiguration::dataAvailable, project, &CMakeProject::parseCMakeOutput);
}
void CMakeBuildConfiguration::maybeForceReparse()
{
ProjectExplorer::Kit *k = target()->kit();
CMakeConfig config = cmakeConfiguration();
config.append(CMakeConfigurationKitInformation::configuration(k)); // last value wins...
setCMakeConfiguration(config);
m_buildDirManager->maybeForceReparse();
}
BuildDirManager *CMakeBuildConfiguration::buildDirManager() const
{
return m_buildDirManager;