mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-01-26 14:46:02 +00:00
4732e7cb34
GCC and Clang will colorize compiler output automatically if stdout is a TTY. Unfortunately, when the build backend is invoked via `mach`, stdout is not a TTY. 6e9a4c0b9cd8 (bug 1315785) changed mach so it exports an environment variable indicating whether mach's original stdout is a TTY. This was later used to add color flags to `cargo` invocations. Building on that work, this patch adds color flags to compiler invocations if the compiler supports color and a mach TTY is detected. The result is that compiler output from `mach build` will be colorized automatically if Clang or a modern version of GCC is used. The only issue I see with this is that Clang doesn't "unset" its color sequences when printing a newline. As a result, mach's time line prefixing can sometimes inherit "bold" or other stylings. AFAICT this is only a minor cosmetic concern. GCC does not exhibit this issue. MozReview-Commit-ID: 5Icu6aXGZBL --HG-- extra : rebase_source : 5b2bf5a287fdf8075b3d7dde36b91f3c65b60728