diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 7760ad63089..fda6987e5e2 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -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; diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index f97575be5ac..bc43f8be3ca 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -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); diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.h b/src/plugins/cmakeprojectmanager/cmakekitinformation.h index 65c3a24dccd..9129f0704cb 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.h +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.h @@ -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