Hi, everyone. I've written a new tool called shadowman [1] that aims to partially replace the current *-config tools shipped with ccache, distcc, icecc and potentially more.
Why? Because the existing tools are inconsistent, inconvenient and usually incomplete. The README [2] states a number of advantages: | 1. one usage syntax that works for all tools, | | 2. ability to update/clean masquerades for multiple tools in one call, | | 3. consistent (and *good*) implementation -- now all tools get the same | executable list, | | 4. reduced code duplication, | | 5. modular layout that allows adding extra tools/compiler wildcards | by third-party packages. This thread includes patches that: a. add the package for shadowman (skipping some bundled modules for external inclusion) -- for testing it's just a live ebuild with full keyword set; I will obviously change that before the final inclusion; b. adds shadowman support to ccache, distcc & icecream packages (preserving the old utilities for compatibility), c. adds shadowman update call to toolchain.eclass & clang ebuilds so that the masquerades get updated automatically on gcc/clang upgrade. Please review. Alternatively available as PR on GitHub [3]. [1]:https://github.com/mgorny/shadowman [2]:https://github.com/mgorny/shadowman/blob/master/README [3]:https://github.com/gentoo/gentoo/pull/5386