feat: add ESP-IDF compilation service for QEMU-compatible firmware generation

pull/90/head^2 qemu-prebuilt
David Montero Crespo 2026-04-02 02:54:02 -03:00
parent d77a68e896
commit ff12b83e34
1 changed files with 13 additions and 0 deletions

View File

@ -465,6 +465,7 @@ class ESPIDFCompiler:
cmake_cmd = [ cmake_cmd = [
'cmake', 'cmake',
'-G', 'Ninja', '-G', 'Ninja',
'-Wno-dev',
f'-DIDF_TARGET={idf_target}', f'-DIDF_TARGET={idf_target}',
'-DCMAKE_BUILD_TYPE=Release', '-DCMAKE_BUILD_TYPE=Release',
f'-DSDKCONFIG_DEFAULTS={project_dir / "sdkconfig.defaults"}', f'-DSDKCONFIG_DEFAULTS={project_dir / "sdkconfig.defaults"}',
@ -529,6 +530,18 @@ class ESPIDFCompiler:
all_stdout = cmake_result.stdout + '\n' + ninja_result.stdout all_stdout = cmake_result.stdout + '\n' + ninja_result.stdout
all_stderr = cmake_result.stderr + '\n' + ninja_result.stderr all_stderr = cmake_result.stderr + '\n' + ninja_result.stderr
# Filter out expected but ugly warnings from stderr (e.g. absent git, cmake deprecation)
filtered_stderr_lines = []
for line in all_stderr.splitlines():
if 'fatal: not a git repository' in line:
continue
if 'CMake Deprecation Warning' in line:
continue
if 'Compatibility with CMake' in line:
continue
filtered_stderr_lines.append(line)
all_stderr = '\n'.join(filtered_stderr_lines)
if ninja_result.returncode != 0: if ninja_result.returncode != 0:
logger.error(f'[espidf] ninja build failed:\n{ninja_result.stderr}') logger.error(f'[espidf] ninja build failed:\n{ninja_result.stderr}')
return { return {