commit | 9033c957b95bd06736518c9d8f1d53e9c3be4567 | [log] [tgz] |
---|---|---|
author | Hunter Knepshield <hknepshield@google.com> | Wed Feb 17 20:21:42 2021 -0800 |
committer | Hunter Knepshield <hknepshield@google.com> | Wed Feb 17 20:24:50 2021 -0800 |
tree | 764a23cbacd2f9a10fcc79d7e15e85498c0caece | |
parent | e980b25b954389a6e4a2d96aa8c696a47d99c776 [diff] |
Make bpfmt use exit codes even when reading from stdin. Previously, an incantation like `bpfmt -o <$BAD_BP` would print to stderr as expected, but then it would exit with 0. This is different than the behavior of `bpfmt -o $BAD_BP`, which correctly exits with a non-zero status code (in addition to printing the issues to stderr). Test: m bpfmt; out/soong/host/linux-x86/bin/bpfmt -o <$BAD_BP; echo $? Change-Id: I0a970cddf94fbd818525f9167d9113086b023c81
Blueprint is a meta-build system that reads in Blueprints files that describe modules that need to be built, and produces a Ninja manifest describing the commands that need to be run and their dependencies. Where most build systems use built-in rules or a domain-specific language to describe the logic for converting module descriptions to build rules, Blueprint delegates this to per-project build logic written in Go. For large, heterogenous projects this allows the inherent complexity of the build logic to be maintained in a high-level language, while still allowing simple changes to individual modules by modifying easy to understand Blueprints files.