forked from qt-creator/qt-creator
CMakePM: Apply Kit CMake configuration to Initial Configuration
When the user changes or adds new CMake Kit parameters, the changes are reflected in the Initial Configuration. Change-Id: Icca1c76749c772e946ff250f94b7965cf7cf9ee8 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -765,12 +765,27 @@ void CMakeBuildSettingsWidget::updateFromKit()
|
||||
const Kit *k = m_buildConfiguration->kit();
|
||||
const CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
|
||||
|
||||
// First the key value parameters
|
||||
ConfigModel::KitConfiguration configHash;
|
||||
for (const CMakeConfigItem &i : config)
|
||||
configHash.insert(QString::fromUtf8(i.key),
|
||||
qMakePair(QString::fromUtf8(i.value), i.expandedValue(k)));
|
||||
configHash.insert(QString::fromUtf8(i.key), i);
|
||||
|
||||
m_configModel->setConfigurationFromKit(configHash);
|
||||
|
||||
// Then the additional parameters
|
||||
const QStringList additionalKitCMake = ProcessArgs::splitArgs(
|
||||
CMakeConfigurationKitAspect::additionalConfiguration(k));
|
||||
const QStringList additionalInitialCMake = ProcessArgs::splitArgs(
|
||||
m_buildConfiguration->aspect<InitialCMakeArgumentsAspect>()->value());
|
||||
|
||||
QStringList mergedArgumentList;
|
||||
std::set_union(additionalInitialCMake.begin(),
|
||||
additionalInitialCMake.end(),
|
||||
additionalKitCMake.begin(),
|
||||
additionalKitCMake.end(),
|
||||
std::back_inserter(mergedArgumentList));
|
||||
m_buildConfiguration->aspect<InitialCMakeArgumentsAspect>()->setValue(
|
||||
ProcessArgs::joinArgs(mergedArgumentList));
|
||||
}
|
||||
|
||||
void CMakeBuildSettingsWidget::updateConfigurationStateIndex(int index)
|
||||
|
||||
Reference in New Issue
Block a user