Skip to content
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

Remove Kconfig dependency modelling #20438

Merged
merged 13 commits into from
Mar 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
26 changes: 1 addition & 25 deletions Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,6 @@ mainmenu "RIOT Configuration"
# Load macro definitions
rsource "kconfigs/Kconfig.consts"

# Load feature declarations
rsource "kconfigs/Kconfig.features"

# Load error symbols
rsource "kconfigs/Kconfig.errors"

# For now, get used modules as macros from this file (see kconfig.mk)
osource "$(KCONFIG_GENERATED_DEPENDENCIES)"

Expand All @@ -41,23 +35,5 @@ menu "External Packages"
osource "$(KCONFIG_EXTERNAL_PKG_CONFIGS)"
endmenu # External Packages

comment "RIOT is in a migration phase."
comment "Some configuration options may not be here. Use CFLAGS instead."

comment "!! ERROR: There are conflicting modules active !!"
depends on ERROR_MODULES_CONFLICT != ""

config TEST_KCONFIG
bool
default y if '$(TEST_KCONFIG)' = '1'
help
This is used during the Kconfig migration to test the module dependency
modelling. Don't change the default value unless you know what you are
doing.

config DEVELHELP
bool "Development Help"
help
Set to enable code in RIOT that does safety checking which might not be
needed in a production environment but helps in the development
process.
comment "Ideally, make a PR to add them to the Kconfig."
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

❤️

6 changes: 1 addition & 5 deletions Makefile.base
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,7 @@ endif

ifneq (,$(SRCXX))
ifeq (,$(filter cpp,$(USEMODULE)))
ifneq (1,$(TEST_KCONFIG))
$(error Found C++ source, but feature "cpp" is not used. Add "FEATURES_REQUIRED += cpp")
else
$(error Found C++ source, but "cpp" module is not used. Enable the MODULE_CPP in Kconfig)
endif
$(error Found C++ source, but feature "cpp" is not used. Add "FEATURES_REQUIRED += cpp")
endif
endif

Expand Down
47 changes: 12 additions & 35 deletions Makefile.include
Original file line number Diff line number Diff line change
Expand Up @@ -268,11 +268,6 @@ include $(RIOTMAKE)/scan-build.inc.mk

export RIOTBUILD_CONFIG_HEADER_C = $(BINDIR)/riotbuild/riotbuild.h

# When testing Kconfig's module modelling we need to run Kconfig
ifeq (1,$(TEST_KCONFIG))
SHOULD_RUN_KCONFIG = 1
endif

ifeq ($(OS),Darwin)
OPEN := open
else
Expand Down Expand Up @@ -425,40 +420,22 @@ include $(RIOTMAKE)/defaultmodules_regular.inc.mk
# Include Kconfig functionalities
include $(RIOTMAKE)/kconfig.mk

# For testing, use TEST_KCONFIG as a switch between Makefile.dep and Kconfig
ifeq (1,$(TEST_KCONFIG))
ifneq ($(RIOT_CI_BUILD),1)
$(info === [ATTENTION] Testing Kconfig dependency modelling ===)
endif
KCONFIG_MODULES := $(call lowercase,$(patsubst CONFIG_MODULE_%,%,$(filter CONFIG_MODULE_%,$(.VARIABLES))))
USEMODULE := $(KCONFIG_MODULES)
KCONFIG_PACKAGES := $(call lowercase,$(patsubst CONFIG_PACKAGE_%,%,$(filter CONFIG_PACKAGE_%,$(.VARIABLES))))
USEPKG := $(KCONFIG_PACKAGES)
# always select provided architecture features
FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED))
# always select CPU core features
FEATURES_REQUIRED += $(filter cpu_core_%,$(FEATURES_PROVIDED))

