fix: component manager load all component dirs even set(COMPONENTS ...)

This commit is contained in:
Fu Hanxi
2024-01-30 14:56:58 +01:00
parent 7ae93db789
commit 72d9a29a52
2 changed files with 13 additions and 4 deletions

View File

@ -494,9 +494,17 @@ macro(idf_build_process target)
set(local_components_list_file ${build_dir}/local_components_list.temp.yml)
set(__contents "components:\n")
foreach(__component_name ${components})
idf_component_get_property(__component_dir ${__component_name} COMPONENT_DIR)
set(__contents "${__contents} - name: \"${__component_name}\"\n path: \"${__component_dir}\"\n")
idf_build_get_property(build_component_targets BUILD_COMPONENT_TARGETS)
foreach(__build_component_target ${build_component_targets})
__component_get_property(__component_name ${__build_component_target} COMPONENT_NAME)
__component_get_property(__component_dir ${__build_component_target} COMPONENT_DIR)
# Exclude components could be passed with -DEXCLUDE_COMPONENTS
# after the call to __component_add finished in the last run.
# Need to check if the component is excluded again
if(NOT __component_name IN_LIST EXCLUDE_COMPONENTS)
set(__contents "${__contents} - name: \"${__component_name}\"\n path: \"${__component_dir}\"\n")
endif()
endforeach()
file(WRITE ${local_components_list_file} "${__contents}")

View File

@ -192,8 +192,9 @@ function(__component_add component_dir prefix)
# Set Kconfig related properties on the component
__kconfig_component_init(${component_target})
# set BUILD_COMPONENT_DIRS build property
# these two properties are used to keep track of the components known to the build system
idf_build_set_property(BUILD_COMPONENT_DIRS ${component_dir} APPEND)
idf_build_set_property(BUILD_COMPONENT_TARGETS ${component_target} APPEND)
endfunction()
#