J. Nick Koston
046c7e5eb0
Lex build flags once in write_project, warn on unflags that match nothing
...
The pre-lexed tokens feed both _flag_defines and _project_flags so a
malformed entry warns once per generation. An unflag that hits nothing
in the user flags or any framework set (a typo, or -DUSE_FOO against
-DUSE_FOO=1) is named instead of silently leaving the flag in force.
2026-08-21 13:33:11 -05:00
J. Nick Koston
c0cd64cd76
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-21 13:32:21 -05:00
J. Nick Koston
7c2254d8ee
Refuse knob-plus-raw define splits, lex build flags once, harden the ld cache
...
A raw MMU_* define alongside a PIO_FRAMEWORK_ARDUINO_MMU_* knob, or a
raw TCP_MSS/LWIP_* alongside the lwIP knobs, would win the compile line
while the linker script or prebuilt library keeps the knob's values;
both now raise like the no-knob case. _MMU_VARIANTS holds tuples and the
resolved config gets a copy, so nothing aliases the module table.
_lexed_build_flags lexes once and both consumers accept the tokens, so
a malformed entry warns once per build. The linker-script stamp covers
the header's size and mtime, an unreadable or non-UTF-8 cache
regenerates instead of aborting, plain-form linker flags warn that they
are not routed to the link line, and a moved rate-table anchor surfaces
as a named build error.
2026-08-21 13:32:12 -05:00
J. Nick Koston
9153f03c83
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-21 13:07:03 -05:00
J. Nick Koston
84de74663c
Cover the testing-mode flash-ld OSError guard
2026-08-21 13:06:33 -05:00
J. Nick Koston
debfff005b
Check the elf2bin inputs at generation, quote cxx flags, add d1_wroom_02 to BOARDS
...
elf2bin.py and eboot.elf join the existence checks so a half-extracted
package fails by name before the compile instead of at the
second-to-last edge. get_project_cxx_compile_flags() values go through
_shell_token like every other flag source. d1_wroom_02 (2 MB, in
ESP8266_BOARD_BUILD and buildable under PlatformIO) joins BOARDS so the
native board guard stops rejecting it, and the guard comment states
what config validation actually checks.
2026-08-21 12:57:36 -05:00
J. Nick Koston
523150a4c9
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-21 12:55:51 -05:00
J. Nick Koston
784cf6819f
Refuse inconsistent memory-layout configs, validate the cached linker script
...
Unknown or conflicting VTABLES_IN_* defines raise instead of warning
and picking arbitrarily (a typo previously won the sorted pick and died
in the SDK header's #error). Custom MMU sizes without the CUSTOM knob
raise too: PlatformIO warns but its defaults win the compile line,
while here the user's tokens would win and compile against a layout the
linker script does not implement. The cached linker script is re-checked
for its SECTIONS block so a truncated file regenerates, the
testing-mode flash-ld read gets the same OSError guard as the gcc
spawn, the ParseFlags docstring states its actual coverage, and the ld
test mocks are quiet so the clean path asserts no warnings.
2026-08-21 12:55:23 -05:00
J. Nick Koston
afe12061d2
Track the per-platform shell quoting in the emission drift tests
...
The asm -D/-I filter also strips a leading single quote now that POSIX
tokens are single-quoted.
2026-08-21 12:28:11 -05:00
J. Nick Koston
2d89ca3dd0
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-21 12:26:46 -05:00
J. Nick Koston
a7febfbf05
Track the per-platform shell quoting in the requote drift test
2026-08-21 12:26:23 -05:00
J. Nick Koston
5a5a379444
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-20 23:58:18 -05:00
J. Nick Koston
cd2ab6e78b
Join unflag tokens, filter knobs by unflags, pin every table verbatim, guard degenerate ld output and empty lib flags
2026-08-20 23:57:45 -05:00
J. Nick Koston
fe5325b007
Honor lib_archive, guard unknown boards by name, quote archive names, fix the asm flag filter
2026-08-20 20:42:23 -05:00
J. Nick Koston
68db655047
Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec
2026-08-20 20:41:36 -05:00
J. Nick Koston
84a10031ee
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-20 20:41:36 -05:00
J. Nick Koston
fdbd4157ff
Carry lib_archive, warn on unresolvable deps, unquote rsp lines, fail empty archives, note deviations
2026-08-20 20:41:17 -05:00
J. Nick Koston
d342d0a246
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-20 18:28:28 -05:00
J. Nick Koston
e1cbe5e586
Sort flag iteration for reproducible defines, pin the flag tables, wrap a missing compiler cleanly
2026-08-20 18:28:26 -05:00
J. Nick Koston
52aafc3af6
Drop the escaping test superseded by the shared ninja module tests
2026-08-20 16:20:19 -05:00
J. Nick Koston
5c36fefe21
Drop the escaping test duplicated by the shared ninja module tests
2026-08-20 16:15:15 -05:00
J. Nick Koston
c3f7ce7a02
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-20 16:14:24 -05:00
J. Nick Koston
252422c706
Match ASPPCOM flag routing, quote manifest link tokens, split the src-dir error, pin the change contract
2026-08-20 16:12:28 -05:00
J. Nick Koston
0d794ce678
Lex every build flag entry, warn on custom MMU sizes without the knob, note the scanf omission
2026-08-20 16:10:02 -05:00
J. Nick Koston
c629e4a94c
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
...
# Conflicts:
# esphome/build_gen/arduino8266.py
# tests/unit_tests/build_gen/test_arduino8266.py
2026-08-20 16:07:57 -05:00
J. Nick Koston
0171af9f67
Adopt the shared ninja quoting helpers and typed install paths in the build spec
2026-08-20 16:07:22 -05:00
J. Nick Koston
aa4dd3d0a1
Hoist the ninja quoting helpers, type the installed paths, format flash size from board data
2026-08-20 15:48:56 -05:00
J. Nick Koston
ea429ffdb6
Derive the suffix rule map, dedupe quoting and unflag filtering, adopt the moved library backend
2026-08-20 15:28:55 -05:00
J. Nick Koston
7dca5da948
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-20 15:12:49 -05:00
J. Nick Koston
d9cea818b4
Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec
2026-08-20 15:12:49 -05:00
J. Nick Koston
8bbaa09891
Expand ar response files in the shim and honor bundled library.json manifests
2026-08-20 14:46:09 -05:00
J. Nick Koston
a0d56d02d0
Tighten the emission half: shared srcflags, single escapes, one testing-name derivation
2026-08-20 14:29:54 -05:00
J. Nick Koston
866c59384c
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-20 14:22:05 -05:00
J. Nick Koston
cd0c3bb069
Keep the spec half honest: fingerprint-stamped ld cache, MMU table, emission helpers deferred
2026-08-20 14:19:53 -05:00
J. Nick Koston
9d54e87c70
Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec
2026-08-20 14:17:02 -05:00
J. Nick Koston
d64592d2ea
Simplify library classification, share the manifest flag lexing, and home the build tool with the generators
2026-08-20 14:16:46 -05:00
J. Nick Koston
73132ba852
Merge branch 'esp8266-native-build-spec' into esp8266-native-ninja-emission
2026-08-20 13:49:45 -05:00
J. Nick Koston
0ed4c47b66
Adopt the exact-segments surgery API
2026-08-20 13:48:16 -05:00
J. Nick Koston
8e5b9dca03
Merge branch 'esp8266-native-library-backend' into esp8266-native-build-spec
2026-08-20 13:44:30 -05:00
J. Nick Koston
e82453e80e
Complete the unit-test package chain so test modules import fully qualified
2026-08-20 13:42:15 -05:00
J. Nick Koston
207968f301
Add the ESP8266 native ninja emission
2026-08-20 13:03:50 -05:00
J. Nick Koston
61e32230d9
Add the ESP8266 native build spec (knobs, defines, flags, linker scripts)
2026-08-20 13:02:52 -05:00
David van 't Wout
2ab09e1a77
[core] Add add_cmake_arg ( #18498 )
2026-08-20 12:30:33 -05:00
J. Nick Koston
a8e721abeb
[esp32] Apply IDF component exclusions to native toolchain builds ( #18531 )
2026-08-20 10:03:49 -04:00
Rui Marinho
ed066cf0fe
[espidf] Include .cc, .cxx and .c++ sources in the app source glob ( #17754 )
2026-07-27 10:34:29 +12:00
J. Nick Koston
e095c457ff
[esp32] Suppress -Wvolatile in the direct ESP-IDF build ( #17404 )
2026-07-06 03:02:12 +00:00
tomaszduda23 and Jonathan Swoboda
e3f164fff2
[nrf52] add support for native builds ( #16898 )
...
Co-authored-by: Jonathan Swoboda <154711427+swoboda1337@users.noreply.github.com >
2026-06-17 21:17:07 -04:00
Jonathan Swoboda
29a79b1373
[core] Make set_cpp_standard work on the native IDF toolchain ( #16907 )
2026-06-11 07:25:03 +12:00
Jonathan Swoboda
e4980713d1
[core] esphome clean wipes the whole build directory ( #16772 )
2026-06-03 07:35:23 -04:00
Jonathan Swoboda
56983f414f
[espidf] Gate esp_idf_size --ng on IDF version ( #16441 )
2026-05-14 22:41:36 -04:00