The RFC proposes that an addition is made to the seL4 tools repository where there is a global CMake list called
UseBootEnv that can have a list of supported components that make a bootable image. An optional
ConfigureBootEnv CMake function then takes this list, parses it, and takes care of building the bootable image. In the
ConfigureBootEnv function more bootable environments can be supported. The reason for using a list is that in some cases more than one thing might need to be supported. The plan here is to also generate scripts to format sd cards.
The current draft of our implementation is located on a branch of ours. The current implementation shouldn’t change default behaviour except when using bbl, since the bootloader building has been extracted from the middle of the rootserver logic and added to the end to operate only on the final image.
This meets our immediate needs but does anyone have other ideas for better interfaces? Is the Boot Environment list a good idea? Are there better abstractions in CMake to handle something like this? Should it just provide a function like the simulation generation scripts, where the developer can add the function call to the end of their top level CMake script? Any other ideas?