From 068f993db232141f59e3617b2025b0256610a22f Mon Sep 17 00:00:00 2001 From: Tobias Hunger Date: Mon, 5 Feb 2018 13:34:33 +0100 Subject: [PATCH] CustomToolChain: Fix expected format for predefined macros The documentation says predefined macros for custom toolchains are to be in "KEY=VALUE" format, while the code got accidentally changed to only accept "#define KEY VALUE" instead. Task-number: QTCREATORBUG-19714 Change-Id: I073e5b27f6fd5cead25a6406ae1f7cb19a7a03a7 Reviewed-by: Marco Bubke --- src/plugins/projectexplorer/customtoolchain.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/plugins/projectexplorer/customtoolchain.cpp b/src/plugins/projectexplorer/customtoolchain.cpp index dc0989eed19..8b60c3c8521 100644 --- a/src/plugins/projectexplorer/customtoolchain.cpp +++ b/src/plugins/projectexplorer/customtoolchain.cpp @@ -649,7 +649,12 @@ void CustomToolChainConfigWidget::applyImpl() tc->setCompilerCommand(m_compilerCommand->fileName()); tc->setMakeCommand(m_makeCommand->fileName()); tc->setTargetAbi(m_abiWidget->currentAbi()); - tc->setPredefinedMacros(Macro::toMacros(m_predefinedDetails->text().toUtf8())); + Macros macros = Utils::transform( + m_predefinedDetails->text().split('\n', QString::SkipEmptyParts), + [](const QString &m) { + return Macro::fromKeyValue(m); + }); + tc->setPredefinedMacros(macros); tc->setHeaderPaths(m_headerDetails->entries()); tc->setCxx11Flags(m_cxx11Flags->text().split(QLatin1Char(','))); tc->setMkspecs(m_mkspecs->text()); @@ -666,7 +671,10 @@ void CustomToolChainConfigWidget::setFromToolchain() m_compilerCommand->setFileName(tc->compilerCommand()); m_makeCommand->setFileName(FileName::fromString(tc->makeCommand(Environment()))); m_abiWidget->setAbis(QList(), tc->targetAbi()); - m_predefinedMacros->setPlainText(QString::fromUtf8(Macro::toByteArray(tc->rawPredefinedMacros()))); + const QStringList macroLines = Utils::transform(tc->rawPredefinedMacros(), [](const Macro &m) { + return QString::fromUtf8(m.toKeyValue(QByteArray())); + }); + m_predefinedMacros->setPlainText(macroLines.join('\n')); m_headerPaths->setPlainText(tc->headerPathsList().join('\n')); m_cxx11Flags->setText(tc->cxx11Flags().join(QLatin1Char(','))); m_mkspecs->setText(tc->mkspecs());