Andrew Kelley
58f8dcd15e
std.Build: improve documentation for UpdateSourceFiles step
2026-05-25 18:54:35 -07:00
Andrew Kelley
eb80aa0060
std.Build.LazyPath.basename: fix impl
...
* no more parameters
* don't call getPath2, that was never valid to call in the configure
phase...
2026-05-25 18:54:35 -07:00
Andrew Kelley
bb1b59ee1f
Maker: implement Step.InstallDir
2026-05-25 18:54:35 -07:00
Andrew Kelley
d988146638
std.process.Child: add format and success methods
2026-05-25 18:54:35 -07:00
Andrew Kelley
5fb120a3c0
maker: implement cleanTmpFiles
2026-05-25 18:54:35 -07:00
Andrew Kelley
9709efce98
std.Build.Step.Run: introduce Arg.cc_args
...
provides a way for the build system to append -target and -isystem/-I
flags to a Run step.
needed by translate-c package to avoid doing naughty stuff in the
configure phase.
2026-05-25 18:54:35 -07:00
Andrew Kelley
fb9118195e
maker: implement pkg-config integration
...
featuring:
* better error reporting
* including PKG_CONFIG environment variable in `zig env`
* memoizing the output of `pkg-config --list-all`
2026-05-25 18:54:35 -07:00
Andrew Kelley
bd4c1e34d2
configurer: add search_prefixes back
...
It is generally best practice to avoid calling this function, instead
relying on the user to provide these paths via the standard build system
interface. However, when integrating with other build systems, the user
may have already provided the information to the other build system, and
thus it is desirable to use that same information without requiring the
user to provide it again.
2026-05-25 18:54:35 -07:00
Andrew Kelley
42be6c0088
configurer: serialize Step.TranslateC
2026-05-25 18:54:35 -07:00
Andrew Kelley
315d6ee59b
configurer: serialize Step.ConfigHeader
2026-05-25 18:54:35 -07:00
Andrew Kelley
7e6be7ee6e
configurer: serialize Step.ObjCopy
2026-05-25 18:54:35 -07:00
Andrew Kelley
f158262b30
configurer: serialize Step.Options
2026-05-25 18:54:35 -07:00
Andrew Kelley
d7eab060db
configurer: serialize Step.UpdateSourceFiles
2026-05-25 18:54:35 -07:00
Andrew Kelley
d45f792c91
configurer: serialize Step.Fmt
2026-05-25 18:54:35 -07:00
Andrew Kelley
1186a10d4e
configurer: serialize WriteFile
2026-05-25 18:54:35 -07:00
Andrew Kelley
f4ae918684
configurer: implement serializing InstallDir
2026-05-25 18:54:35 -07:00
Andrew Kelley
ecba6324bf
configurer: update TranslateC step
...
and get zig's build.zig script fully compiling
2026-05-25 18:54:35 -07:00
Andrew Kelley
8a8bf5ad02
maker: update ObjCopy to new system
2026-05-25 18:54:35 -07:00
Andrew Kelley
affe5ed867
std.Build: port UpdateSourceFiles step to new system
2026-05-25 18:54:35 -07:00
Andrew Kelley
d3ec255a1f
more progress towards zig's build.zig compiling
2026-05-25 18:54:35 -07:00
Andrew Kelley
1a83b4d8fa
zig build: add zig_exe back to argv
...
trying to eliminate this can be a followup
2026-05-25 18:54:35 -07:00
Andrew Kelley
3d78589765
std.Build: port Fmt step to new system
...
and integrate properly with LazyPath
2026-05-25 18:54:35 -07:00
Andrew Kelley
ddabd57743
progress towards compiling zig's build script
2026-05-25 18:54:35 -07:00
Andrew Kelley
fa26566867
configurer: get InstallDir and Options steps compiling
2026-05-25 18:54:35 -07:00
Andrew Kelley
c57bf99043
Configuration: implement Storage.UnionList.tag
2026-05-25 18:54:35 -07:00
Andrew Kelley
364a1400ff
configurer: fix compilation in the presence of dependencies
2026-05-25 18:54:35 -07:00
Andrew Kelley
ac0b1bfda2
build system: implement options
...
options which are passed to configurer and therefore observable by the
build script are added to the cache hash. A sorted list is hashed since
they are unordered.
2026-05-25 18:54:35 -07:00
Andrew Kelley
aec708ce25
build system: remove unneeded args from configurer
...
not needed:
* zig exe path
* zig lib dir
* build root
* local cache root
* global cache root
2026-05-25 18:54:35 -07:00
Andrew Kelley
1dc82c1328
configurer: remove Cache
2026-05-25 18:54:35 -07:00
Andrew Kelley
7819e4dea7
rename addCliExtras to addPassthruArgs
...
finally, a good name
2026-05-25 18:54:35 -07:00
Andrew Kelley
8f224bc3f0
rename addBuildPositionals to addCliExtras
...
they don't have to be positionals
2026-05-25 18:54:35 -07:00
Andrew Kelley
0d95b44a1c
build system: implement cli positionals
2026-05-25 18:54:35 -07:00
Andrew Kelley
1e956fda90
maker: add the --listen and --seed args back to run
2026-05-25 18:54:34 -07:00
Andrew Kelley
0f3471eb66
maker: finish porting over run step
2026-05-25 18:54:34 -07:00
Andrew Kelley
c8b583885d
maker: port Run step logic up to spawnChildAndCollect
2026-05-25 18:54:34 -07:00
Andrew Kelley
0d48cbb822
std.process.Environ.Map: add putAll and clearRetainingCapacity
2026-05-25 18:54:34 -07:00
Andrew Kelley
378b790ee2
maker: port more of Run step over
2026-05-25 18:54:34 -07:00
Andrew Kelley
7c718fc72e
fix compilation errors from rebase conflicts
2026-05-25 18:54:34 -07:00
Andrew Kelley
a399d37886
maker: upgrade some of the run step logic
2026-05-25 18:54:34 -07:00
Andrew Kelley
81ee4ab32c
configurer: serialize all data from run steps
2026-05-25 18:54:34 -07:00
Andrew Kelley
8bc0913212
compiler: fix compilation errors
2026-05-25 18:54:34 -07:00
Andrew Kelley
e436d9c4ad
configurer: back out the string interning from prev commit
...
partial revert of 2d3fbb687fba1ed52b42998ac4dcbf2a042644ea - see its
commit message for reasoning
2026-05-25 18:54:34 -07:00
Andrew Kelley
c6d37f3895
configurer: make string duplication also intern
...
I had this idea to make b.dupe() also intern the strings since they will
be ultimately serialized to Configuration. Unfortunately the idea does
not work, because although a process-lived arena is used for the
string_bytes ArrayList of the Configuration.Wip, when the ArrayList is
resized, Allocator.free() memsets the freed memory to undefined, even
though it still technically lives due to being in a process-scoped
arena. So this commit will need to be partially reverted. However, I
kept it for posterity, and there are some more changes which I will now
note below.
- dupePaths: don't rewrite backslashes to forward slashes. backslashes
are valid in filenames on non-windows systems.
- always compile configurer in single-threaded mode
- use arena allocator for everything, no gpa for anything
- construct the Configuration.Wip instance earlier, so some stuff can be
prepopulated as desired.
- don't forget to flush
2026-05-25 18:54:34 -07:00
Andrew Kelley
aa0652ff8d
maker: implement InstallArtifact and InstallFile
2026-05-25 18:54:34 -07:00
Andrew Kelley
dd51fc30f8
maker: finish migrating compile step make logic
2026-05-25 18:54:34 -07:00
Andrew Kelley
c60d33f167
Configuration: refactor maxInt(u32)
2026-05-25 18:54:34 -07:00
Andrew Kelley
6ad6a58e5d
Configuration: fix bad serialization of PrefixedList and MultiList
...
Length zero is still serialized because there is no flag bit to hide the
length.
2026-05-25 18:54:34 -07:00
Andrew Kelley
a60ffaf5b3
maker: finish migrating most of CLI lowering code
2026-05-25 18:54:34 -07:00
Andrew Kelley
cc4f205fc3
maker: progress towards lowering zig cli args
2026-05-25 18:54:34 -07:00
Andrew Kelley
ec2b156720
std: rename zig.Configuration to Build.Configuration
2026-05-25 18:54:34 -07:00