It is likely that at least some vendors would like the ability to rename the clang executable to a proprietary name. That would allow a clear differentiation between the upstream clang and a proprietary downstream version of clang on the same system.
I am not sure if there are vendors that already do this downstream but it seems like a useful capability to allow that to be parameterized in the CMake configuration and an upstream buildbot to be added that builds with a different name. We at IBM certainly desire this capability and are willing to convert one of our upstream buildbots to such a build.
This patch provides a new CMake macro CLANG_EXE_NAME that can be used to specify the name of the clang executable. Then the symlinks to it (i.e. clang-cl and clang++ will use that name and append the appropriate suffix). Furthermore, this patch updates test cases and utilities that use clang to use this name. The name is added to llvm-config so that it can be queried using llvm-config --clang-exe (which will return the full path with the correct name of the clang executable).
This is a work in progress because it is incomplete. Depending on the feedback on this review, the name change can affect the various clang-xx utilities, libclang... libraries, etc.
Please provide feedback if you think this is useful, not useful, a good/bad idea, good/bad technical direction etc.
clang-format: please reformat the code