# eliminate stderr usage in std.Build make\(\) functions · gitcafe/zig

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

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

Visibility: public

Requested revision: dcec4d55e36f48e459f4e8f218b8619d9be925db

Requested commit: dcec4d55e36f48e459f4e8f218b8619d9be925db

Commit: dcec4d55e36f48e459f4e8f218b8619d9be925db

Tree: 0064e09c25715650b4e1ac641d5a33ec91245be1

Author: Andrew Kelley

Committer: Andrew Kelley

## Message

```
eliminate stderr usage in std.Build make() functions

* Eliminate all uses of `std.debug.print` in make() functions, instead
  properly using the step failure reporting mechanism.
* Introduce the concept of skipped build steps. These do not cause the
  build to fail, and they do allow their dependants to run.
* RunStep gains a new flag, `skip_foreign_checks` which causes the
  RunStep to be skipped if stdio mode is `check` and the binary cannot
  be executed due to it being a foreign executable.
  - RunStep is improved to automatically use known interpreters to
    execute binaries if possible (integrating with flags such as
    -fqemu and -fwasmtime). It only does this after attempting a native
    execution and receiving a "exec file format" error.
  - Update RunStep to use an ArrayList for the checks rather than this
    ad-hoc reallocation/copying mechanism.
  - `expectStdOutEqual` now also implicitly adds an exit_code==0 check
    if there is not already an expected termination. This matches
    previously expected behavior from older API and can be overridden by
    directly setting the checks array.
* Add `dest_sub_path` to `InstallArtifactStep` which allows choosing an
  arbitrary subdirectory relative to the prefix, as well as overriding
  the basename.
  - Delete the custom InstallWithRename step that I found deep in the
    test/ directory.
* WriteFileStep will now update its step display name after the first
  file is added.
* Add missing stdout checks to various standalone test case build
  scripts.

```

## Parents

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

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