[MacPorts] #65404: gate @8.2_2+geant4105: error: "ROOT requires support for C++14 or higher."
noreply at macports.org
Mon Nov 28 11:24:06 UTC 2022
#65404: gate @8.2_2+geant4105: error: "ROOT requires support for C++14 or higher."
Reporter: lv0021 | Owner: mojca
Type: defect | Status: assigned
Priority: Normal | Milestone:
Component: ports | Version: 2.7.2
Resolution: | Keywords:
Port: gate |
Comment (by Stabbass):
Hi I am facing the exact same issue. I am wondering is there is any
solution to resolve this issue or any workaround ?
Replying to [comment:2 ryandesign]:
> Has duplicate #65486.
> The simple solution I was envisioning was
> * using `compiler.cxx_standard 2014` to get MacPorts to pick a
C++14-capable compiler, and
> * using `configure.cxxflags-append -std=c++14` to tell the compiler to
use C++14 mode.
> But I envisioned that before looking at the Portfile, and I now see that
> * uses `compiler.blacklist` and `compiler.whitelist` to, according to a
comment, force the same compiler as root6, yet this code does not match
what is currently in the root6 portfile, and
> * uses a patch and reinplace to replace the `-std=c++11` flag hardcoded
in the CMakeLists.txt with `-std=c++17`.
> Usually the use of `compiler.whitelist` is not desired because it
overrides anything in `compiler.blacklist`, and `compiler.blacklist`
should usually be avoided in favor of `compiler.cxx_standard` if all
you're doing is requesting a compiler supporting a particular C++
> It's unclear to me why the `-std=c++17` flag isn't actually being used
then since the CMakeLists.txt says to use it. In fact it is being used,
but two `-std=c++11` flags are also being used, one before and one after
`-std=c++17`, and the last one wins. I'm not sure where those `-std=c++11`
flags are coming from. Possibly from geant4.10.5.
> The root6 portfile currently contains code that uses C++17 on macOS
10.14 and later and C++14 otherwise. If that distinction is necessary,
then maybe the gate port should do the same, but it's not ideal for the
gate port (and any other ports that use root6) to have to duplicate this
compiler-selection-and-flag-setting code and keep it in sync with the
Ticket URL: <https://trac.macports.org/ticket/65404#comment:3>
Ports system for macOS
More information about the macports-tickets