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 in reply to:  description Changed 6 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to RJVB:

The port doesn't install anything in its default form,

It does on 10.6 and earlier.

Isn't the cxx11 PG supposed to handle the libc++ dependency when needed?

It doesn't have any code to do that.

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

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

Note: See TracTickets for help on using tickets.