-
-
Notifications
You must be signed in to change notification settings - Fork 423
linker: allow multi-step link recipe (c.combine
)
#2954
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
c.combine
) (追記ここまで)
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@ ## master #2954 +/- ## ========================================== + Coverage 68.22% 68.26% +0.03% ========================================== Files 241 241 Lines 22696 22696 ========================================== + Hits 15484 15493 +9 + Misses 6012 6006 -6 + Partials 1200 1197 -3
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
@cmaglie any update on when this will be reviewed and/or merged?
Recipes must follow the 'prefix.NNN.suffix' pattern, where 'NNN' is a number. When there is also a single 'prefix.suffix' property defined, make sure to not include that in the list of recipes to run. However, if no numbered recipes are found, use the single 'prefix.suffix' form if it exists. This allows to have both a single recipe and a set of numbered recipes in the same build properties, for backwards compatibility. Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
Enable the use of recipes for the `recipe.c.combine.pattern` command. Allows for more flexibility in the build process. Signed-off-by: Luca Burelli <l.burelli@arduino.cc>
95ea3a3
to
6f08895
Compare
This PR introduces the possibility of using multiple commands for the
c.combine
pattern, and infrastructure that will enable using the same logic on any build step, if so decided.Two changes in behavior are introduced:
When looking for multi-step recipes (e.g. hooks) in
RunRecipe()
, a key that exactly matchesprefix.suffix
is explicitly ignored if numbered entries are found, and only used as a fallback when no other entries are present.This change is consistent with current docs that require a
prefix.NNN.suffix
syntax for multi-step recipes. A property namedprefix.suffix
is undefined behavior, and is currently included among the numbered ones.Reuse the
RunRecipe
logic for therecipe.c.combine
step to allow multi-stage linking. The above change in this context means that numbered steps have priority over the single property, but both can be specified to maintain backwards compatibility (the new numbered properties are ignored by the current IDE).NO TESTS as I don't know where to add the test case... 😇 BUT I tried with a core that defined these rules and got the exact behavior I described here. If someone can give me pointers I can add the proper test case.
Feel free to cherry-pick and/or edit and/or shoot down at will 😅