# std.Build: introduce \`ConfigHeader.getOutputDir\`, small refactor · gitcafe/zig

[View on GitCafe](https://git.cafe/gitcafe/zig/commit/f3c0555975053a6d3ffd9bc239b732658aebe5d6)

Repository: [gitcafe/zig](https://git.cafe/gitcafe/zig)

Visibility: public

Requested revision: f3c0555975053a6d3ffd9bc239b732658aebe5d6

Requested commit: f3c0555975053a6d3ffd9bc239b732658aebe5d6

Commit: f3c0555975053a6d3ffd9bc239b732658aebe5d6

Tree: 4b36410576c6386ce515be41c1b9a388e7780c4d

Author: mlugg

Committer: mlugg

## Message

```
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.

```

## Parents

- [a92427bf275bc85d4a0c5f086bbb8156f00f2b6c](https://git.cafe/gitcafe/zig/commit/a92427bf275bc85d4a0c5f086bbb8156f00f2b6c?format=markdown)

[Source at this commit](https://git.cafe/gitcafe/zig/tree/f3c0555975053a6d3ffd9bc239b732658aebe5d6?format=markdown)
