fix(compiler): board_fqbn llega a _compile_in_dir — el NameError tumbaba todo compile

El bloque de velxio_board.cmake usaba board_fqbn, que vivia en compile() y no
en la firma de _compile_in_dir: parametro nuevo con default None, propagado en
los dos call sites, y guard para el camino sin fqbn (tests directos).
This commit is contained in:
David Montero Crespo 2026-07-28 07:09:41 +02:00
parent e648f416ae
commit 50fa9275b9
1 changed files with 4 additions and 3 deletions

View File

@ -2735,7 +2735,7 @@ class ESPIDFCompiler:
progress_callback, normalized_opts, spiffs_files, progress_callback, normalized_opts, spiffs_files,
allowed_libraries=allowed, libraries_dir=scope_dir, allowed_libraries=allowed, libraries_dir=scope_dir,
arduino_mode=arduino_mode, use_idf5=use_idf5, arduino_mode=arduino_mode, use_idf5=use_idf5,
pure_idf=pure_idf, pure_idf=pure_idf, board_fqbn=board_fqbn,
) )
with tempfile.TemporaryDirectory(prefix='espidf_') as temp_dir: with tempfile.TemporaryDirectory(prefix='espidf_') as temp_dir:
project_dir = Path(temp_dir) / 'project' project_dir = Path(temp_dir) / 'project'
@ -2746,7 +2746,7 @@ class ESPIDFCompiler:
progress_callback, normalized_opts, spiffs_files, progress_callback, normalized_opts, spiffs_files,
allowed_libraries=allowed, libraries_dir=scope_dir, allowed_libraries=allowed, libraries_dir=scope_dir,
arduino_mode=arduino_mode, use_idf5=use_idf5, arduino_mode=arduino_mode, use_idf5=use_idf5,
pure_idf=pure_idf, pure_idf=pure_idf, board_fqbn=board_fqbn,
) )
finally: finally:
if scope_dir is not None: if scope_dir is not None:
@ -2809,6 +2809,7 @@ class ESPIDFCompiler:
arduino_mode: Optional[bool] = None, arduino_mode: Optional[bool] = None,
use_idf5: Optional[bool] = None, use_idf5: Optional[bool] = None,
pure_idf: bool = False, pure_idf: bool = False,
board_fqbn: str | None = None,
) -> dict: ) -> dict:
"""Inner compile body: writes sketch + libs into `project_dir`, """Inner compile body: writes sketch + libs into `project_dir`,
runs cmake + ninja, merges binaries. Caller is responsible for runs cmake + ninja, merges binaries. Caller is responsible for
@ -2862,7 +2863,7 @@ class ESPIDFCompiler:
# file instead of an env var makes it a configure dependency: CMake # file instead of an env var makes it a configure dependency: CMake
# re-runs when it changes, env vars it silently ignores. # re-runs when it changes, env vars it silently ignores.
board_cmake_lines = ['# generated by espidf_compiler — do not edit'] board_cmake_lines = ['# generated by espidf_compiler — do not edit']
if arduino_mode and not pure_idf: if arduino_mode and not pure_idf and board_fqbn:
flags = self._arduino_board_flags(board_fqbn) flags = self._arduino_board_flags(board_fqbn)
if flags['board']: if flags['board']:
macro = re.sub(r'[^A-Z0-9_]', '_', str(flags['board']).upper()) macro = re.sub(r'[^A-Z0-9_]', '_', str(flags['board']).upper())