Puts a forcola_shim binary into priv/.
Resolution order:
FORCOLA_BUILD=1(ortrue) forces a localcargo build --releasefromnative/forcola_shim. This is the escape hatch for targets the release workflow does not cover; it raises if cargo is not onPATH.- If
checksum-forcola_shim.exsexists (it ships in the hex package and never in the git checkout), the precompiled binary for the current target is downloaded from GitHub Releases and its SHA256 verified against that file. A mismatch fails the compile. - If
native/forcola_shimexists and cargo is onPATH(git checkout, CI), a debugcargo buildruns and the binary is copied intopriv/when stale. This is the development path. - Otherwise the compile fails with instructions.
The binary is placed in the source priv/ and also synced into the
build priv (Mix.Project.app_path/0 + priv/), where
Forcola.Shim.path/0 and mix release read it. Mix copies a dep's
source priv into the build priv before this compiler runs, so the
sync is what makes a fresh install resolve; see #47.