From da6089a005b381754377f173408ded52b9345acd Mon Sep 17 00:00:00 2001 From: Sourabh Mehta <73165318+soumeh01@users.noreply.github.com> Date: Thu, 5 Jun 2025 16:29:54 +0200 Subject: [PATCH] Skip parsing copied-from to avoid redefinition (#1232) --- tools/projmgr/src/ProjMgrYamlParser.cpp | 11 ++++++++--- .../TestLayers/variables-redefinition.csolution.yml | 2 ++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/tools/projmgr/src/ProjMgrYamlParser.cpp b/tools/projmgr/src/ProjMgrYamlParser.cpp index c933785ab..df436fb13 100644 --- a/tools/projmgr/src/ProjMgrYamlParser.cpp +++ b/tools/projmgr/src/ProjMgrYamlParser.cpp @@ -486,10 +486,15 @@ void ProjMgrYamlParser::ParseVectorOfStringPairs(const YAML::Node& parent, const if (item.IsMap()) { const auto& elements = item.as>(); for (auto element : elements) { - if (YAML::IsNullString(element.second)) { - element.second = ""; + // skip parsing variable named "copied-from" + // This is a special case used by the CMSIS csolution extension + // and may involve redefinitions + if (element.first != "copied-from") { + if (YAML::IsNullString(element.second)) { + element.second = ""; + } + value.push_back(element); } - value.push_back(element); } } else { value.push_back(make_pair(item.as(), "")); diff --git a/tools/projmgr/test/data/TestLayers/variables-redefinition.csolution.yml b/tools/projmgr/test/data/TestLayers/variables-redefinition.csolution.yml index c4d00a356..483233758 100644 --- a/tools/projmgr/test/data/TestLayers/variables-redefinition.csolution.yml +++ b/tools/projmgr/test/data/TestLayers/variables-redefinition.csolution.yml @@ -7,12 +7,14 @@ solution: compiler: AC6 variables: - VariableName: FirstValue + - copied-from: /buildtype/test.yml target-types: - type: TargetType device: RteTest_ARMCM0 variables: - VariableName: SecondValue + - copied-from: /targettype/test.yml projects: - project: variables-redefinition.cproject.yml