[ccache] Support for color diagnostics
l.lunak at centrum.cz
Tue Feb 11 05:45:35 MST 2014
On Friday 29 of November 2013, Lubos Lunak wrote:
> the attached patch adds ccache support for compiler color diagnostics
> (also reported by somebody as #10075).
> Clang automatically uses colors for output automatically if used in
> terminal. Ccache's redirecting to a file disables this. GCC 4.8 has got a
> similar support, except that it apparently requires also $GCC_COLORS or an
> explicit option.
> The patch detects if the compiler would use colors if used without ccache
> and explicitly forces an option to achieve this. Note that I do not have
> GCC 4.8 here, so I tested with Clang's alias and the GCC_COLORS support is
> done based on documentation.
> - GCC developers decided to roll their own name for the option when
> introducing it. Clang has an alias for the GCC way, but versions predating
> that obviously can't support it, so it's necessary to detect the compiler.
> As ccache doesn't do that (and I don't find it worth much effort, as it
> can't be 100% reliable anyway), the code merely guesses from the binary
> name. If the compiler used will be e.g. the 'cc' symlink, there'll be no
> colors. No big deal.
> - Since the stderr is different, obviously compiling with and without
> colors has different results as well. That means that such a compile
> is "duplicated". It's hopefully not such a common case, although it's
> perfectly possible. I don't know if it's worth the effort to try to be
> smart here. A possibly simple improvement could be to search the cache with
> and without the option set and if stderr is empty, reuse the result
> regardless of the option. I'm not quite sure where exactly this should
> happen in the code.
> I expect it'd make sense to add $CCACHE_NOCOLORS to disable this support?
> I can also create manpage section for this color support, but I first
> wanted to check here with the code.
More information about the ccache