Re: [113226] trunk/dports/python/py-graph-tool/Portfile

2013-11-12 Thread Joshua Root
On 2013-11-13 14:27 , Mark Moll wrote:
> 
> On Nov 12, 2013, at 5:28 PM, Lawrence Velázquez  wrote:
> 
>> On Nov 12, 2013, at 4:43 PM, mm...@macports.org wrote:
>>
>>> Revision: 113226
>>> https://trac.macports.org/changeset/113226
>>> Author:   mm...@macports.org
>>> Date: 2013-11-12 13:43:58 -0800 (Tue, 12 Nov 2013)
>>> Log Message:
>>> ---
>>> py-graph-tool: apparently  is not part of libstdc++ for clang, so 
>>> force libc++
>>>
>>> Modified Paths:
>>> --
>>>   trunk/dports/python/py-graph-tool/Portfile
>>>
>>> Modified: trunk/dports/python/py-graph-tool/Portfile
>>> ===
>>> --- trunk/dports/python/py-graph-tool/Portfile  2013-11-12 21:01:11 UTC 
>>> (rev 113225)
>>> +++ trunk/dports/python/py-graph-tool/Portfile  2013-11-12 21:43:58 UTC 
>>> (rev 113226)
>>> @@ -68,6 +68,9 @@
>>>configure.ldflags-append -L${prefix}/lib
>>>configure.args-append --with-boost=${prefix} 
>>> --exec-prefix=${python.prefix}
>>>configure.cxxflags-append -std=c++11
>>> +if {[string match *clang* ${configure.compiler}]} {
>>> +configure.cxxflags-append -stdlib=libc++
>>> +}
>>># Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost 
>>> doesn't
>>># include some of the tr1 headers in libstdc++ and defines its own tr1
>>># classes. This causes conflicts with sparsehash which insists on using
>>
>> What happens when this is built on a 10.6 system, which doesn't have libc++?
> 
> Right now, it doesn’t seem to build. This particular port depends on other 
> ports that use some advanced C++ (boost and cgal) and you can’t just enable 
> C++11 for one port and not its dependencies, as I found out. I suspect I 
> can’t remove the “-std=c++11” flag and use gcc48 for example, since this 
> would use libstdc++  and boost would be using libc++.  The RTTI used by 
> Boost.Python, for example, would cause problems. I can’t think of a good 
> solution for this. For now, the port might be Mavericks only.

Yeah, I believe the eventual goal is to switch everything to libc++ on
10.6+ for this reason. The only way you can get away with using a
different C++ runtime is if you don't link to and are not linked to by
anything else written in C++.

There is a libcxx port for the benefit of 10.6 BTW.

- Josh
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [113226] trunk/dports/python/py-graph-tool/Portfile

2013-11-12 Thread mmoll

On Nov 12, 2013, at 9:27 PM, Mark Moll  wrote:

> 
> On Nov 12, 2013, at 5:28 PM, Lawrence Velázquez  wrote:
> 
>> On Nov 12, 2013, at 4:43 PM, mm...@macports.org wrote:
>> 
>>> Revision: 113226
>>>https://trac.macports.org/changeset/113226
>>> Author:   mm...@macports.org
>>> Date: 2013-11-12 13:43:58 -0800 (Tue, 12 Nov 2013)
>>> Log Message:
>>> ---
>>> py-graph-tool: apparently  is not part of libstdc++ for clang, so 
>>> force libc++
>>> 
>>> Modified Paths:
>>> --
>>>  trunk/dports/python/py-graph-tool/Portfile
>>> 
>>> Modified: trunk/dports/python/py-graph-tool/Portfile
>>> ===
>>> --- trunk/dports/python/py-graph-tool/Portfile  2013-11-12 21:01:11 UTC 
>>> (rev 113225)
>>> +++ trunk/dports/python/py-graph-tool/Portfile  2013-11-12 21:43:58 UTC 
>>> (rev 113226)
>>> @@ -68,6 +68,9 @@
>>>   configure.ldflags-append -L${prefix}/lib
>>>   configure.args-append --with-boost=${prefix} 
>>> --exec-prefix=${python.prefix}
>>>   configure.cxxflags-append -std=c++11
>>> +if {[string match *clang* ${configure.compiler}]} {
>>> +configure.cxxflags-append -stdlib=libc++
>>> +}
>>>   # Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost doesn't
>>>   # include some of the tr1 headers in libstdc++ and defines its own tr1
>>>   # classes. This causes conflicts with sparsehash which insists on using
>> 
>> What happens when this is built on a 10.6 system, which doesn't have libc++?
> 
> Right now, it doesn’t seem to build. This particular port depends on other 
> ports that use some advanced C++ (boost and cgal) and you can’t just enable 
> C++11 for one port and not its dependencies, as I found out. I suspect I 
> can’t remove the “-std=c++11” flag and use gcc48 for example, since this 
> would use libstdc++  and boost would be using libc++.  The RTTI used by 
> Boost.Python, for example, would cause problems. I can’t think of a good 
> solution for this. For now, the port might be Mavericks only.

