Bug 267971

Summary: devel/cmake-core: cmake doesn't respect PATH when it resolves CMAKE_CXX_COMPILER for g++11
Product: Ports & Packages Reporter: Yuri Victorovich <yuri>
Component: Individual Port(s)Assignee: freebsd-kde (group) <kde>
Status: New ---    
Severity: Affects Only Me Flags: bugzilla: maintainer-feedback? (kde)
Priority: ---    
Version: Latest   
Hardware: Any   
OS: Any   
URL: https://gitlab.kitware.com/cmake/cmake/-/issues/24195
Attachments:
Description Flags
cmake-PATH.shar none

Description Yuri Victorovich freebsd_committer freebsd_triage 2022-11-24 18:24:40 UTC
Created attachment 238311 [details]
cmake-PATH.shar

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.