Crafter.Build/interfaces
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 5d25495621
fix: key the std module's directory on everything it is compiled with
StdPcmDir named the directory by target, march and toolchain, then
grew a case per target for the rest: the wasm flags, and with the first
fix for #43 the mingw prefix. Every other flag BuildStdPcm passes went
unkeyed, so configurations that differed only there took turns
rebuilding one std PCM in place, under the PCMs built against it: a
project with -mtune=generic against project.cpp's -mtune=native on every
run, or two sysroots for one target. And the mingw prefix was keyed only
when there was one, so a build without a prefix landed in the directory
an older release had filled with a CRAFTER_MINGW_DIR=/usr build, and
relinked its objects.

StdPcmFlags is now the one source of the flags BuildStdPcm compiles
with, and StdPcmKey names the directory by target, march and toolchain
followed by a hash of those flags and, for the mingw target, of the
prefix behind its --sysroot. VariantId hashes StdPcmKey in place of the
mingw prefix: units do not notice a std module that moved directories,
so a build has to move with it. Every std PCM directory and build
directory moves once, as after a compiler update; the old ones stay
until `clean` and the cache is cleared by hand.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 22:58:44 +01:00
..
Crafter.Build-Agents.cppm feat(agents): write AGENTS.md from a tracked AGENTS.template.md 2026-10-31 16:53:42 +01:00
Crafter.Build-Asset.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Clang.cppm fix: key the std module's directory on everything it is compiled with 2026-10-31 22:58:44 +01:00
Crafter.Build-External.cppm Merge branch 'claude/issue-41': refuse a build that holds two builds of one module 2026-10-31 05:30:36 +01:00
Crafter.Build-Implementation.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Interface.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Lint.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Platform.cppm Merge branch 'claude/forward-project-args': sibling projects inherit the args, lint with the lite rules 2026-10-31 05:27:37 +01:00
Crafter.Build-Progress.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Script.cppm feat(script): scripts in project.cpp, run with crafter-build run 2026-10-20 19:08:26 +02:00
Crafter.Build-Shader.cppm fix: rebuild and relink on what changed, submodules at their revisions, and mingw found where it is 2026-10-20 20:20:29 +02:00
Crafter.Build-Test.cppm refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
Crafter.Build-Toolchain.cppm fix(mingw): view only a prefix that holds a Linux system 2026-10-31 22:58:30 +01:00
Crafter.Build.cppm feat(agents): keep dependencies' AGENTS.consumer.md in AGENTS.md 2026-10-31 03:18:06 +01:00