[esp32] Stub arduino-esp32 with INTERFACE re-export to framework (#16695)
This commit is contained in:
1 parent
21e548f1d7
commit
e64b6bc398
1 file changed
+20
@@ -2583,6 +2583,26 @@ def _write_idf_component_yml():
|
|||||||
"override_path": str(stub_path),
|
"override_path": str(stub_path),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# On the PlatformIO toolchain, framework-arduinoespressif32 already
|
||||||
|
# ships arduino-esp32. Stub the managed component so anything that
|
||||||
|
# `REQUIRES arduino-esp32` (e.g. third-party FastLED) resolves to a
|
||||||
|
# CMake target that re-exports the framework's INTERFACE properties
|
||||||
|
# (INCLUDE_DIRS, public compile options like -DESP32, transitive
|
||||||
|
# REQUIRES) instead of triggering a duplicate download/rebuild.
|
||||||
|
if CORE.using_toolchain_platformio:
|
||||||
|
arduino_stub = stubs_dir / "arduino-esp32"
|
||||||
|
arduino_stub.mkdir(exist_ok=True)
|
||||||
|
write_file_if_changed(
|
||||||
|
arduino_stub / "CMakeLists.txt",
|
||||||
|
"idf_component_register()\n"
|
||||||
|
"target_link_libraries(${COMPONENT_LIB} "
|
||||||
|
f"INTERFACE idf::{ARDUINO_FRAMEWORK_NAME})\n",
|
||||||
|
)
|
||||||
|
dependencies[ARDUINO_ESP32_COMPONENT_NAME] = {
|
||||||
|
"version": "*",
|
||||||
|
"override_path": str(arduino_stub),
|
||||||
|
}
|
||||||
|
|
||||||
# Remove stubs for components that are now required by enabled libraries
|
# Remove stubs for components that are now required by enabled libraries
|
||||||
for component_name in required_idf_components:
|
for component_name in required_idf_components:
|
||||||
stub_path = stubs_dir / _idf_component_stub_name(component_name)
|
stub_path = stubs_dir / _idf_component_stub_name(component_name)
|
||||||
|
|||||||
Reference in new issue
Block a user