zig/lib/std/Build/Step
mlugg f3c0555975
std.Build: introduce ConfigHeader.getOutputDir, small refactor
`std.Build.Step.ConfigHeader` emits a *directory* containing a config
header under a given sub path, but there's no good way to actually
access that directory as a `LazyPath` in the configure phase. This is
silly; it's perfectly valid to refer to that directory, perhaps to
explicitly pass as a "-I" flag to a different toolchain invoked via a
`Step.Run`. So now, instead of the `GeneratedFile` being the actual
*file*, it should be that *directory*, i.e. `cache/o/<digest>`. We can
then easily get the *file* if needed just by using `LazyPath.path` to go
"deeper", which there is a helper function for.

The legacy `getOutput` function is now a deprecated alias for
`getOutputFile`, and `getOutputDir` is introduced.

`std.Build.Module.IncludeDir.appendZigProcessFlags` needed a fix after
this change, so I took the opportunity to refactor it a little. I was
looking at this function while working on ziglang/translate-c yesterday
and realised it could be expressed much more simply -- particularly
after the `ConfigHeader` change here.

I had to update the test `standalone/cmakedefine/` -- it turns out this
test was well and truly reaching into build system internals, and doing
horrible not-really-allowed stuff like overriding the `makeFn` of a
`TopLevelStep`. To top it all off, the test forgot to set
`b.default_step` to its "test" step, so the test never even ran. I've
refactored it to follow accepted practices and to actually, like, work.
2025-06-17 11:55:36 +01:00
..
CheckFile.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
CheckObject.zig std.meta.intToEnum -> std.enums.fromInt 2025-05-13 07:28:41 +02:00
Compile.zig compiler: rework emit paths and cache modes 2025-06-12 13:55:40 +01:00
ConfigHeader.zig std.Build: introduce ConfigHeader.getOutputDir, small refactor 2025-06-17 11:55:36 +01:00
Fail.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
Fmt.zig Replace deprecated default initializations with decl literals 2024-09-12 16:01:23 +01:00
InstallArtifact.zig compiler: allow emitting tests to an object file 2025-04-22 22:50:36 +01:00
InstallDir.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
InstallFile.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
ObjCopy.zig std.Build: remove deprecated APIs 2024-12-18 01:47:50 +05:00
Options.zig Revert "Merge pull request #22898 from kristoff-it/deprecated-proposal" 2025-02-28 01:37:10 -08:00
RemoveDir.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
Run.zig std.Build.Step.Run: convert relative paths to be relative to child cwd 2025-06-13 16:30:39 +01:00
TranslateC.zig std.Build: add API to create Compile steps from existing module 2024-12-18 01:48:54 +05:00
UpdateSourceFiles.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00
WriteFile.zig make zig compiler processes live across rebuilds 2024-07-14 19:51:16 -07:00