# rework and improve some of the zig build steps · gitcafe/zig

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

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

Visibility: public

Requested revision: a690a5085ddbfb540cf07db146645a9f8a4e92f6

Requested commit: a690a5085ddbfb540cf07db146645a9f8a4e92f6

Commit: a690a5085ddbfb540cf07db146645a9f8a4e92f6

Tree: 267f1c2908cd0125178d85adc41c7c81109d608e

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
rework and improve some of the zig build steps

 * `RunStep` moved to lib/std/build/run.zig and gains ability to compare
   output and exit code against expected values. Multiple redundant
   locations in the test harness code are replaced to use `RunStep`.
 * `WriteFileStep` moved to lib/std/build/write_file.zig and gains
   ability to write more than one file into the cache directory, for
   when the files need to be relative to each other. This makes
   usage of `WriteFileStep` no longer problematic when parallelizing
   zig build.
 * Added `CheckFileStep`, which can be used to validate that the output
   of another step produced a valid file. Multiple redundant locations
   in the test harness code are replaced to use `CheckFileStep`.
 * Added `TranslateCStep`. This exposes `zig translate-c` to the build
   system, which is likely to be rarely useful by most Zig users;
   however Zig's own test suite uses it both for translate-c tests and
   for run-translated-c tests.
 * Refactored ad-hoc code to handle source files coming from multiple
   kinds of sources, into `std.build.FileSource`.
 * Added `std.build.Builder.addExecutableFromWriteFileStep`.
 * Added `std.build.Builder.addExecutableSource`.
 * Added `std.build.Builder.addWriteFiles`.
 * Added `std.build.Builder.addTranslateC`.
 * Added `std.build.LibExeObjStep.addCSourceFileSource`.
 * Added `std.build.LibExeObjStep.addAssemblyFileFromWriteFileStep`.
 * Added `std.build.LibExeObjStep.addAssemblyFileSource`.
 * Exposed `std.fs.base64_encoder`.

```

## Parents

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

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