diff --git a/Makefile.include b/Makefile.include index 640e19f150..dd83db28a0 100644 --- a/Makefile.include +++ b/Makefile.include @@ -431,6 +431,8 @@ ifeq (1,$(TEST_KCONFIG)) # Locate used packages in $(RIOTPKG). PKG_PATHS := $(sort $(foreach dir,$(RIOTPKG),\ $(foreach pkg,$(USEPKG),$(dir $(wildcard $(dir)/$(pkg)/Makefile))))) + + EXTERNAL_MODULE_PATHS := $(dir $(EXTERNAL_MODULE_KCONFIGS)) else # always select provided architecture features FEATURES_REQUIRED += $(filter arch_%,$(FEATURES_PROVIDED)) diff --git a/makefiles/kconfig.mk b/makefiles/kconfig.mk index 189d13c685..c64f1f6ebb 100644 --- a/makefiles/kconfig.mk +++ b/makefiles/kconfig.mk @@ -179,8 +179,8 @@ $(KCONFIG_GENERATED_ENV_CONFIG): FORCE | $(GENERATED_DIR) | $(LAZYSPONGE) $(LAZYSPONGE_FLAGS) $@ # All directories in EXTERNAL_MODULES_PATHS which have a Kconfig file -EXTERNAL_MODULE_KCONFIGS ?= $(sort $(foreach dir,$(EXTERNAL_MODULE_PATHS),\ - $(wildcard $(dir)/Kconfig))) +EXTERNAL_MODULE_KCONFIGS ?= $(sort $(foreach dir,$(EXTERNAL_MODULE_DIRS),\ + $(wildcard $(dir)/*/Kconfig))) # Build a Kconfig file that source all external modules configuration # files. Every EXTERNAL_MODULE_DIRS with a Kconfig file is written to # KCONFIG_EXTERNAL_CONFIGS as 'osource dir/Kconfig' diff --git a/tests/kconfig/Makefile b/tests/kconfig/Makefile index 5e73126239..89da973e17 100644 --- a/tests/kconfig/Makefile +++ b/tests/kconfig/Makefile @@ -4,4 +4,8 @@ USEMODULE += external_module_1 USEMODULE += external_module_2 EXTERNAL_MODULE_DIRS += external_modules +ifeq (1, $(TEST_KCONFIG)) + KCONFIG_ADD_CONFIG += $(APPDIR)/app.config +endif + include $(RIOTBASE)/Makefile.include diff --git a/tests/kconfig/app.config.test b/tests/kconfig/app.config.test new file mode 100644 index 0000000000..5cf8111726 --- /dev/null +++ b/tests/kconfig/app.config.test @@ -0,0 +1,2 @@ +CONFIG_MODULE_EXTERNAL_MODULE_1=y +CONFIG_MODULE_EXTERNAL_MODULE_2=y diff --git a/tests/kconfig/external_modules/external_module_1/Kconfig b/tests/kconfig/external_modules/external_module_1/Kconfig index 6f3306d486..d15ced618c 100644 --- a/tests/kconfig/external_modules/external_module_1/Kconfig +++ b/tests/kconfig/external_modules/external_module_1/Kconfig @@ -11,3 +11,7 @@ config EXTERNAL_MODULE_1_MESSAGE default "External Message 1 defined in Kconfig file" endif # KCONFIG_EXTERNAL_MODULE_1 + +config MODULE_EXTERNAL_MODULE_1 + bool "Select external module 2" + depends on TEST_KCONFIG diff --git a/tests/kconfig/external_modules/external_module_2/Kconfig b/tests/kconfig/external_modules/external_module_2/Kconfig index 011963dcc4..a3d36cce87 100644 --- a/tests/kconfig/external_modules/external_module_2/Kconfig +++ b/tests/kconfig/external_modules/external_module_2/Kconfig @@ -11,3 +11,7 @@ config EXTERNAL_MODULE_2_MESSAGE default "External Message 2 defined in Kconfig file" endif # KCONFIG_EXTERNAL_MODULE_2 + +config MODULE_EXTERNAL_MODULE_2 + bool "Select external module 2" + depends on TEST_KCONFIG