# Locate used packages in $(RIOTPKG) or $(EXTERNAL_PKG_DIRS).
PKGDIRS := $(RIOTPKG) $(EXTERNAL_PKG_DIRS)
PKG_PATHS := $(sort $(foreach dir,$(PKGDIRS),\
$(foreach pkg,$(USEPKG),$(dir $(wildcard $(dir)/$(pkg)/Makefile)))))
# check if required features are provided and update $(FEATURES_USED)
include $(RIOTMAKE)/features_check.inc.mk

EXTERNAL_MODULE_PATHS := $(dir $(EXTERNAL_MODULE_KCONFIGS))
else
# always select provided architecture features
FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED))
# always select CPU core features
FEATURES_REQUIRED += $(filter cpu_core_%,$(FEATURES_PROVIDED))
# handle removal of default modules
USEMODULE += $(filter-out $(DISABLE_MODULE), $(DEFAULT_MODULE))

# check if required features are provided and update $(FEATURES_USED)
include $(RIOTMAKE)/features_check.inc.mk
# avoid recursive expansion
USEMODULE := $(sort $(USEMODULE))

# handle removal of default modules
USEMODULE += $(filter-out $(DISABLE_MODULE), $(DEFAULT_MODULE))

# avoid recursive expansion
USEMODULE := $(sort $(USEMODULE))

# process dependencies
include $(RIOTMAKE)/dependency_resolution.inc.mk
endif
# process dependencies
include $(RIOTMAKE)/dependency_resolution.inc.mk

# Include dfu-util configuration when using riotboot_dfu bootloader before
# including the board's Makefile.include which could define dfu-util
Expand Down
14 changes: 0 additions & 14 deletions boards/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,3 @@ config BOARD
string
help
Name of the currently selected board.

config MODULE_BOARD
bool
default y
depends on TEST_KCONFIG
help
Module which holds all board-specific files.

config MODULE_BOARD_COMMON_INIT
bool
default y
depends on TEST_KCONFIG
help
Common board initialization module
5 changes: 0 additions & 5 deletions boards/acd52832/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,5 @@ config BOARD_ACD52832
default y
select BOARD_COMMON_NRF52
select CPU_MODEL_NRF52832XXAA
select HAS_PERIPH_I2C
select HAS_PERIPH_SPI
select HAS_PERIPH_UART

select HAVE_SAUL_GPIO

source "$(RIOTBOARD)/common/nrf52xxxdk/Kconfig"
17 changes: 0 additions & 17 deletions boards/adafruit-clue/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,22 +12,5 @@ config BOARD_ADAFRUIT_CLUE
default y
select BOARD_COMMON_NRF52
select CPU_MODEL_NRF52840XXAA
select HAS_PERIPH_I2C
select HAS_PERIPH_SPI
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAS_HIGHLEVEL_STDIO

select HAVE_APDS9960
select HAVE_BMP280_I2C
select HAVE_ILI9341
select HAVE_LIS3MDL
select HAVE_SAUL_GPIO
select HAVE_SHT3X

select MODULE_USB_BOARD_RESET if KCONFIG_USB && TEST_KCONFIG

config FORCE_USB_STDIO
default y

source "$(RIOTBOARD)/common/nrf52/Kconfig"
23 changes: 0 additions & 23 deletions boards/adafruit-grand-central-m4-express/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,26 +11,3 @@ config BOARD_ADAFRUIT_GRAND_CENTRAL_M4_EXPRESS
bool
default y
select CPU_MODEL_SAMD51P20A
select HAS_ARDUINO_ANALOG
select HAS_ARDUINO_PINS
select HAS_HIGHLEVEL_STDIO
select HAS_PERIPH_ADC
select HAS_PERIPH_DAC
select HAS_PERIPH_I2C
select HAS_PERIPH_PWM
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAVE_SAUL_GPIO

select HAVE_MTD_SPI_NOR
# This specific board requires SPI_ON_QSPI for the MTD_SPI_NOR
select MODULE_PERIPH_SPI_ON_QSPI if MODULE_MTD_SPI_NOR

