13d1d013e9
Adds .cargo/config.toml setting `rustc-wrapper = "sccache"` so cold rebuilds (CI, fresh checkouts, post-`cargo clean`) replay previously- compiled crates from disk instead of recompiling. Warm incremental builds are unaffected — cargo's own target/ cache dominates there. Cache lives at `.sccache-cache/` inside the project (gitignored). The [env] entry uses `force = false` so a developer-set $SCCACHE_DIR in their shell wins, matching whichever directory the sccache daemon already adopted. Requires sccache on PATH. Install: `pacman -S sccache`, `brew install sccache`, or `cargo install sccache --locked`. Bypass without editing: `RUSTC_WRAPPER= cargo build`.
32 lines
1.2 KiB
TOML
32 lines
1.2 KiB
TOML
# Project-wide cargo configuration.
|
|
#
|
|
# Routes every rustc invocation through `sccache` so cold rebuilds and
|
|
# fresh checkouts (CI, new dev box, after a `cargo clean`) replay
|
|
# previously-compiled crates from a local on-disk cache rather than
|
|
# recompiling them. Warm incremental builds still go through cargo's
|
|
# own `target/` cache, which dominates locally — sccache buys you the
|
|
# big wins on cold paths.
|
|
#
|
|
# Requires sccache on PATH. Install it once per machine:
|
|
#
|
|
# Arch : pacman -S sccache
|
|
# macOS : brew install sccache
|
|
# Cargo : cargo install sccache --locked
|
|
#
|
|
# Without sccache the build fails with "rustc-wrapper not found". To
|
|
# bypass this config without editing the file, prepend
|
|
# `RUSTC_WRAPPER= ` (empty value) to your cargo command:
|
|
#
|
|
# RUSTC_WRAPPER= cargo build
|
|
#
|
|
[build]
|
|
rustc-wrapper = "sccache"
|
|
|
|
# Project-local cache so the shared dev box (or a Docker volume) keeps
|
|
# the artefacts isolated per checkout instead of mixing them in
|
|
# `~/.cache/sccache`. Set with `force = false` so a developer-set
|
|
# `SCCACHE_DIR` in their shell wins — important because the sccache
|
|
# daemon, once started, sticks with whichever directory it saw first.
|
|
[env]
|
|
SCCACHE_DIR = { value = ".sccache-cache", relative = true, force = false }
|