mirror of
https://github.com/esphome/esphome.git
synced 2026-05-28 13:37:24 +08:00
[espidf] Gate esp_idf_size --ng on IDF version (#16441)
This commit is contained in:
@@ -3,7 +3,8 @@
|
|||||||
import json
|
import json
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from esphome.components.esp32 import get_esp32_variant
|
from esphome.components.esp32 import get_esp32_variant, idf_version
|
||||||
|
import esphome.config_validation as cv
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE
|
||||||
from esphome.helpers import mkdir_p, write_file_if_changed
|
from esphome.helpers import mkdir_p, write_file_if_changed
|
||||||
from esphome.writer import update_storage_json
|
from esphome.writer import update_storage_json
|
||||||
@@ -61,6 +62,11 @@ def get_project_cmakelists(minimal: bool = False) -> str:
|
|||||||
variant = get_esp32_variant()
|
variant = get_esp32_variant()
|
||||||
idf_target = variant.lower().replace("-", "")
|
idf_target = variant.lower().replace("-", "")
|
||||||
|
|
||||||
|
# esp_idf_size 2.x (bundled with IDF >=6.0) made NG the default and
|
||||||
|
# removed the --ng flag; on 1.x (IDF 5.5) --ng is required to get
|
||||||
|
# --format=raw because the legacy mode doesn't support it.
|
||||||
|
size_ng_flag = "--ng" if idf_version() < cv.Version(6, 0, 0) else ""
|
||||||
|
|
||||||
# Project-wide compile options: -D defines and -W warning flags (skip
|
# Project-wide compile options: -D defines and -W warning flags (skip
|
||||||
# -Wl, linker flags — those go on the src component via
|
# -Wl, linker flags — those go on the src component via
|
||||||
# target_link_options below). Emitted via idf_build_set_property so the
|
# target_link_options below). Emitted via idf_build_set_property so the
|
||||||
@@ -146,7 +152,7 @@ project({CORE.name})
|
|||||||
# Emit raw JSON size data for ESPHome to read post-build.
|
# Emit raw JSON size data for ESPHome to read post-build.
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${{CMAKE_PROJECT_NAME}}.elf POST_BUILD
|
TARGET ${{CMAKE_PROJECT_NAME}}.elf POST_BUILD
|
||||||
COMMAND ${{PYTHON}} -m esp_idf_size --ng --format=raw
|
COMMAND ${{PYTHON}} -m esp_idf_size {size_ng_flag} --format=raw
|
||||||
-o ${{CMAKE_BINARY_DIR}}/esp_idf_size.json
|
-o ${{CMAKE_BINARY_DIR}}/esp_idf_size.json
|
||||||
${{CMAKE_PROJECT_NAME}}.map
|
${{CMAKE_PROJECT_NAME}}.map
|
||||||
WORKING_DIRECTORY ${{CMAKE_BINARY_DIR}}
|
WORKING_DIRECTORY ${{CMAKE_BINARY_DIR}}
|
||||||
|
|||||||
@@ -11,10 +11,12 @@ import pytest
|
|||||||
from esphome.components.esp32 import (
|
from esphome.components.esp32 import (
|
||||||
KEY_COMPONENTS,
|
KEY_COMPONENTS,
|
||||||
KEY_ESP32,
|
KEY_ESP32,
|
||||||
|
KEY_IDF_VERSION,
|
||||||
KEY_PATH,
|
KEY_PATH,
|
||||||
KEY_REF,
|
KEY_REF,
|
||||||
KEY_REPO,
|
KEY_REPO,
|
||||||
)
|
)
|
||||||
|
import esphome.config_validation as cv
|
||||||
from esphome.const import KEY_CORE
|
from esphome.const import KEY_CORE
|
||||||
from esphome.core import CORE
|
from esphome.core import CORE
|
||||||
|
|
||||||
@@ -24,7 +26,10 @@ def _reset_core(tmp_path: Path) -> None:
|
|||||||
"""Give each test its own CORE.build_path and a clean esp32 data slot."""
|
"""Give each test its own CORE.build_path and a clean esp32 data slot."""
|
||||||
CORE.build_path = str(tmp_path)
|
CORE.build_path = str(tmp_path)
|
||||||
CORE.data.setdefault(KEY_CORE, {})
|
CORE.data.setdefault(KEY_CORE, {})
|
||||||
CORE.data[KEY_ESP32] = {KEY_COMPONENTS: {}}
|
CORE.data[KEY_ESP32] = {
|
||||||
|
KEY_COMPONENTS: {},
|
||||||
|
KEY_IDF_VERSION: cv.Version(5, 5, 4),
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
def _write_project_description(tmp_path: Path, components: dict[str, str]) -> None:
|
def _write_project_description(tmp_path: Path, components: dict[str, str]) -> None:
|
||||||
|
|||||||
Reference in New Issue
Block a user