From 2f811b7975dd85e444ea5885d5bf3f4c5a25de0e 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 de7be4d5a7..9b6503a5af 100644 --- a/tools/cmake/build.cmake +++ b/tools/cmake/build.cmake @@ -146,6 +146,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 882208af56..870d852b7e 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()