Advent of Code 2025, done in C++
at main 1.1 kB view raw
1set shell := ["bash", "-eu", "-o", "pipefail", "-c"] 2 3default_day := `date +'%d'` 4 5default: sync build 6 7# Run this whenever you change build files. This generates the latest build config (debug). 8sync: 9 meson setup --reconfigure build/ 10 11# Release config for running real inputs. 12sync-release: 13 meson setup --reconfigure build-release/ --buildtype=release 14 15# Build everything Meson knows about. 16build: 17 meson compile -C build/ 18 19# Build release artifacts. 20build-release: sync-release 21 meson compile -C build-release/ 22 23# Run tests for a specific day. Defaults to today's day-of-month. 24test day=default_day: sync 25 day_raw="{{day}}"; day=$(printf '%02d' "$((10#$day_raw))"); meson test -C build "day${day}" 26 27# Run a day's solution on the "real" data set. 28run day=default_day: sync-release 29 day_raw="{{day}}"; day=$(printf '%02d' "$((10#$day_raw))"); meson compile -C build-release "run-day${day}" 30 31# Clean the build folder. Useful... sometimes. 32clean: 33 if [ -d build ]; then meson setup --wipe build/; fi 34 if [ -d build-release ]; then meson setup --wipe build-release/; fi