build(firmware): default to the git build, add build-light

Make `just build`/`just flash` the nominal product build (--features git
+ LIBGIT2_SRC), and move the fast editor-only build to `build-light`/
`flash-light`. Verified the git default links libgit2 into the firmware
ELF (1.2 MB) cleanly.
This commit is contained in:
Julien Calixte
2026-07-11 12:47:57 +02:00
parent 830701e670
commit 9101d61045

View File

@@ -31,28 +31,26 @@ git_env := "LIBGIT2_SRC=" + libgit2_src + " LIBGIT2_NO_VENDOR=1 PKG_CONFIG_ALLOW
default:
@just --list
# compile (release)
# compile (release) — the nominal product build: full firmware WITH git
# publishing (compiles libgit2 + mbedTLS, links git2). For fast iteration on the
# editor / EPD / USB / SD without paying for libgit2, use `build-light`.
build:
{{esp_env}} cargo build --release --bin firmware
# build + flash + open serial monitor
flash:
{{esp_env}} cargo run --release --bin firmware
# Full editor firmware WITH git publishing — the HEAVY build: compiles libgit2 +
# mbedTLS and links git2. The `build`/`flash` recipes above stay light (no
# libgit2 component — LIBGIT2_SRC unset — and no git2 crate, `git` feature off),
# so use those for iterating on the editor / EPD / USB / SD. Only reach for this
# to exercise `:sync`'s push. Bakes the TW_* creds into flash like the git
# spikes (ADR-005: not for a shipping image). NB: git isn't wired into main.rs
# yet, so today this just builds slower and behaves like the light build.
build-firmware-git:
{{esp_env}} {{git_env}} cargo build --release --bin firmware --features git
# Full firmware — build + flash + monitor (see build-firmware-git).
flash-firmware-git:
# build + flash + open serial monitor (full firmware, see `build`)
flash:
{{esp_env}} {{git_env}} cargo run --release --bin firmware --features git
# LIGHT editor build — no git: no libgit2 component (LIBGIT2_SRC unset) and no
# git2 crate (`git` feature off), so it builds much faster. `:sync` saves locally
# and skips the push. Use for anything but exercising publish.
build-light:
{{esp_env}} cargo build --release --bin firmware
# light build + flash + open serial monitor (see `build-light`)
flash-light:
{{esp_env}} cargo run --release --bin firmware
# serial monitor only, with decoded backtraces
monitor:
espflash monitor --elf {{elf}}