select HAVE_MTD_SDCARD_DEFAULT
select MODULE_FATFS_VFS if MODULE_VFS_DEFAULT

source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig"
18 changes: 0 additions & 18 deletions boards/adafruit-itsybitsy-m4/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,3 @@ config BOARD_ADAFRUIT_ITSYBITSY_M4
bool
default y
select CPU_MODEL_SAMD51G19A
select HAS_HIGHLEVEL_STDIO
select HAS_PERIPH_DAC
select HAS_PERIPH_ADC
select HAS_PERIPH_I2C
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_PWM
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAVE_SAUL_GPIO

select HAVE_MTD_SPI_NOR
# This specific board requires SPI_ON_QSPI for the MTD_SPI_NOR
select MODULE_PERIPH_SPI_ON_QSPI if MODULE_MTD_SPI_NOR

source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig"
12 changes: 0 additions & 12 deletions boards/adafruit-itsybitsy-nrf52/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,5 @@ config BOARD_ADAFRUIT_ITSYBITSY_NRF52
default y
select BOARD_COMMON_NRF52
select CPU_MODEL_NRF52840XXAA
select HAS_PERIPH_I2C
select HAS_PERIPH_SPI
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAS_HIGHLEVEL_STDIO

select HAVE_SAUL_GPIO

select MODULE_USB_BOARD_RESET if KCONFIG_USB && TEST_KCONFIG

config FORCE_USB_STDIO
default y

source "$(RIOTBOARD)/common/nrf52/Kconfig"
19 changes: 0 additions & 19 deletions boards/adafruit-pybadge/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,22 +11,3 @@ config BOARD_ADAFRUIT_PYBADGE
bool
default y
select CPU_MODEL_SAMD51J19A
select HAS_HIGHLEVEL_STDIO
select HAS_PERIPH_ADC
select HAS_PERIPH_DAC
select HAS_PERIPH_I2C
select HAS_PERIPH_PWM
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV

select HAVE_ST7735
select HAVE_SAUL_GPIO
select HAVE_MTD_SPI_NOR
# This specific board requires SPI_ON_QSPI for the MTD_SPI_NOR
select MODULE_PERIPH_SPI_ON_QSPI if MODULE_MTD_SPI_NOR

source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig"
5 changes: 0 additions & 5 deletions boards/airfy-beacon/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,5 @@ config BOARD_AIRFY_BEACON
default y
select BOARD_COMMON_NRF51
select CPU_MODEL_NRF51X22XXAA
select HAS_PERIPH_ADC
select HAS_PERIPH_I2C
select HAS_PERIPH_SPI
select HAS_PERIPH_UART
select MODULE_BOARDS_COMMON_NRF51 if TEST_KCONFIG

source "$(RIOTBOARD)/common/nrf51/Kconfig"
11 changes: 0 additions & 11 deletions boards/alientek-pandora/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,7 @@ config BOARD_ALIENTEK_PANDORA
default y
select CPU_MODEL_STM32L475VE

# Put defined MCU peripherals here (in alphabetical order)
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART

# Put other features for this board (in alphabetical order)
select HAS_RIOTBOOT

# Clock configuration
select BOARD_HAS_LSE

select HAVE_SAUL_GPIO

source "$(RIOTBOARD)/common/stm32/Kconfig"
2 changes: 0 additions & 2 deletions boards/arduino-duemilanove/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ config BOARD_ARDUINO_DUEMILANOVE
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA328P
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG
select HAS_ARDUINO_SHIELD_UNO

config BOARD
default "arduino-duemilanove" if BOARD_ARDUINO_DUEMILANOVE
Expand Down
2 changes: 0 additions & 2 deletions boards/arduino-leonardo/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,5 @@ config BOARD_ARDUINO_LEONARDO
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA32U4
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG
select HAS_ARDUINO_SHIELD_UNO

