From 8c00c4c34eac048e7745cf84409ef7946db6265a Mon Sep 17 00:00:00 2001 From: Cristian Adam Date: Wed, 2 Mar 2022 14:29:15 +0100 Subject: [PATCH] CMakePM: Do not modify container in loop Amends 2f77dc34158910e9f07107836bd5fcc923dd26a7 Change-Id: Ida99d5c83eb1b30865b90d83583244728efb38a7 Reviewed-by: Eike Ziller --- .../cmakeprojectmanager/cmakebuildconfiguration.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 3780208aa05..fe416e01bca 100644 --- a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp +++ b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp @@ -1738,14 +1738,14 @@ const QStringList InitialCMakeArgumentsAspect::allValues() const void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringList &additionalOptions) { QStringList arguments = values.split('\n', Qt::SkipEmptyParts); + QString cmakeGenerator; for (QString &arg: arguments) { 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); + cmakeGenerator = "-DCMAKE_GENERATOR:STRING=" + arg.mid(idxDash + strDash.length()); arg = arg.left(idxDash); arg.replace("-G", "-DCMAKE_EXTRA_GENERATOR:STRING="); @@ -1760,6 +1760,9 @@ void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringLis if (arg.startsWith("-T")) arg.replace("-T", "-DCMAKE_GENERATOR_TOOLSET:STRING="); } + if (!cmakeGenerator.isEmpty()) + arguments.append(cmakeGenerator); + m_cmakeConfiguration = CMakeConfig::fromArguments(arguments, additionalOptions); for (CMakeConfigItem &ci : m_cmakeConfiguration) ci.isInitial = true;