forked from qt-creator/qt-creator
CMakePM: Do not modify container in loop
Amends 2f77dc3415
Change-Id: Ida99d5c83eb1b30865b90d83583244728efb38a7
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
@@ -1738,14 +1738,14 @@ const QStringList InitialCMakeArgumentsAspect::allValues() const
|
|||||||
void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringList &additionalOptions)
|
void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringList &additionalOptions)
|
||||||
{
|
{
|
||||||
QStringList arguments = values.split('\n', Qt::SkipEmptyParts);
|
QStringList arguments = values.split('\n', Qt::SkipEmptyParts);
|
||||||
|
QString cmakeGenerator;
|
||||||
for (QString &arg: arguments) {
|
for (QString &arg: arguments) {
|
||||||
if (arg.startsWith("-G")) {
|
if (arg.startsWith("-G")) {
|
||||||
const QString strDash(" - ");
|
const QString strDash(" - ");
|
||||||
const int idxDash = arg.indexOf(strDash);
|
const int idxDash = arg.indexOf(strDash);
|
||||||
if (idxDash > 0) {
|
if (idxDash > 0) {
|
||||||
// -GCodeBlocks - Ninja
|
// -GCodeBlocks - Ninja
|
||||||
QString generator = "-DCMAKE_GENERATOR:STRING=" + arg.mid(idxDash + strDash.length());
|
cmakeGenerator = "-DCMAKE_GENERATOR:STRING=" + arg.mid(idxDash + strDash.length());
|
||||||
arguments.append(generator);
|
|
||||||
|
|
||||||
arg = arg.left(idxDash);
|
arg = arg.left(idxDash);
|
||||||
arg.replace("-G", "-DCMAKE_EXTRA_GENERATOR:STRING=");
|
arg.replace("-G", "-DCMAKE_EXTRA_GENERATOR:STRING=");
|
||||||
@@ -1760,6 +1760,9 @@ void InitialCMakeArgumentsAspect::setAllValues(const QString &values, QStringLis
|
|||||||
if (arg.startsWith("-T"))
|
if (arg.startsWith("-T"))
|
||||||
arg.replace("-T", "-DCMAKE_GENERATOR_TOOLSET:STRING=");
|
arg.replace("-T", "-DCMAKE_GENERATOR_TOOLSET:STRING=");
|
||||||
}
|
}
|
||||||
|
if (!cmakeGenerator.isEmpty())
|
||||||
|
arguments.append(cmakeGenerator);
|
||||||
|
|
||||||
m_cmakeConfiguration = CMakeConfig::fromArguments(arguments, additionalOptions);
|
m_cmakeConfiguration = CMakeConfig::fromArguments(arguments, additionalOptions);
|
||||||
for (CMakeConfigItem &ci : m_cmakeConfiguration)
|
for (CMakeConfigItem &ci : m_cmakeConfiguration)
|
||||||
ci.isInitial = true;
|
ci.isInitial = true;
|
||||||
|
Reference in New Issue
Block a user