Actually, one solution would be to keep the version clamped at the latest 
official release  (2.2.26) for 10.8 and older, since the C++11-compatible code 
can’t be made to work easily (at least,  I don’t see how). On 10.9, none of the 
official releases work and only the C++11 branch of the git repo of graph-tool 
works. Assuming this will be merged in default, all future versions would only 
be available on 10.9.

-- 
Mark Moll



___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [113226] trunk/dports/python/py-graph-tool/Portfile

2013-11-12 Thread Mark Moll

On Nov 12, 2013, at 5:28 PM, Lawrence Velázquez  wrote:

> On Nov 12, 2013, at 4:43 PM, mm...@macports.org wrote:
> 
>> Revision: 113226
>> https://trac.macports.org/changeset/113226
>> Author:   mm...@macports.org
>> Date: 2013-11-12 13:43:58 -0800 (Tue, 12 Nov 2013)
>> Log Message:
>> ---
>> py-graph-tool: apparently  is not part of libstdc++ for clang, so 
>> force libc++
>> 
>> Modified Paths:
>> --
>>   trunk/dports/python/py-graph-tool/Portfile
>> 
>> Modified: trunk/dports/python/py-graph-tool/Portfile
>> ===
>> --- trunk/dports/python/py-graph-tool/Portfile   2013-11-12 21:01:11 UTC 
>> (rev 113225)
>> +++ trunk/dports/python/py-graph-tool/Portfile   2013-11-12 21:43:58 UTC 
>> (rev 113226)
>> @@ -68,6 +68,9 @@
>>configure.ldflags-append -L${prefix}/lib
>>configure.args-append --with-boost=${prefix} 
>> --exec-prefix=${python.prefix}
>>configure.cxxflags-append -std=c++11
>> +if {[string match *clang* ${configure.compiler}]} {
>> +configure.cxxflags-append -stdlib=libc++
>> +}
>># Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost doesn't
>># include some of the tr1 headers in libstdc++ and defines its own tr1
>># classes. This causes conflicts with sparsehash which insists on using
> 
> What happens when this is built on a 10.6 system, which doesn't have libc++?

Right now, it doesn’t seem to build. This particular port depends on other 
ports that use some advanced C++ (boost and cgal) and you can’t just enable 
C++11 for one port and not its dependencies, as I found out. I suspect I can’t 
remove the “-std=c++11” flag and use gcc48 for example, since this would use 
libstdc++  and boost would be using libc++.  The RTTI used by Boost.Python, for 
example, would cause problems. I can’t think of a good solution for this. For 
now, the port might be Mavericks only.

-- 
Mark Moll



___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev


Re: [113226] trunk/dports/python/py-graph-tool/Portfile

2013-11-12 Thread Lawrence Velázquez
On Nov 12, 2013, at 4:43 PM, mm...@macports.org wrote:

> Revision: 113226
>  https://trac.macports.org/changeset/113226
> Author:   mm...@macports.org
> Date: 2013-11-12 13:43:58 -0800 (Tue, 12 Nov 2013)
> Log Message:
> ---
> py-graph-tool: apparently  is not part of libstdc++ for clang, so 
> force libc++
> 
> Modified Paths:
> --
>trunk/dports/python/py-graph-tool/Portfile
> 
> Modified: trunk/dports/python/py-graph-tool/Portfile
> ===
> --- trunk/dports/python/py-graph-tool/Portfile2013-11-12 21:01:11 UTC 
> (rev 113225)
> +++ trunk/dports/python/py-graph-tool/Portfile2013-11-12 21:43:58 UTC 
> (rev 113226)
> @@ -68,6 +68,9 @@
> configure.ldflags-append -L${prefix}/lib
> configure.args-append --with-boost=${prefix} 
> --exec-prefix=${python.prefix}
> configure.cxxflags-append -std=c++11
> +if {[string match *clang* ${configure.compiler}]} {
> +configure.cxxflags-append -stdlib=libc++
> +}
> # Clang uses the old libstc++ from gcc 4.2 before OS X 10.9. Boost doesn't
> # include some of the tr1 headers in libstdc++ and defines its own tr1
> # classes. This causes conflicts with sparsehash which insists on using

What happens when this is built on a 10.6 system, which doesn't have libc++?

vq
___
macports-dev mailing list
macports-dev@lists.macosforge.org
https://lists.macosforge.org/mailman/listinfo/macports-dev