feat(espidf): LVGL and esp_lvgl_port, the layer every official demo's UI sits on

Probed against staging the same way as the previous commit: lvgl.h and
esp_lvgl_port.h both died at "No such file or directory", so a visitor
could not paste a single screen of esp-dev-kits UI code. Declared only
when the source includes the header, so no other build pays for it.
This commit is contained in:
David Montero Crespo 2026-08-24 05:44:35 +02:00
parent fcd83f7424
commit f8bef1d1a4
2 changed files with 8 additions and 0 deletions

View File

@ -909,6 +909,12 @@ class ESPIDFCompiler:
(r'iot_knob\.h', 'espressif/knob', '*'),
(r'esp_lcd_touch_gt911\.h', 'espressif/esp_lcd_touch_gt911', '*'),
(r'esp_codec_dev\.h', 'espressif/esp_codec_dev', '*'),
# LVGL and its BSP glue: every official board demo's UI is built on
# them, so without these a visitor cannot paste a single screen of
# esp-dev-kits code. The dependency is only declared when the source
# includes the header, so nothing else pays for the bigger build.
(r'lvgl\.h', 'lvgl/lvgl', '*'),
(r'esp_lvgl_port\.h', 'espressif/esp_lvgl_port', '*'),
)
def _detect_managed_components(self, code: str) -> dict:

View File

@ -166,6 +166,8 @@ class ManagedComponentDetectionTests(unittest.TestCase):
'#include "esp_lcd_st77916.h"': 'espressif/esp_lcd_st77916',
'#include "esp_lcd_touch_cst816s.h"': 'espressif/esp_lcd_touch_cst816s',
'#include "esp_lcd_ek79007.h"': 'espressif/esp_lcd_ek79007',
'#include "lvgl.h"': 'lvgl/lvgl',
'#include "esp_lvgl_port.h"': 'espressif/esp_lvgl_port',
}
for line, component in cases.items():
with self.subTest(line=line):