-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Makefile.features: introduce FEATURES_COMPATIBLE_feature += feature_2 #12427
Makefile.features: introduce FEATURES_COMPATIBLE_feature += feature_2 #12427
Conversation
Declare FEATURES_COMPATIBLES to describe provided features and compatible features that are inherited. This also adds * FEATURES_COMPATIBLES_ONLY to only see compatible ones that are not directly provided * FEATURES_USED_EXPLICIT to get the feature used before resolving providers of such features
…e' features Features can now provide other features by defining them as FEATURES_COMPATIBLE_name_of_the_feature += features_also_provided
I think this is a good way of implementing the buildsystem part of #11676. |
…FEATURES_COMPATIBLE' FEATURES_COMPATIBLE should only be defined with '=' otherwise it explodes when parsing with 'info-boards-supported'
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. If you want me to ignore this issue, please mark it with the "State: don't stale" label. Thank you for your contributions. |
Contribution description
This introduces a new concept that a feature can declare other feature it provides. I used the name "compatible" here as we just heard about the 'compatible' string in device trees.
Naming can be changed of course.
I used here 'driver_DRIVERNAME' to allow automatic mapping to the module, but not sure I like it.
This currently means that we do
The handling is correct and complete but could still get some refinement.
It is just a 2 hours version.
Drivers and examples are at example state but give the idea of what should be done.
This currently breaks info-boards-supported by making really really slow do not build with CI !!!fixed by using 'FEATURES_COMPATIBLE_name = auie'Testing procedure
Requesting a "child" feature, correctly triggers the inclusion of the "parent" features.
In
examples/hello_world
:With a lot of debugging variables showing each intermediat variables, and the `FEATURES_PROVIDERS_*` debug variables too.
Try listing the modules for
samr21-xpro
,iotlab-m3
andmulle
fortests/driver_at86rf2xx
. The driver is selected without explicit value in the application.BOARD=samr21-xpro make --no-print-directory -C tests/driver_at86rf2xx/ info-debug-variable-USEMODULE
In master it was the same
It finds unsatisfied features.
Issues/PRs references
Implementation of #11676 (comment)