set shell := ["bash", "-eu", "-o", "pipefail", "-c"] default_day := `date +'%d'` default: sync build # Run this whenever you change build files. This generates the latest build config (debug). sync: meson setup --reconfigure build/ # Release config for running real inputs. sync-release: meson setup --reconfigure build-release/ --buildtype=release # Build everything Meson knows about. build: meson compile -C build/ # Build release artifacts. build-release: sync-release meson compile -C build-release/ # Run tests for a specific day. Defaults to today's day-of-month. test day=default_day: sync day_raw="{{day}}"; day=$(printf '%02d' "$((10#$day_raw))"); meson test -C build "day${day}" # Run a day's solution on the "real" data set. run day=default_day: sync-release day_raw="{{day}}"; day=$(printf '%02d' "$((10#$day_raw))"); meson compile -C build-release "run-day${day}" # Clean the build folder. Useful... sometimes. clean: if [ -d build ]; then meson setup --wipe build/; fi if [ -d build-release ]; then meson setup --wipe build-release/; fi