From 16c88bf32061e5c1d6e36e1258b450d99b7e5610 Mon Sep 17 00:00:00 2001 From: Renz Christian Bagaporo Date: Tue, 11 Dec 2018 10:33:09 +0800 Subject: [PATCH 1/2] 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}") From 7254476acb2a4ce79d0aaa90d439fd2616f5e0f6 Mon Sep 17 00:00:00 2001 From: Renz Christian Bagaporo Date: Thu, 20 Dec 2018 19:57:46 +0800 Subject: [PATCH 2/2] docs: list kconfig components alphabetically via component name --- docs/conf_common.py | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/docs/conf_common.py b/docs/conf_common.py index 17fcc7f0e..6153e51cc 100644 --- a/docs/conf_common.py +++ b/docs/conf_common.py @@ -63,6 +63,9 @@ call_with_python('../gen-dxd.py') def find_component_files(parent_dir, target_filename): parent_dir = os.path.abspath(parent_dir) result = [] + + component_files = dict() + for (dirpath, dirnames, filenames) in os.walk(parent_dir): try: # note: trimming "examples" dir as MQTT submodule @@ -71,8 +74,14 @@ def find_component_files(parent_dir, target_filename): except ValueError: pass if target_filename in filenames: - result.append(os.path.join(dirpath, target_filename)) - print("List of %s: %s" % (target_filename, ", ".join(result))) + component_files[os.path.basename(dirpath)] = os.path.join(dirpath, target_filename) + + components = sorted(component_files.keys()) + + for component in components: + result.append(component_files[component]) + + print("List of %s: %s" % (target_filename, ", ".join(components))) return result