diff options
author | Cristian Adam <cristian.adam@qt.io> | 2022-03-02 14:29:15 +0100 |
---|---|---|
committer | Cristian Adam <cristian.adam@qt.io> | 2022-03-02 13:36:09 +0000 |
commit | 8c00c4c34eac048e7745cf84409ef7946db6265a (patch) | |
tree | 0cad8592f0f15a0e92f3a8dadc73db08e4dc022e | |
parent | 9735049e2c4e1bc817fa7a894ca88c97b61b4741 (diff) |
CMakePM: Do not modify container in loop
Amends 2f77dc34158910e9f07107836bd5fcc923dd26a7
Change-Id: Ida99d5c83eb1b30865b90d83583244728efb38a7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
-rw-r--r-- | src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakebuildconfiguration.cpp index 3780208aa0..fe416e01bc 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; |