1
0
mirror of https://github.com/esphome/esphome.git synced 2025-09-22 21:22:22 +01:00

[core] Fix compilation errors when platform sections have no entities (#10023)

This commit is contained in:
J. Nick Koston
2025-08-02 13:59:20 -10:00
committed by GitHub
parent fd442cc485
commit 296442d8f1
19 changed files with 18 additions and 22 deletions

View File

@@ -419,13 +419,28 @@ async def _add_automations(config):
await automation.build_automation(trigger, [], conf)
# Datetime component has special subtypes that need additional defines
DATETIME_SUBTYPES = {"date", "time", "datetime"}
@coroutine_with_priority(-100.0)
async def _add_platform_reserves() -> None:
# Generate compile-time entity count defines for static_entity_vector
async def _add_platform_defines() -> None:
# Generate compile-time defines for platforms that have actual entities
# Only add USE_* and count defines when there are entities
for platform_name, count in sorted(CORE.platform_counts.items()):
if count <= 0:
continue
define_name = f"ESPHOME_ENTITY_{platform_name.upper()}_COUNT"
cg.add_define(define_name, count)
# Datetime subtypes only use USE_DATETIME_* defines
if platform_name in DATETIME_SUBTYPES:
cg.add_define(f"USE_DATETIME_{platform_name.upper()}")
else:
# Regular platforms use USE_* defines
cg.add_define(f"USE_{platform_name.upper()}")
@coroutine_with_priority(100.0)
async def to_code(config: ConfigType) -> None:
@@ -449,7 +464,7 @@ async def to_code(config: ConfigType) -> None:
cg.RawStatement(f"App.reserve_components({len(CORE.component_ids)});"),
)
CORE.add_job(_add_platform_reserves)
CORE.add_job(_add_platform_defines)
CORE.add_job(_add_automations, config)