CMakePM: Update generator kit value after Kit Configuration dialog

The CMAKE_GENERATOR variable in "Initial Configuration" didn't get
the Kit value after a change in the "Kit Configuration" dialog.

Change-Id: Ieb9d634e2e9b1a5522b189e16bb66f8cea4c63b1
Reviewed-by: <github-actions-qt-creator@cristianadam.eu>
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Cristian Adam
2022-02-08 20:40:22 +01:00
parent a204ad3236
commit 2eef90e86f
3 changed files with 27 additions and 1 deletions

View File

@@ -770,7 +770,9 @@ void CMakeBuildSettingsWidget::updateAdvancedCheckBox()
void CMakeBuildSettingsWidget::updateFromKit()
{
const Kit *k = m_buildConfiguration->kit();
const CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
CMakeConfig config = CMakeConfigurationKitAspect::configuration(k);
config.append(CMakeGeneratorKitAspect::generatorCMakeConfig(k));
// First the key value parameters
ConfigModel::KitConfiguration configHash;

View File

@@ -660,6 +660,29 @@ QStringList CMakeGeneratorKitAspect::generatorArguments(const Kit *k)
return result;
}
CMakeConfig CMakeGeneratorKitAspect::generatorCMakeConfig(const ProjectExplorer::Kit *k)
{
CMakeConfig config;
GeneratorInfo info = generatorInfo(k);
if (info.generator.isEmpty())
return config;
if (info.extraGenerator.isEmpty())
config << CMakeConfigItem("CMAKE_GENERATOR", info.generator.toUtf8());
else
config << CMakeConfigItem("CMAKE_GENERATOR",
(info.extraGenerator + " - " + info.generator).toUtf8());
if (!info.platform.isEmpty())
config << CMakeConfigItem("CMAKE_GENERATOR_PLATFORM", info.platform.toUtf8());
if (!info.toolset.isEmpty())
config << CMakeConfigItem("CMAKE_GENERATOR_TOOLSET", info.toolset.toUtf8());
return config;
}
bool CMakeGeneratorKitAspect::isMultiConfigGenerator(const Kit *k)
{
const QString generator = CMakeGeneratorKitAspect::generator(k);

View File

@@ -77,6 +77,7 @@ public:
static void set(ProjectExplorer::Kit *k, const QString &generator,
const QString &extraGenerator, const QString &platform, const QString &toolset);
static QStringList generatorArguments(const ProjectExplorer::Kit *k);
static CMakeConfig generatorCMakeConfig(const ProjectExplorer::Kit *k);
static bool isMultiConfigGenerator(const ProjectExplorer::Kit *k);
// KitAspect interface