source "$(RIOTBOARD)/common/arduino-atmega/Kconfig"
3 changes: 0 additions & 3 deletions boards/arduino-mega2560/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,5 @@ config BOARD_ARDUINO_MEGA2560
default y
select CPU_MODEL_ATMEGA2560
select BOARD_COMMON_ARDUINO_ATMEGA
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG
select HAS_ARDUINO_SHIELD_MEGA
select HAS_ARDUINO_SHIELD_UNO

source "$(RIOTBOARD)/common/arduino-atmega/Kconfig"
1 change: 0 additions & 1 deletion boards/arduino-mkr1000/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ config BOARD_ARDUINO_MKR1000
bool
default y
select BOARD_COMMON_ARDUINO_MKR
select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-mkr/Kconfig"
1 change: 0 additions & 1 deletion boards/arduino-mkrfox1200/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ config BOARD_ARDUINO_MKRFOX1200
bool
default y
select BOARD_COMMON_ARDUINO_MKR
select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-mkr/Kconfig"
1 change: 0 additions & 1 deletion boards/arduino-mkrwan1300/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ config BOARD_ARDUINO_MKRWAN1300
bool
default y
select BOARD_COMMON_ARDUINO_MKR
select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-mkr/Kconfig"
1 change: 0 additions & 1 deletion boards/arduino-mkrzero/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,5 @@ config BOARD_ARDUINO_MKRZERO
bool
default y
select BOARD_COMMON_ARDUINO_MKR
select MODULE_BOARDS_COMMON_ARDUINO-MKR if TEST_KCONFIG

source "$(RIOTBOARD)/common/arduino-mkr/Kconfig"
12 changes: 0 additions & 12 deletions boards/arduino-nano-33-ble/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,17 +12,5 @@ config BOARD_ARDUINO_NANO_33_BLE
default y
select BOARD_COMMON_NRF52
select CPU_MODEL_NRF52840XXAA
select HAS_PERIPH_I2C
select HAS_PERIPH_SPI
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAS_HIGHLEVEL_STDIO

select HAVE_SAUL_GPIO

select MODULE_USB_BOARD_RESET if KCONFIG_USB && TEST_KCONFIG

config FORCE_USB_STDIO
default y

source "$(RIOTBOARD)/common/nrf52/Kconfig"
14 changes: 0 additions & 14 deletions boards/arduino-nano-33-iot/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -11,17 +11,3 @@ config BOARD_ARDUINO_NANO_33_IOT
bool
default y
select CPU_MODEL_SAMD21G18A
select HAS_PERIPH_ADC
select HAS_PERIPH_I2C
select HAS_PERIPH_PWM
select HAS_PERIPH_RTC
select HAS_PERIPH_RTT
select HAS_PERIPH_SPI
select HAS_PERIPH_TIMER
select HAS_PERIPH_UART
select HAS_PERIPH_USBDEV
select HAS_HIGHLEVEL_STDIO

select HAVE_SAUL_GPIO

source "$(RIOTBOARD)/common/samdx1-arduino-bootloader/Kconfig"
2 changes: 0 additions & 2 deletions boards/arduino-nano/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ config BOARD_ARDUINO_NANO
default y
select BOARD_COMMON_ARDUINO_ATMEGA
select CPU_MODEL_ATMEGA328P
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG
select HAS_ARDUINO_SHIELD_NANO

config BOARD
default "arduino-nano" if BOARD_ARDUINO_NANO
Expand Down
2 changes: 0 additions & 2 deletions boards/arduino-uno/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ config BOARD_ARDUINO_UNO
default y
select CPU_MODEL_ATMEGA328P
select BOARD_COMMON_ARDUINO_ATMEGA
select MODULE_BOARDS_COMMON_ARDUINO-ATMEGA if TEST_KCONFIG
select HAS_ARDUINO_SHIELD_UNO

config BOARD
default "arduino-uno" if BOARD_ARDUINO_UNO
Expand Down
Loading
Loading