From 677d6a86257a585a7cc67fb12f517cd2743304f6 Mon Sep 17 00:00:00 2001 From: Ivan Grokhotkov Date: Fri, 9 Jul 2021 01:46:06 +0200 Subject: [PATCH] cmake: sort lists obtained from file(GLOB) CMake sorts result of file(GLOB) command since version 3.6.0: https://gitlab.kitware.com/cmake/cmake/-/commit/edcccde7d Since ESP-IDF sets cmake_minimum_required version to 3.5, and version 3.5.1 is used in CI, sort file lists obtained from file(GLOB) manually. This helps obtain reproducible order of libraries passed to the linker and to ldgen. --- tools/cmake/build.cmake | 1 + tools/cmake/component.cmake | 1 + tools/cmake/kconfig.cmake | 3 +++ 3 files changed, 5 insertions(+) diff --git a/tools/cmake/build.cmake b/tools/cmake/build.cmake index 88fb0a14b0..12875b46d8 100644 --- a/tools/cmake/build.cmake +++ b/tools/cmake/build.cmake @@ -143,6 +143,7 @@ function(__build_init idf_path) idf_build_get_property(idf_path IDF_PATH) idf_build_get_property(prefix __PREFIX) file(GLOB component_dirs ${idf_path}/components/*) + list(SORT component_dirs) foreach(component_dir ${component_dirs}) get_filename_component(component_dir ${component_dir} ABSOLUTE) __component_dir_quick_check(is_component ${component_dir}) diff --git a/tools/cmake/component.cmake b/tools/cmake/component.cmake index 47e3f21594..e80aed1130 100644 --- a/tools/cmake/component.cmake +++ b/tools/cmake/component.cmake @@ -275,6 +275,7 @@ macro(__component_add_sources sources) endif() file(GLOB dir_sources "${abs_dir}/*.c" "${abs_dir}/*.cpp" "${abs_dir}/*.S") + list(SORT dir_sources) if(dir_sources) foreach(src ${dir_sources}) diff --git a/tools/cmake/kconfig.cmake b/tools/cmake/kconfig.cmake index 1bf8ab5e9b..91dcfb3171 100644 --- a/tools/cmake/kconfig.cmake +++ b/tools/cmake/kconfig.cmake @@ -102,10 +102,13 @@ endfunction() function(__kconfig_component_init component_target) __component_get_property(component_dir ${component_target} COMPONENT_DIR) file(GLOB kconfig "${component_dir}/Kconfig") + list(SORT kconfig) __component_set_property(${component_target} KCONFIG "${kconfig}") file(GLOB kconfig "${component_dir}/Kconfig.projbuild") + list(SORT kconfig) __component_set_property(${component_target} KCONFIG_PROJBUILD "${kconfig}") file(GLOB sdkconfig_rename "${component_dir}/sdkconfig.rename") + list(SORT sdkconfig_rename) __component_set_property(${component_target} SDKCONFIG_RENAME "${sdkconfig_rename}") endfunction()