Crafter.Build/tests
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Jorijn van der Graaf 06b61e84f9
fix(mingw): view only a prefix that holds a Linux system
The first fix showed clang every mingw prefix through a view of its
mingw-w64 parts. That broke a prefix that holds mingw-w64 alone, where
Windows libraries installed with --prefix land in include/ and lib/:
with CRAFTER_MINGW_DIR=/opt/mingw, <SDL2/SDL.h> and -lSDL2 were no
longer found. Such a prefix is clang's sysroot whole again. Only a
prefix that also holds a Linux system gets the view
(Toolchain::mingwPrefixIsSystem): the host's /usr inside the Flatpak,
whatever its include/ holds, and a prefix whose include/ has a C
library's features.h, which every glibc and musl header includes and
mingw-w64 has no use for, as CRAFTER_MINGW_DIR=/usr has.

MakeMingwSysroot makes the view in the cache, or in
$XDG_RUNTIME_DIR/crafter.build when the cache's filesystem takes no
symbolic links (vfat, exFAT, CIFS without unix extensions): the XDG
spec promises them there, and nothing else in the cache needs them.
Its path is absolute, because CMake runs the compiler from directories
of its own and a relative cache did not resolve from there. The prefix
is resolved once, absolute and lexically normal, so /opt/mingw/ and
/opt/mingw are one prefix and not two builds.

clang names a header by the path it found it at, so every diagnostic
from a viewed mingw-w64 header named a hashed cache directory.
RunBuildCommand now writes paths into the view as paths into the
prefix, as BuildStdPcm did for its manifest messages already.

Also from the review of PR #44: SysrootCompileFlags builds a mingw
command, which can make a view, so it redirects the cache like the
other tests; the manifest filter's comment names what it still keeps
out; the C path asks MingwSysroot() once.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-31 22:58:30 +01:00
..
CleanProject test(cli): a word after format is a glob, not the clean verb 2026-10-20 19:08:26 +02:00
CompilerWarning refactor: drop Windows host support 2026-10-02 22:03:34 +02:00
ConcurrentCacheRace linting 2026-07-23 01:24:42 +02:00
ConcurrentDependencyReset linting 2026-07-23 01:24:42 +02:00
ConcurrentExternalFetch test(external): race BuildExternal as well as GitFetch 2026-10-31 02:09:24 +01:00
DependencyLink linting 2026-07-23 01:24:42 +02:00
DependencyNotes feat(agents): write AGENTS.md from a tracked AGENTS.template.md 2026-10-31 16:53:42 +01:00
DuplicateModule test: two builds of one module are refused before anything compiles 2026-10-31 05:19:30 +01:00
ExternalArtifactTime fix(external): fetch and build each clone once per build pass 2026-10-31 02:09:24 +01:00
GitSubmodules 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
HelloWorld linting 2026-07-23 01:24:42 +02:00
HostCacheSourceStamp test(host-cache): changed declarations recompile project.so 2026-10-06 16:50:41 +02:00
HostCacheToolchainKey fix: key PCM and project.so freshness on content, not installed mtimes 2026-10-02 23:18:09 +02:00
HostToolingSibling test: a project and its pragma dependency load a shared sibling apart 2026-10-31 05:11:41 +01:00
IncrementalHeaderChange test: header-change incrementality across every compile path 2026-07-31 11:11:49 +00:00
IncrementalInterfaceChange fix: re-resolve module imports before checking staleness 2026-07-30 17:12:24 +00:00
LinkFlagsChange 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
Lint feat(lint): const-local and constexpr-constant rules 2026-07-31 00:50:48 +02:00
MingwMissing 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
MingwSysroot fix(mingw): view only a prefix that holds a Linux system 2026-10-31 22:58:30 +01:00
ModuleInterface linting 2026-07-23 01:24:42 +02:00
ProjectArgs test: specs and ProjectDependency() in a project file's static initialisers 2026-10-31 05:11:41 +01:00
ProjectDependency test: specs and ProjectDependency() in a project file's static initialisers 2026-10-31 05:11:41 +01:00
RunSingleTestExit linting 2026-07-23 01:24:42 +02:00
Script test: -- reaches neither the project args nor the script 2026-10-31 05:11:41 +01:00
ShaderCompile 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
ShaderIncludeChange 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
ShaderVariantBuild test(shader): variants through the Shader API and through Build() 2026-10-06 16:50:41 +02:00
SharedExternalFetch test(external): tests that share a dependency fetch it once a run 2026-10-31 02:09:24 +01:00
StandardArgs fix: key the host PCM cache on source content, add clean, hash project args 2026-07-30 17:43:09 +00:00
StaticLib linting 2026-07-23 01:24:42 +02:00
SysrootCompileFlags fix(mingw): view only a prefix that holds a Linux system 2026-10-31 22:58:30 +01:00
SysrootStdModule test(sysroot): cover the std module source choice for a sysroot build 2026-10-03 16:37:00 +02:00
TestRunnerSpec feat(toolchain): resolve the compiler in one place 2026-10-02 22:26:31 +02:00
ToolchainResolve fix(mingw): view only a prefix that holds a Linux system 2026-10-31 22:58:30 +01:00
TransitiveInterfaceChange test change 2026-08-05 05:49:42 +02:00
VariantId test: a mingw build sees no header from its prefix's include/ 2026-10-31 20:48:06 +01:00
VersionFlag feat(toolchain): resolve the compiler in one place 2026-10-02 22:26:31 +02:00
WasiBrowserRuntime fix(wasm): what the review found 2026-10-31 06:10:41 +01:00
WasiBrowserRuntimeExit test(wasi-runtime): exit and park, under node 2026-10-31 05:55:32 +01:00
WasiSysrootWithoutExceptions test(wasm): the cases the review found 2026-10-31 06:10:41 +01:00
WasmBuildRefusals test(wasm): the cases the review found 2026-10-31 06:10:41 +01:00
WasmExceptions feat(wasm): link libsetjmp, so setjmp needs no flag 2026-10-31 06:29:52 +01:00
WasmHelloRuns test(wasm): exceptions in a wasm build, and a sysroot without them 2026-10-31 05:54:48 +01:00
WasmVariants fix(wasm): what the review found 2026-10-31 06:10:41 +01:00