diff --git a/src/plugins/cmakeprojectmanager/presetsmacros.cpp b/src/plugins/cmakeprojectmanager/presetsmacros.cpp index bf02da3cba9..159e16f4551 100644 --- a/src/plugins/cmakeprojectmanager/presetsmacros.cpp +++ b/src/plugins/cmakeprojectmanager/presetsmacros.cpp @@ -101,7 +101,9 @@ static QString expandMacroEnv(const QString ¯oPrefix, do { done = true; for (qsizetype pos = 0; int len = findMacro(result, &pos, ¯oName);) { - result.replace(pos, len, op(macroName)); + const QString replacement = op(macroName); + // Prevent recursion by not allowing the same value to be reused + result.replace(pos, len, replacement != value ? replacement : ""); pos += macroName.length(); done = false; }