kopia lustrzana https://github.com/espressif/esp-idf
fix: component manager load all component dirs even set(COMPONENTS ...)
rodzic
d2542dd5c5
commit
74843a442b
|
@ -516,9 +516,17 @@ macro(idf_build_process target)
|
||||||
set(local_components_list_file ${build_dir}/local_components_list.temp.yml)
|
set(local_components_list_file ${build_dir}/local_components_list.temp.yml)
|
||||||
|
|
||||||
set(__contents "components:\n")
|
set(__contents "components:\n")
|
||||||
foreach(__component_name ${components})
|
idf_build_get_property(build_component_targets BUILD_COMPONENT_TARGETS)
|
||||||
idf_component_get_property(__component_dir ${__component_name} COMPONENT_DIR)
|
foreach(__build_component_target ${build_component_targets})
|
||||||
set(__contents "${__contents} - name: \"${__component_name}\"\n path: \"${__component_dir}\"\n")
|
__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()
|
endforeach()
|
||||||
|
|
||||||
file(WRITE ${local_components_list_file} "${__contents}")
|
file(WRITE ${local_components_list_file} "${__contents}")
|
||||||
|
|
|
@ -192,8 +192,9 @@ function(__component_add component_dir prefix)
|
||||||
# Set Kconfig related properties on the component
|
# Set Kconfig related properties on the component
|
||||||
__kconfig_component_init(${component_target})
|
__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_DIRS ${component_dir} APPEND)
|
||||||
|
idf_build_set_property(BUILD_COMPONENT_TARGETS ${component_target} APPEND)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
#
|
#
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
# SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
|
# SPDX-FileCopyrightText: 2022-2024 Espressif Systems (Shanghai) CO LTD
|
||||||
# SPDX-License-Identifier: Apache-2.0
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
import os.path
|
import os.path
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from test_build_system_helpers import IdfPyFunc
|
from test_build_system_helpers import IdfPyFunc
|
||||||
|
from test_build_system_helpers import replace_in_file
|
||||||
|
|
||||||
|
|
||||||
def test_dependency_lock(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
|
def test_dependency_lock(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
|
||||||
|
@ -18,3 +19,28 @@ def test_dependency_lock(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
|
||||||
idf_py('reconfigure')
|
idf_py('reconfigure')
|
||||||
assert os.path.isfile(test_app_copy / 'dependencies.lock.esp32')
|
assert os.path.isfile(test_app_copy / 'dependencies.lock.esp32')
|
||||||
assert not os.path.isfile(test_app_copy / 'dependencies.lock')
|
assert not os.path.isfile(test_app_copy / 'dependencies.lock')
|
||||||
|
|
||||||
|
|
||||||
|
def test_trimmed_components_still_passed_to_cmake(idf_py: IdfPyFunc, test_app_copy: Path) -> None:
|
||||||
|
replace_in_file(
|
||||||
|
test_app_copy / 'CMakeLists.txt',
|
||||||
|
search='# placeholder_after_include_project_cmake',
|
||||||
|
replace='set(COMPONENTS main)',
|
||||||
|
)
|
||||||
|
|
||||||
|
replace_in_file(
|
||||||
|
test_app_copy / 'main' / 'CMakeLists.txt',
|
||||||
|
search='# placeholder_inside_idf_component_register',
|
||||||
|
replace='REQUIRES foo',
|
||||||
|
)
|
||||||
|
|
||||||
|
os.makedirs(test_app_copy / 'components')
|
||||||
|
idf_py('create-component', '-C', 'components', 'foo')
|
||||||
|
idf_py('add-dependency', '--component', 'foo', 'example/cmp')
|
||||||
|
|
||||||
|
idf_py('reconfigure')
|
||||||
|
|
||||||
|
with open('dependencies.lock', 'r') as f:
|
||||||
|
fs = f.read()
|
||||||
|
|
||||||
|
assert ' example/cmp:' in fs
|
||||||
|
|
Ładowanie…
Reference in New Issue