cmake doesn't respect PATH when it resolves CMAKE_CXX_COMPILER for g++11
Please consider that both c++ and g++11 are not in /usr/local/bin, but instead they are in /usr/local/libexec/ccache, which is placed first in PATH.
When cmake is called with -DCMAKE_CXX_COMPILER=g++11 and the CMAKE_PREFIX_PATH="/usr/local" environment variable is set - CMAKE_CXX_COMPILER ends up being /usr/local/bin/g++11 regardless of PATH.
But if in the above invocation g++11 is replaced with c++ - CMAKE_CXX_COMPILER is resolved through PATH as it should be.
The attached program demonstrates this problem.
Execute run.sh from the attached shar archive. It has 2 sections, GOOD and BAD. BAD section has CMAKE_PREFIX_PATH="/usr/local" and it shows that CMAKE_CXX_COMPILER=/usr/local/bin/g++11
If you would replaces g++11 with c++ - this problem would go away.
This problem prevents CCACHE from working for projects that use GCC.
Downstream bug report: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=267971
cmake-3.24.3 OS: FreeBSD 13