[riot-notifications] [RIOT-OS/RIOT] Define requirements for configuration in the build system (#14027)
notifications at github.com
Tue May 5 22:10:01 CEST 2020
j> * a clear view of the possible configurations for the target hardware
I guess this means "configuration options". I don't think it is possible to actually show all configurations in a clear way.
> Must not allow circular dependencies
Please elaborate. Module A might not work without Module B and vice versa.
What I think we also need:
- "provides" (if selected, also satisfies dependency FOO)
- "conflicts" (cannot be selected together with BAR)
- "one of" (depend on A|B|C, if available, in that order)
- "if module A is available, depend on B"
- "if module A is not available, depend on B"
defines or options of a module should have different "visibility".
E.g., there's no need to compile ztimer with "-DCONFIG_FATFS_SUPPORT_UTF8", but every dependee that includes ztimer.h needs e.g., "-DCONFIG_ZTIMER_NOINLINE".
Any variables / defines for a module should be either global, local or "exported to all dependees".
The build system should support external, versioned packages, and also show their configuration.
Nested configuration contexts:
It should be possible to express and configure nested configurations. E.g., there should be a RIOT context, on top of that a Cortex-M context, on top of that a sam0 context, ..., up to the board or application/board. It needs to be possible to configure each of these contexts.
Access to the data:
IMO json/yaml access to the build system (configuration) data is a must.
Other than that I'm missing a bit of a workflow idea.
Let's start with a fresh (empty, new) application. I guess a first step would be sth like `make configure`.
Which options are presented? Is selecting a board the first thing? How do we configure a portable application?
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the notifications