Opened 6 years ago
Closed 5 years ago
#57335 closed enhancement (worksforme)
port:cmake : why the libcxx depspec on systems that have the system libc++?
Reported by: | RJVB (René Bertin) | Owned by: | |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | |
Keywords: | Cc: | michaelld (Michael Dickens), ryandesign (Ryan Carsten Schmidt) | |
Port: | cmake |
Description
Port:cmake has
if {!((${os.platform} eq "darwin" && ${os.major} < 10) || ${build_arch} eq "ppc" || ${build_arch} eq "ppc64")} { **depends_lib-append port:libcxx** configure.cxx_stdlib libc++ }
which seems strange. The port doesn't install anything in its default form, and AFAIK isn't designed to *replace* the system libc++ on OS versions that provide it.
It's a minor thing, but it can cause confusion when trying to understand install logs from users who encounter a problem. Like it did for me just now when I saw libcxx pop up in a clean install log under 10.14...
Isn't the cxx11 PG supposed to handle the libc++ dependency when needed?
Change History (3)
comment:1 Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)
comment:2 Changed 6 years ago by RJVB (René Bertin)
So assuming libcxx should indeed NOT be installed on 10.5 and earlier (why?), the expression would be easier (to understand) as
if {(${os.platform} eq "darwin" && ${os.major} == 10) && ${build_arch} ne "ppc" && ${build_arch} ne "ppc64"} {
but in either case a failure should be raised when trying to build on an earlier OS (or a replaced_by that points to the latest version not requiring C++11)?!
Why would the cxx11 PG not add a libcxx depspec if one is required? Seems like the obvious convenience solution to make sure all ports requiring C++11 spin the same solution...
comment:3 Changed 5 years ago by kencu (Ken)
Resolution: | → worksforme |
---|---|
Status: | new → closed |
I think we can accept that the current approach is working as we intend it to work, and we'll accept it's slight vagarities as the "cost of doing business".
Replying to RJVB:
It does on 10.6 and earlier.
It doesn't have any code to do that.