Consider restructuring the project to simplify adding support for new chips #45
Description
Currently due to the limited functionality of the templating system used by cargo-generate
, our template files are quite messy. It's also rather difficult to add support for a new chip, and in general I just feel that from a maintainer's perspective this project still leaves a lot to be desired.
I'm proposing we consider restructuring the project to simplify things for us. I have two possible ideas; both of these have the unfortunate side-effect of requiring a fair bit of duplication, however I feel they are both cleaner and will give us much more flexibility than we currently have.
I will outline my ideas below. It may turn out that sticking with our current approach is the right way forward, however I would at least like to discuss these other options.
Per-architecture Templates
One possibility is splitting things up into two subdirectories, riscv
and xtensa
, much in the same way that esp-idf-template
is split into cargo
and cmake
directories.
This removes a lot of the conditional code from our templates, and we are fairly certain that no new Xtensa devices will be released so we can be reasonably confident that this will not change much. Adding support for new devices will always require modifying the riscv
template.
Per-device Templates
Taking this even a step further, we could simply have a directory for each supported device. This results in a lot of duplication, however the templates become much simpler and cleaner as a result and we have maximum flexibility. This also makes it trivial to add support for a new device.
My only concern here is that I'm not sure this level of duplication is worth the benefits.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status