mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
build & config: Check requirements of managed components of main and add interface versioning
This commit is contained in:
parent
2540cee253
commit
bb272d1b0a
@ -1398,10 +1398,12 @@ These are properties that describe a component. Values of component properties c
|
||||
- KCONFIG - component Kconfig file; set by ``idf_build_component``
|
||||
- KCONFIG_PROJBUILD - component Kconfig.projbuild; set by ``idf_build_component``
|
||||
- LDFRAGMENTS - list of component linker fragment files; set from ``idf_component_register`` LDFRAGMENTS argument
|
||||
- MANAGED_PRIV_REQUIRES - list of private component dependencies added by the IDF component manager from dependencies in ``idf_component.yml`` manifest file
|
||||
- MANAGED_REQUIRES - list of public component dependencies added by the IDF component manager from dependencies in ``idf_component.yml`` manifest file
|
||||
- PRIV_INCLUDE_DIRS - list of component private include directories; set from ``idf_component_register`` PRIV_INCLUDE_DIRS on components of type LIBRARY
|
||||
- PRIV_REQUIRES - list of private component dependentices; set from ``idf_component_register`` PRIV_REQUIRES argument
|
||||
- PRIV_REQUIRES - list of private component dependentices; set from value of ``idf_component_register`` PRIV_REQUIRES argument and dependencies in ``idf_component.yml`` manifest file
|
||||
- REQUIRED_IDF_TARGETS - list of targets the component supports; set from ``idf_component_register`` EMBED_TXTFILES argument
|
||||
- REQUIRES - list of public component dependencies; set from ``idf_component_register`` REQUIRES argument
|
||||
- REQUIRES - list of public component dependencies; set from value of ``idf_component_register`` REQUIRES argument and dependencies in ``idf_component.yml`` manifest file
|
||||
- SRCS - list of component source files; set from SRCS or SRC_DIRS/EXCLUDE_SRCS argument of ``idf_component_register``
|
||||
|
||||
.. _cmake-file-globbing:
|
||||
|
@ -17,7 +17,7 @@ cryptography>=2.1.4
|
||||
|
||||
pyparsing>=2.0.3,<2.4.0
|
||||
pyelftools>=0.22
|
||||
idf-component-manager~=1.0
|
||||
idf-component-manager~=1.2
|
||||
|
||||
gdbgui==0.13.2.0; python_version < "3.11"
|
||||
# 0.13.2.1 supports Python 3.6+ only
|
||||
|
@ -447,10 +447,12 @@ macro(idf_build_process target)
|
||||
|
||||
# Call for the component manager to prepare remote dependencies
|
||||
idf_build_get_property(python PYTHON)
|
||||
idf_build_get_property(component_manager_interface_version __COMPONENT_MANAGER_INTERFACE_VERSION)
|
||||
execute_process(COMMAND ${python}
|
||||
"-m"
|
||||
"idf_component_manager.prepare_components"
|
||||
"--project_dir=${project_dir}"
|
||||
"--interface_version=${component_manager_interface_version}"
|
||||
"prepare_dependencies"
|
||||
"--local_components_list_file=${local_components_list_file}"
|
||||
"--managed_components_list_file=${managed_components_list_file}"
|
||||
|
@ -222,10 +222,17 @@ function(__component_get_requirements)
|
||||
idf_build_get_property(idf_component_manager IDF_COMPONENT_MANAGER)
|
||||
if(idf_component_manager EQUAL 1)
|
||||
idf_build_get_property(python PYTHON)
|
||||
idf_build_get_property(component_manager_interface_version __COMPONENT_MANAGER_INTERFACE_VERSION)
|
||||
|
||||
# Call for the component manager once again to inject dependencies
|
||||
# It modifies the requirements file generated by component_get_requirements.cmake script by adding dependencies
|
||||
# defined in component manager manifests to REQUIRES and PRIV_REQUIRES fields.
|
||||
# These requirements are also set as MANAGED_REQUIRES and MANAGED_PRIV_REQUIRES component properties.
|
||||
execute_process(COMMAND ${python}
|
||||
"-m"
|
||||
"idf_component_manager.prepare_components"
|
||||
"--project_dir=${project_dir}"
|
||||
"--interface_version=${component_manager_interface_version}"
|
||||
"inject_requirements"
|
||||
"--idf_path=${idf_path}"
|
||||
"--build_dir=${build_dir}"
|
||||
|
@ -43,6 +43,8 @@ endif()
|
||||
if(NOT "$ENV{IDF_COMPONENT_MANAGER}" EQUAL "0")
|
||||
idf_build_set_property(IDF_COMPONENT_MANAGER 1)
|
||||
endif()
|
||||
# Set component manager interface version
|
||||
idf_build_set_property(__COMPONENT_MANAGER_INTERFACE_VERSION 1)
|
||||
|
||||
#
|
||||
# Get the project version from either a version file or the Git revision. This is passed
|
||||
@ -408,7 +410,10 @@ macro(project project_name)
|
||||
__component_get_target(main_target idf::main)
|
||||
__component_get_property(reqs ${main_target} REQUIRES)
|
||||
__component_get_property(priv_reqs ${main_target} PRIV_REQUIRES)
|
||||
if(NOT reqs AND NOT priv_reqs) #if user has not set any requirements
|
||||
__component_get_property(managed_reqs ${main_target} MANAGED_REQUIRES)
|
||||
__component_get_property(managed_priv_reqs ${main_target} MANAGED_PRIV_REQUIRES)
|
||||
#if user has not set any requirements, except ones added with the component manager
|
||||
if((NOT reqs OR reqs STREQUAL managed_reqs) AND (NOT priv_reqs OR priv_reqs STREQUAL managed_priv_reqs))
|
||||
if(test_components)
|
||||
list(REMOVE_ITEM build_components ${test_components})
|
||||
endif()
|
||||
|
Loading…
x
Reference in New Issue
Block a user