Files
slate32/Makefile
T
evan b5146b8642 refactor(lua): give the status bar its own dirty tracking and split settings out of sys
The bar repainted itself whole every second. It now compares each field against what
it last painted, adds seconds and a memory percentage, and keys the cache on
gui.getRotation() and ui.themeName so rotation and theme changes still repaint it.
Invalidation lives entirely in Lua; the firmware's push flag and gfx/statusbar.h are gone.

Bindings follow getName/setName/isName, persisted preferences move from sys to a settings
table, and gui.setRotation takes degrees like settings does. A bar that dies mid-run now
keeps its rows reserved rather than silently resizing the running app.
2026-08-02 10:49:01 -04:00

46 lines
1.3 KiB
Makefile

# Run inside `nix develop`, which provides pio, lua and a compiler.
# LUA is pinned to 5.4 to match the interpreter vendored into the firmware.
LUA ?= lua
CXX ?= c++
CXXFLAGS ?= -std=c++11 -Wall -Wextra
BUILD_DIR := .pio/build/esp32-32e
LUA_TESTS := test/ui_layout.lua test/ui_theme.lua test/settings_calibration.lua test/statusbar_dirty.lua
.PHONY: test test-lua test-cpp test-stubs stubs build upload monitor clean
test: test-cpp test-lua test-stubs
# The stub is only useful if it matches the bindings, and nothing but a check keeps it
# honest -- an editor completing a function the firmware no longer has is worse than no
# completion at all.
test-stubs:
@printf '%-32s ' stubs/slate32.lua; python3 scripts/gen_lua_stubs.py --check && echo ok
stubs:
@python3 scripts/gen_lua_stubs.py
test-lua:
@$(LUA) -e 'assert(_VERSION == "Lua 5.4", "tests need Lua 5.4 to match the firmware, got " .. _VERSION)'
@for t in $(LUA_TESTS); do printf '%-32s ' "$$t"; $(LUA) "$$t" || exit 1; done
test-cpp: $(BUILD_DIR)/round_rect_test
@printf '%-32s ' test/round_rect_test.cpp; $(BUILD_DIR)/round_rect_test
$(BUILD_DIR)/round_rect_test: test/round_rect_test.cpp src/gfx/round_rect.h
@mkdir -p $(@D)
@$(CXX) $(CXXFLAGS) $< -o $@
build:
pio run
upload:
pio run -t upload
monitor:
pio device monitor
clean:
pio run -t clean
rm -f $(BUILD_DIR)/round_rect_test