diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 6513dadab92..c16154520b8 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1739,8 +1739,22 @@ void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringLis { QStringList arguments = values.split('\n', Qt::SkipEmptyParts); for (QString &arg: arguments) { - if (arg.startsWith("-G")) - arg.replace("-G", "-DCMAKE_GENERATOR:STRING="); + if (arg.startsWith("-G")) { + const QString strDash(" - "); + const int idxDash = arg.indexOf(strDash); + if (idxDash > 0) { + // -GCodeBlocks - Ninja + QString generator = "-DCMAKE_GENERATOR:STRING=" + arg.mid(idxDash + strDash.length()); + arguments.append(generator); + + arg = arg.first(idxDash); + arg.replace("-G", "-DCMAKE_EXTRA_GENERATOR:STRING="); + + } else { + // -GNinja + arg.replace("-G", "-DCMAKE_GENERATOR:STRING="); + } + } if (arg.startsWith("-A")) arg.replace("-A", "-DCMAKE_GENERATOR_PLATFORM:STRING="); if (arg.startsWith("-T")) diff --git a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp index cd315af53b8..f627db0d393 100644 --- a/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp +++ b/src/plugins/cmakeprojectmanager/cmakekitinformation.cpp @@ -668,11 +668,10 @@ CMakeConfig CMakeGeneratorKitAspect::generatorCMakeConfig(const ProjectExplorer: 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()); + config << CMakeConfigItem("CMAKE_GENERATOR", info.generator.toUtf8()); + + if (!info.extraGenerator.isEmpty()) + config << CMakeConfigItem("CMAKE_EXTRA_GENERATOR", info.extraGenerator.toUtf8()); if (!info.platform.isEmpty()) config << CMakeConfigItem("CMAKE_GENERATOR_PLATFORM", info.platform.toUtf8());