61 lines
1.5 KiB
Makefile
61 lines
1.5 KiB
Makefile
alias e := example
|
|
alias r := run
|
|
alias t := test
|
|
alias b := bench
|
|
alias y := year
|
|
alias ya := year-all
|
|
alias ty := test-year
|
|
alias by := bench-year
|
|
alias ta := test-all
|
|
alias ba := bench-all
|
|
alias hf := hyperfine
|
|
alias hfe := hyperfine-example
|
|
alias hfy := hyperfine-year
|
|
|
|
target := `cargo metadata --format-version=1 | jq -r .target_directory`
|
|
|
|
_default:
|
|
@just --list
|
|
|
|
example year day ex:
|
|
cargo run --bin {{year}}_{{day}} -- ../examples/{{year}}/{{trim_start_match(day, "0")}}/{{ex}}
|
|
|
|
run year day *args:
|
|
cargo run --bin {{year}}_{{day}} {{args}}
|
|
|
|
test year day *args:
|
|
cargo test --bin {{year}}_{{day}} {{args}}
|
|
|
|
bench year day *args:
|
|
cargo bench --bin {{year}}_{{day}} {{args}}
|
|
|
|
year year *args:
|
|
cargo run --bin {{year}} {{args}}
|
|
|
|
test-year year *args:
|
|
cargo test --bin '{{year}}_*' {{args}}
|
|
|
|
bench-year year *args:
|
|
cargo bench --bin '{{year}}_*' {{args}}
|
|
|
|
test-all *args:
|
|
cargo test --bin '*' {{args}}
|
|
|
|
bench-all *args:
|
|
cargo bench --bin '*' {{args}}
|
|
|
|
year-all *args:
|
|
@set -e; for year in *; do [[ -f $year/main.rs ]] || continue; just year $year {{args}}; done
|
|
|
|
build year day:
|
|
cargo build --release --bin {{year}}_{{day}}
|
|
|
|
hyperfine year day *args: (build year day)
|
|
hyperfine {{args}} {{target}}/release/{{year}}_{{day}}
|
|
|
|
hyperfine-example year day ex *args: (build year day)
|
|
hyperfine {{args}} '{{target}}/release/{{year}}_{{day}} ../examples/{{year}}/{{trim_start_match(day, "0")}}/{{ex}}'
|
|
|
|
hyperfine-year year *args:
|
|
cargo build --release --bin {{year}}
|
|
hyperfine {{args}} {{target}}/release/{{year}}
|