mirror of
https://github.com/espressif/esp-idf.git
synced 2026-09-22 13:01:16 +03:00
When a component's manifest declared a managed dep `<ns>/<name>` and the project had a local `components/<name>` shadowing it, configure failed with `IDF: Failed to resolve component '<ns>__<name>'`. cmakev1 does a project-wide injection so the manager's _choose_component sees every component name in known_components and rewrites the namespaced dep to its locally-shadowing short name. cmakev2 invokes the manager per component with a single-component requirements file, so known_components has only one entry and the rewrite cannot fire -- `<ns>__<name>` is written verbatim into MANAGED_REQUIRES and the force-include at component.cmake:995 aborts. Seed the per-component requirements file with one __COMPONENT_SOURCE entry per discovered component so handle_project_requirements() builds the same known_components list cmakev1 produces. The seeded entries are inert on the cmake side -- the __component_set_property shim ignores __COMPONENT_SOURCE -- they exist purely to feed the manager's rewrite. Add a regression test in tools/test_build_system/buildv2/test_component.py. Signed-off-by: Frantisek Hrbata <frantisek.hrbata@espressif.com>