mirror of
https://github.com/esphome/esphome.git
synced 2025-07-29 06:36:45 +00:00
[esp32] Dynamically set default framework based on variant (#9060)
This commit is contained in:
parent
5fc1f90822
commit
00e8332bf5
@ -94,6 +94,13 @@ COMPILER_OPTIMIZATIONS = {
|
|||||||
"SIZE": "CONFIG_COMPILER_OPTIMIZATION_SIZE",
|
"SIZE": "CONFIG_COMPILER_OPTIMIZATION_SIZE",
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ARDUINO_ALLOWED_VARIANTS = [
|
||||||
|
VARIANT_ESP32,
|
||||||
|
VARIANT_ESP32C3,
|
||||||
|
VARIANT_ESP32S2,
|
||||||
|
VARIANT_ESP32S3,
|
||||||
|
]
|
||||||
|
|
||||||
|
|
||||||
def get_cpu_frequencies(*frequencies):
|
def get_cpu_frequencies(*frequencies):
|
||||||
return [str(x) + "MHZ" for x in frequencies]
|
return [str(x) + "MHZ" for x in frequencies]
|
||||||
@ -143,12 +150,17 @@ def set_core_data(config):
|
|||||||
CORE.data[KEY_ESP32][KEY_COMPONENTS] = {}
|
CORE.data[KEY_ESP32][KEY_COMPONENTS] = {}
|
||||||
elif conf[CONF_TYPE] == FRAMEWORK_ARDUINO:
|
elif conf[CONF_TYPE] == FRAMEWORK_ARDUINO:
|
||||||
CORE.data[KEY_CORE][KEY_TARGET_FRAMEWORK] = "arduino"
|
CORE.data[KEY_CORE][KEY_TARGET_FRAMEWORK] = "arduino"
|
||||||
|
if variant not in ARDUINO_ALLOWED_VARIANTS:
|
||||||
|
raise cv.Invalid(
|
||||||
|
f"ESPHome does not support using the Arduino framework for the {variant}. Please use the ESP-IDF framework instead.",
|
||||||
|
path=[CONF_FRAMEWORK, CONF_TYPE],
|
||||||
|
)
|
||||||
CORE.data[KEY_CORE][KEY_FRAMEWORK_VERSION] = cv.Version.parse(
|
CORE.data[KEY_CORE][KEY_FRAMEWORK_VERSION] = cv.Version.parse(
|
||||||
config[CONF_FRAMEWORK][CONF_VERSION]
|
config[CONF_FRAMEWORK][CONF_VERSION]
|
||||||
)
|
)
|
||||||
|
|
||||||
CORE.data[KEY_ESP32][KEY_BOARD] = config[CONF_BOARD]
|
CORE.data[KEY_ESP32][KEY_BOARD] = config[CONF_BOARD]
|
||||||
CORE.data[KEY_ESP32][KEY_VARIANT] = config[CONF_VARIANT]
|
CORE.data[KEY_ESP32][KEY_VARIANT] = variant
|
||||||
CORE.data[KEY_ESP32][KEY_EXTRA_BUILD_FILES] = {}
|
CORE.data[KEY_ESP32][KEY_EXTRA_BUILD_FILES] = {}
|
||||||
|
|
||||||
return config
|
return config
|
||||||
@ -618,6 +630,21 @@ ESP_IDF_FRAMEWORK_SCHEMA = cv.All(
|
|||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
def _set_default_framework(config):
|
||||||
|
if CONF_FRAMEWORK not in config:
|
||||||
|
config = config.copy()
|
||||||
|
|
||||||
|
variant = config[CONF_VARIANT]
|
||||||
|
if variant in ARDUINO_ALLOWED_VARIANTS:
|
||||||
|
config[CONF_FRAMEWORK] = ARDUINO_FRAMEWORK_SCHEMA({})
|
||||||
|
config[CONF_FRAMEWORK][CONF_TYPE] = FRAMEWORK_ARDUINO
|
||||||
|
else:
|
||||||
|
config[CONF_FRAMEWORK] = ESP_IDF_FRAMEWORK_SCHEMA({})
|
||||||
|
config[CONF_FRAMEWORK][CONF_TYPE] = FRAMEWORK_ESP_IDF
|
||||||
|
|
||||||
|
return config
|
||||||
|
|
||||||
|
|
||||||
FRAMEWORK_ESP_IDF = "esp-idf"
|
FRAMEWORK_ESP_IDF = "esp-idf"
|
||||||
FRAMEWORK_ARDUINO = "arduino"
|
FRAMEWORK_ARDUINO = "arduino"
|
||||||
FRAMEWORK_SCHEMA = cv.typed_schema(
|
FRAMEWORK_SCHEMA = cv.typed_schema(
|
||||||
@ -627,7 +654,6 @@ FRAMEWORK_SCHEMA = cv.typed_schema(
|
|||||||
},
|
},
|
||||||
lower=True,
|
lower=True,
|
||||||
space="-",
|
space="-",
|
||||||
default_type=FRAMEWORK_ARDUINO,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -654,10 +680,11 @@ CONFIG_SCHEMA = cv.All(
|
|||||||
),
|
),
|
||||||
cv.Optional(CONF_PARTITIONS): cv.file_,
|
cv.Optional(CONF_PARTITIONS): cv.file_,
|
||||||
cv.Optional(CONF_VARIANT): cv.one_of(*VARIANTS, upper=True),
|
cv.Optional(CONF_VARIANT): cv.one_of(*VARIANTS, upper=True),
|
||||||
cv.Optional(CONF_FRAMEWORK, default={}): FRAMEWORK_SCHEMA,
|
cv.Optional(CONF_FRAMEWORK): FRAMEWORK_SCHEMA,
|
||||||
}
|
}
|
||||||
),
|
),
|
||||||
_detect_variant,
|
_detect_variant,
|
||||||
|
_set_default_framework,
|
||||||
set_core_data,
|
set_core_data,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -67,20 +67,6 @@ esp8266:
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
ESP32_CONFIG = """
|
ESP32_CONFIG = """
|
||||||
esp32:
|
|
||||||
board: {board}
|
|
||||||
framework:
|
|
||||||
type: arduino
|
|
||||||
"""
|
|
||||||
|
|
||||||
ESP32S2_CONFIG = """
|
|
||||||
esp32:
|
|
||||||
board: {board}
|
|
||||||
framework:
|
|
||||||
type: esp-idf
|
|
||||||
"""
|
|
||||||
|
|
||||||
ESP32C3_CONFIG = """
|
|
||||||
esp32:
|
esp32:
|
||||||
board: {board}
|
board: {board}
|
||||||
framework:
|
framework:
|
||||||
@ -105,8 +91,6 @@ rtl87xx:
|
|||||||
HARDWARE_BASE_CONFIGS = {
|
HARDWARE_BASE_CONFIGS = {
|
||||||
"ESP8266": ESP8266_CONFIG,
|
"ESP8266": ESP8266_CONFIG,
|
||||||
"ESP32": ESP32_CONFIG,
|
"ESP32": ESP32_CONFIG,
|
||||||
"ESP32S2": ESP32S2_CONFIG,
|
|
||||||
"ESP32C3": ESP32C3_CONFIG,
|
|
||||||
"RP2040": RP2040_CONFIG,
|
"RP2040": RP2040_CONFIG,
|
||||||
"BK72XX": BK72XX_CONFIG,
|
"BK72XX": BK72XX_CONFIG,
|
||||||
"RTL87XX": RTL87XX_CONFIG,
|
"RTL87XX": RTL87XX_CONFIG,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user