It was decided during the Virtual Maintainers Assembly 2020.05 to continue with the next phases of the Kconfig migration. This means that Kconfig will be used to model all module’s configurations and dependencies in the build system.
The first milestone is to model all features provided by CPUs and boards. Also explicitly declare and document all the possible features that can be provided and used.
This milestone doesn’t interfere with the current Kconfig integration nor the build system, so it can be performed directly on the master branch. In order to keep the features in sync in the Makefile.features and the Kconfig files, a static check will be added, which will be run for every PR.
What needs to be done
Declare Feature symbols: Analog to the current build system, features like HAS_PERIPH_SPI, HAS_PERIPH_GPIO or HAS_RIOTBOOT have to be declared. Check the Annex for the full list of features
Declare CPUs and boards common symbols: Each CPU and module should declare common symbols to track the hardware in compile time. See "Modelling CPU" and "Modelling boards" for more information.
Select the provided features by CPUs and boards: Each CPU and Board should select the supported feature symbols.
Description
It was decided during the Virtual Maintainers Assembly 2020.05 to continue with the next phases of the Kconfig migration. This means that Kconfig will be used to model all module’s configurations and dependencies in the build system.
The first milestone is to model all features provided by CPUs and boards. Also explicitly declare and document all the possible features that can be provided and used.
This milestone doesn’t interfere with the current Kconfig integration nor the build system, so it can be performed directly on the master branch. In order to keep the features in sync in the Makefile.features and the Kconfig files, a static check will be added, which will be run for every PR.
What needs to be done
https://github.com/RIOT-OS/RIOT/pull/13404 can be used as a reference.
Tracker
Also check the GitHub project.
[x] Declare feature symbols (Common symbols in #14151)
[x] Add static check (#13404)
[x] CPUs
[x] Boards (common symbols + feature selection)