<pre style='margin:0'>
Ryan Schmidt (ryandesign) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fcaeca417b5d60413f106f01c11dda06749c867b">https://github.com/macports/macports-ports/commit/fcaeca417b5d60413f106f01c11dda06749c867b</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new fcaeca4  cmake: Force libc++ on Snow Leopard and newer
</span>fcaeca4 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit fcaeca417b5d60413f106f01c11dda06749c867b
</span>Author: Ryan Schmidt <ryandesign@macports.org>
AuthorDate: Sun Dec 3 23:30:57 2017 -0600

<span style='display:block; white-space:pre;color:#404040;'>    cmake: Force libc++ on Snow Leopard and newer
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This does not cause problems on libstdc++ systems because cmake doesn't
</span><span style='display:block; white-space:pre;color:#404040;'>    depend on any C++ libraries, nor does it supply any C++ libraries.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    This fixes the build on Mac OS X 10.6-10.8.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    On Lion, force the use of macports-clang-3.4, which contains a fix for
</span><span style='display:block; white-space:pre;color:#404040;'>    a Lion-specific libc++ bug. The fix appears not to be present in
</span><span style='display:block; white-space:pre;color:#404040;'>    macports-clang-3.7 which is the compiler that would otherwise be used.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    On Leopard and earlier, use the cxx11-1.1 portgroup's default behavior
</span><span style='display:block; white-space:pre;color:#404040;'>    of using gcc6 and its libstdc++.
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Closes: https://trac.macports.org/ticket/55382
</span>---
 devel/cmake/Portfile | 69 +++++++++++++---------------------------------------
 1 file changed, 17 insertions(+), 52 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/cmake/Portfile b/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e0ef40e..2f55e4d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,11 +2,14 @@
</span> 
 PortSystem          1.0
 PortGroup           muniversal 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           compiler_blacklist_versions 1.0
</span> 
 # devel requires C++11 as of 2017-08-21
 # https://gitlab.kitware.com/cmake/cmake/commit/c1f3eb9f2d628b2911aa17f65012fab0befc4b87
 # release requires C++11 as of 3.10.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+if {!((${os.platform} eq "darwin" && ${os.major} < 10) || ${build_arch} eq "ppc" || ${build_arch} eq "ppc64")} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib-append port:libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.cxx_stdlib libc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> PortGroup cxx11 1.1
 
 name                cmake
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -108,13 +111,14 @@ configure.env-append \
</span>                     CMAKE_INCLUDE_PATH=${prefix}/include/ncurses \
                     CMAKE_LIBRARY_PATH=${prefix}/lib
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# when using libc++, require Clang 3.4 or newer; Clang 3.3 produces
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# bad stream reading code. See also MP ticket #44129:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# < https://trac.macports.org/ticket/44129 >
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compiler.blacklist-append *gcc* {clang < 500} macports-clang-3.3
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# On Lion, Clang 3.3 produces bad stream reading code when using libc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://trac.macports.org/ticket/44129
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Clang 3.4 works. But Clang 3.7 doesn't work.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} == 11 && ${configure.cxx_stdlib} eq "libc++"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    compiler.whitelist macports-clang-3.4
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# Clang 3.8 and later require cmake; avoid circular dependency.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append macports-clang-3.8 macports-clang-3.9 macports-clang-4.0 macports-clang-5.0
</span> 
 platform darwin {
     configure.env-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -127,9 +131,12 @@ platform darwin {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# CMake 3.2 changed dependency requirements to include jsoncpp.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# jsoncpp 1.0+ requires CMake for building. catch 22. So, have CMake
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# use its internal jsoncpp until a better solution comes about.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# jsoncpp 1.0+ requires CMake for building; circular dependencies are
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not possible in MacPorts. In addition, jsoncpp uses C++, so it would
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# not be possible for CMake, which uses libc++ on 10.6-10.8, to link
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# with a MacPorts copy of jsoncpp, which would usually use libstdc++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# on those systems. Fortunately CMake comes bundled with its own
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# internal copy of jsoncpp, so we use that.
</span> 
 configure.args-append --docdir=share/doc/cmake \
                     --parallel=${build.jobs} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -170,18 +177,6 @@ platform darwin 9 {
</span>     set universal_archs_supported ${supported_archs}
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-platform darwin {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # TODO: Figure out why using libc++ fails on Lion and fix the bootstrap
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #       script to honor CMAKE_OSX_SYSROOT and CMAKE_OSX_DEPLOYMENT_TARGET.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #       Since nothing links against cmake and cmake is just using the STL,
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #       we're safe to force libstdc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    #       https://cmake.org/Bug/view.php?id=15039&nbn=16
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${os.major} < 12} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.cxx_stdlib libstdc++
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> build.post_args VERBOSE=ON
 
 post-patch {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -231,36 +226,6 @@ post-destroot {
</span> 
 variant gui description {Build Qt-based cmake-gui} {
     configure.args-append --qt-gui
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # when building the GUI with Qt, CMake uses C++11. So, make sure
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # the compiler used is c++11 compliant.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {${configure.cxx_stdlib} eq "libstdc++"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # *clang* when using libstdc++ do not seem to support C++11;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # C++11 support seems to need GCC 4.7+ when using libstdc++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # could use C++0x support on GCC4.[56], but just ignore it since
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # there are newer compilers already in place as defaults.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Blacklist GCC compilers not supporting C++11 and all CLANG.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # This is probably not necessary, but it's good practice.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        compiler.blacklist-append *clang* {*gcc-3*} {*gcc-4.[0-6]}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # and whitelist those we do want to use. wish there were a better way.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # these will be used in the order provided.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        compiler.whitelist macports-gcc-4.9 macports-gcc-4.8 macports-gcc-4.7
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # using libc++;
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Blacklist Clang not supporting C++11 in some form and all GCC.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Just use the cxx11 PortGroup for this specific case.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        PortGroup cxx11 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> }
 
 variant qt4 conflicts qt5 requires gui description {Build Qt GUI using Qt4} {
</pre><pre style='margin:0'>

</pre>