Commit Graph

38354 Commits

Author SHA1 Message Date
Andrew Kelley bd1b47733b zig build: remove --build-runner CLI parameter
There is no concept of a "build runner" any more; it has been split in two:
configurer and maker.

Users of this feature will likely want to no longer override any logic, and
instead consume the configuration file produced by configurer.

If overriding one or the other of these is desired, the feature will need to be
re-introduced (as --override-maker or --override-configurer).
2026-05-25 18:54:36 -07:00
Andrew Kelley 1aa65d094e Maker.Step.Run: leak into global arena less
There are still some uses:
- fuzzing
- generated paths (will require adjusting all step logic)
- Step.result_stderr
2026-05-25 18:54:36 -07:00
Andrew Kelley 9eb85c4e5e build system: track TODOs outside source code
related to #363
2026-05-25 18:54:36 -07:00
Andrew Kelley ea151030bc std.Io.Writer: implement {q} formatter
This is intended to replace the common pattern:

print("invalid foobar: '{s}': {t}", ...)

The idea is to not invent imaginary syntax. If the string contained
single quotes for example, this would be a nonsensical error message.
On the other hand with the new pattern:

print("invalid foobar: {q}: {t}", ...)

It's both easier on the eyes at the print site, and also it will allow
the user to copy paste a properly escaped string, should the quoted text
contain any odd characters, including invisible ones like null bytes.
2026-05-25 18:54:36 -07:00
Andrew Kelley 65c96c4035 Maker.Step.Run: add missing PATH entries for DLLs 2026-05-25 18:54:36 -07:00
Andrew Kelley d1a4462032 Maker.Step.InstallArtifact: use gpa for fs walking 2026-05-25 18:54:36 -07:00
Andrew Kelley f79ae3214c zig build: close open file handles before spawning child
ever so slightly reduces rlimit pressure in the child. plus it avoids
accounting problems in libc-test
2026-05-25 18:54:36 -07:00
Andrew Kelley bc031bedaa std.Build.Step: delete legacy Maker fields 2026-05-25 18:54:36 -07:00
Andrew Kelley 2a8e15bc06 disable passing zig progress pipe to nsz libc test
however, this does not actually address the test case that started
failing
2026-05-25 18:54:36 -07:00
Andrew Kelley c5517102e7 Maker: delete ConfigHeader unit tests
these will work better as standalone tests that exercise the std.Build
API.
2026-05-25 18:54:36 -07:00
Andrew Kelley c0504a8fa8 fuzzer: get it working again 2026-05-25 18:54:36 -07:00
Andrew Kelley 1c8d50e062 ci: remove redundant comment
it says it right there in the echo text afterwards
2026-05-25 18:54:36 -07:00
Andrew Kelley 9a788dccf8 std.Build.lazyImport: fix compilation errors 2026-05-25 18:54:36 -07:00
Andrew Kelley 0aa613d9bf Maker.Step.Run: fix passing -L to qemu 2026-05-25 18:54:36 -07:00
Andrew Kelley ed492ff51c Maker.Step.WriteFile: fix not creating dir entries 2026-05-25 18:54:36 -07:00
Andrew Kelley 626e410413 Maker: fix regressed dyn lib symlink logic 2026-05-25 18:54:36 -07:00
Andrew Kelley 4ba2bcbbec std.Build.Configuration: fix loading on big endian 2026-05-25 18:54:36 -07:00
Andrew Kelley 642d017fea Maker: fix resolveLazyPath accidental mutation 2026-05-25 18:54:36 -07:00
Andrew Kelley 9b6dd7ee5c zig build CLI: change --debug-maker to --maker-opt=[mode]
the --debug- prefixed args are reserved for compiler debugging flags.
2026-05-25 18:54:36 -07:00
Andrew Kelley bd84824d9f Maker: fix compilation on BSDs 2026-05-25 18:54:36 -07:00
Andrew Kelley fed031031d Maker: fix compilation on windows 2026-05-25 18:54:36 -07:00
Andrew Kelley b069a2eb21 Maker: update macos file watching code to new api 2026-05-25 18:54:36 -07:00
Andrew Kelley 05fbeb4ea7 Maker.Step.Run: fix wrong allocator used 2026-05-25 18:54:36 -07:00
Andrew Kelley 3e75a3e36b Configuration: add new target info 2026-05-25 18:54:36 -07:00
Andrew Kelley e7546f8dfd CI: --debug-maker in ci/x86_64-linux-debug-llvm.sh
in case any build system bugs are introduced this will make it quicker
to find the cause.
2026-05-25 18:54:36 -07:00
Andrew Kelley fa7433a924 fix std-docs.zig compilation 2026-05-25 18:54:36 -07:00
Andrew Kelley 8b4e55372a fix incr-check tests 2026-05-25 18:54:36 -07:00
Andrew Kelley 2edeeb5a64 zig build: add CLI usage for --print-configuration 2026-05-25 18:54:36 -07:00
Andrew Kelley 6d5fbb26da Maker: enhance debuggability when resolveLazyPath fails 2026-05-25 18:54:36 -07:00
Andrew Kelley 9989f72c61 Maker: implement ConfigHeader 2026-05-25 18:54:36 -07:00
Andrew Kelley e435299cfa Maker: progress towards ConfigHeader
however... why is this done in the make phase anyway? making a header
like this is typically done by the configure phase...
2026-05-25 18:54:36 -07:00
Andrew Kelley ed1f005826 Maker: finish implementing Step.Compile.appendIncludeDirFlags 2026-05-25 18:54:36 -07:00
Andrew Kelley 31c159c228 Maker: implement CheckFile 2026-05-25 18:54:36 -07:00
Andrew Kelley 92038675af zig build: implement findProgram (not lazy) 2026-05-25 18:54:36 -07:00
Andrew Kelley 1edc5d7d67 Maker: implement FindProgram (lazy) 2026-05-25 18:54:36 -07:00
Andrew Kelley 54bb8d2dd9 implement the concept of configure cache poisoning 2026-05-25 18:54:36 -07:00
Andrew Kelley df8aaad058 maker: extract some pkg-config logic into reusable API 2026-05-25 18:54:36 -07:00
Andrew Kelley c678f94daa std.array_list: add last method, deprecated getLast 2026-05-25 18:54:36 -07:00
Andrew Kelley a874e729df zig build: remove "cc args" from Run steps
Not sure what I was thinking. This is silly, translate-c package simply
needs to pass this data (link_libc and target) to the CLI application,
which can then do the appropriate behavior.
2026-05-25 18:54:36 -07:00
Andrew Kelley 996b411809 Configuration: more type safety for adding data
erased method still exists for when the result will be converted to an
int anyway.
2026-05-25 18:54:36 -07:00
Andrew Kelley 4cbc03dce3 Maker: we don't actually need to scan the modules 2026-05-25 18:54:36 -07:00
Andrew Kelley df92898ec3 Maker: fix packagePath function
Currently, neither configurer nor Maker is aware of the standard zig
package path, and the root path is stored as a bare string rather than
relative to a known base directory. Without changing that, we must
construct a cwd relative path here rather than using knowledge of the
standard package path plus package hash.

Also fixes a bug that would have been prevented by implementing the
accepted proposal https://github.com/ziglang/zig/issues/25315
2026-05-25 18:54:36 -07:00
Andrew Kelley 619f23b3c7 CLI: support both --fork=[path] and --fork [path] 2026-05-25 18:54:36 -07:00
Andrew Kelley 91a7ea4ff4 Maker: implement TranslateC 2026-05-25 18:54:36 -07:00
Andrew Kelley 88e066bb7b Configuration: fix dynamic linker null unwrap 2026-05-25 18:54:36 -07:00
Andrew Kelley 940b9bccc2 Configuration: fix Cpu.Arch enum mismatch 2026-05-25 18:54:36 -07:00
Andrew Kelley b991b868ae Configuration: prevent ObjectFormat enum mismatch 2026-05-25 18:54:36 -07:00
Andrew Kelley 88ae1d9aec Configuration: fix the target os enum mismatch 2026-05-25 18:54:36 -07:00
Andrew Kelley d1204d4104 Maker.Step.Run: implement addPathForDynLibs 2026-05-25 18:54:36 -07:00
Andrew Kelley 3a259e2f0f Maker.Step.Compile: implement checkCompileErrors 2026-05-25 18:54:36 -07:00