From 16c88bf32061e5c1d6e36e1258b450d99b7e5610 Mon Sep 17 00:00:00 2001 From: Renz Christian Bagaporo Date: Tue, 11 Dec 2018 10:33:09 +0800 Subject: [PATCH] cmake: list items in component config via alphabetical component name --- tools/cmake/kconfig.cmake | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/tools/cmake/kconfig.cmake b/tools/cmake/kconfig.cmake index 05976aca6..e2e05c107 100644 --- a/tools/cmake/kconfig.cmake +++ b/tools/cmake/kconfig.cmake @@ -77,9 +77,20 @@ function(kconfig_process_config) set(kconfigs) set(kconfigs_projbuild) + # Components are usually sorted (somewhat) topologically via their dependencies. This extends to the component + # paths list. Obtain an alphabetical list in order to present menus also in the same order. + set(components ${BUILD_COMPONENTS}) + list(SORT components) + + foreach(component ${components}) + list(FIND BUILD_COMPONENTS ${component} idx) + list(GET BUILD_COMPONENT_PATHS ${idx} component_path) + list(APPEND component_paths ${component_path}) + endforeach() + # Find Kconfig and Kconfig.projbuild for each component as applicable # if any of these change, cmake should rerun - foreach(dir ${BUILD_COMPONENT_PATHS}) + foreach(dir ${component_paths}) file(GLOB kconfig "${dir}/Kconfig") if(kconfig) set(kconfigs "${kconfigs} ${kconfig}")