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: |
|
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.