When a compile supplies a 'libraries' manifest, _resolve_library_components merges a USER-installed library only if it's declared in that set. A sketch therefore never picks up an unrelated library from the shared dir (another user's install, or a same-named clash) — the manifest is the resolution scope. - _resolve_library_components(allowed_libraries): gate user-lib merges on manifest membership; match by folder name OR library.properties name=, normalised (display name vs on-disk folder differ by separators/case). Core/bundled libs are never gated. None = legacy scan-all (unchanged). - Threaded through compile() -> _compile_in_dir. - compile.py: CompileRequest.libraries; folded into the async dedup _job_key so a different manifest doesn't dedup to a job built with another. Opt-in: omitting 'libraries' preserves current behaviour exactly. Regression: test/backend/unit/test_espidf_core_first.py::TestManifestScope |
||
|---|---|---|
| .. | ||
| boot_images | ||
| esp-idf-template | ||
| picow_net | ||
| __init__.py | ||
| arduino_cli.py | ||
| asm8080.py | ||
| asmz80.py | ||
| board_access.py | ||
| c_compile.py | ||
| chip_compile.py | ||
| esp32_flash_image.py | ||
| esp32_i2c_slaves.py | ||
| esp32_lib_bridge.py | ||
| esp32_lib_manager.py | ||
| esp32_signals.py | ||
| esp32_spi_slaves.py | ||
| esp32_worker.py | ||
| esp_qemu_manager.py | ||
| espidf_compiler.py | ||
| gpio_shim.py | ||
| picow_net_bridge.py | ||
| qemu_manager.py | ||
| rom_compile.py | ||
| signal_router.py | ||
| stm32_lib_manager.py | ||
| stm32_worker.py | ||
| wasm_chip_runtime.py | ||
| wasm_chip_slave.py | ||
| wifi_status_parser.py | ||