aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCristian Adam <cristian.adam@qt.io>2022-03-02 14:29:15 +0100
committerCristian Adam <cristian.adam@qt.io>2022-03-02 13:36:09 +0000
commit8c00c4c34eac048e7745cf84409ef7946db6265a (patch)
tree0cad8592f0f15a0e92f3a8dadc73db08e4dc022e
parent9735049e2c4e1bc817fa7a894ca88c97b61b4741 (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.cpp7
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;