fix: source espup env for linker, add build-all, fix Ctrl+C handling
- Source ~/export-esp.sh in Justfile for xtensa builds (provides GCC) - Add build-all target for producing firmware - Trap SIGINT in build-all/check-all so Ctrl+C stops immediately - Add .cargo/config.toml to .gitignore (may be generated) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 file changed
+23
-4
@@ -12,12 +12,25 @@ firmware_dir := "firmware"
|
|||||||
# All known boards
|
# All known boards
|
||||||
boards := "heltec_v3 heltec_v4 rak_wisblock_4631"
|
boards := "heltec_v3 heltec_v4 rak_wisblock_4631"
|
||||||
|
|
||||||
|
# Build release firmware for all boards with available toolchains
|
||||||
|
build-all:
|
||||||
|
@trap 'exit 130' INT; \
|
||||||
|
for board in {{boards}}; do \
|
||||||
|
if just _can_build $board 2>/dev/null; then \
|
||||||
|
echo "── building $board ──"; \
|
||||||
|
just build $board || exit $?; \
|
||||||
|
else \
|
||||||
|
echo "── skipping $board (toolchain not available) ──"; \
|
||||||
|
fi; \
|
||||||
|
done
|
||||||
|
|
||||||
# Check all boards that can build with the available toolchain
|
# Check all boards that can build with the available toolchain
|
||||||
check-all:
|
check-all:
|
||||||
@for board in {{boards}}; do \
|
@trap 'exit 130' INT; \
|
||||||
|
for board in {{boards}}; do \
|
||||||
if just _can_build $board 2>/dev/null; then \
|
if just _can_build $board 2>/dev/null; then \
|
||||||
echo "── checking $board ──"; \
|
echo "── checking $board ──"; \
|
||||||
just check $board; \
|
just check $board || exit $?; \
|
||||||
else \
|
else \
|
||||||
echo "── skipping $board (toolchain not available) ──"; \
|
echo "── skipping $board (toolchain not available) ──"; \
|
||||||
fi; \
|
fi; \
|
||||||
@@ -31,7 +44,10 @@ check board:
|
|||||||
clippy board:
|
clippy board:
|
||||||
@read -r feat target chip <<< "$(just _info {{board}})"; \
|
@read -r feat target chip <<< "$(just _info {{board}})"; \
|
||||||
env=""; extra=""; \
|
env=""; extra=""; \
|
||||||
case "$target" in xtensa-*) env="RUSTC=$(rustup which rustc --toolchain esp)"; extra="+nightly -Zbuild-std=core";; esac; \
|
case "$target" in xtensa-*) \
|
||||||
|
[ -f "$HOME/export-esp.sh" ] && . "$HOME/export-esp.sh"; \
|
||||||
|
env="RUSTC=$(rustup which rustc --toolchain esp)"; extra="+nightly -Zbuild-std=core";; \
|
||||||
|
esac; \
|
||||||
eval $env cargo $extra clippy --target $target --features $feat -- -D warnings
|
eval $env cargo $extra clippy --target $target --features $feat -- -D warnings
|
||||||
|
|
||||||
# Build release firmware and copy to firmware/ with a readable name
|
# Build release firmware and copy to firmware/ with a readable name
|
||||||
@@ -57,7 +73,10 @@ size board:
|
|||||||
_cargo board cmd:
|
_cargo board cmd:
|
||||||
@read -r feat target chip <<< "$(just _info {{board}})"; \
|
@read -r feat target chip <<< "$(just _info {{board}})"; \
|
||||||
env=""; extra=""; \
|
env=""; extra=""; \
|
||||||
case "$target" in xtensa-*) env="RUSTC=$(rustup which rustc --toolchain esp)"; extra="+nightly -Zbuild-std=core";; esac; \
|
case "$target" in xtensa-*) \
|
||||||
|
[ -f "$HOME/export-esp.sh" ] && . "$HOME/export-esp.sh"; \
|
||||||
|
env="RUSTC=$(rustup which rustc --toolchain esp)"; extra="+nightly -Zbuild-std=core";; \
|
||||||
|
esac; \
|
||||||
eval $env cargo $extra {{cmd}} --target $target --features $feat
|
eval $env cargo $extra {{cmd}} --target $target --features $feat
|
||||||
|
|
||||||
# Check if a board's toolchain is available
|
# Check if a board's toolchain is available
|
||||||
|
|||||||
Reference in new issue
Block a user