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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/bc823dc429bf6c3fda983b0d7b78aac4225a0da2">https://github.com/macports/macports-ports/commit/bc823dc429bf6c3fda983b0d7b78aac4225a0da2</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 bc823dc429b macports-libcxx: new port
</span>bc823dc429b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit bc823dc429bf6c3fda983b0d7b78aac4225a0da2
</span>Author: Ken Cunningham <kencu@macports.org>
AuthorDate: Sun Mar 14 13:42:45 2021 -0700

<span style='display:block; white-space:pre;color:#404040;'>    macports-libcxx: new port
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    installs libc++ and matching headers
</span><span style='display:block; white-space:pre;color:#404040;'>    from the llvm tree, for use on older systems
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    install name, linkages, and paths set up as
</span><span style='display:block; white-space:pre;color:#404040;'>    standard for macports
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    availability testing disabled in headers as
</span><span style='display:block; white-space:pre;color:#404040;'>    these are to be used against a new libc++.dylib
</span><span style='display:block; white-space:pre;color:#404040;'>    with all features available
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    static and experimental libs also included
</span>---
 lang/macports-libcxx/Portfile                      | 70 ++++++++++++++++++++++
 .../files/patch-disable-availabilty.diff           | 12 ++++
 2 files changed, 82 insertions(+)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/macports-libcxx/Portfile b/lang/macports-libcxx/Portfile
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..f9567a902d9
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/macports-libcxx/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,70 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortSystem          1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                macports-libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+categories          lang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+platforms           darwin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+maintainers         {kencu @kencu} openmaintainer
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+license             NCSA
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://libcxx.llvm.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         provides a newer libc++ from llvm for older systems
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    This port installs a recent libc++ from llvm \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    to use on older systems instead of the system libc++.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# for now, we will leverage the already-built libc++ in the appropriate clang port
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# later, we can build this independently if we choose to do so, much like libtapi
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# the clang-11 version in use when this port is updated will be used
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             11.1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set clangversion    11
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build       port:clang-${clangversion}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+fetch {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksum {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/include/libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/c++/v1 ${destroot}${prefix}/include/libcxx/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # disable Apple libc++ availability tests, as we're using a new libc++ with these headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W ${destroot}${prefix}/include/libcxx/v1 "patch -p0 < ${filespath}/patch-disable-availabilty.diff"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -d ${destroot}${prefix}/lib/libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/libc++.1.0.dylib ${destroot}${prefix}/lib/libcxx/libc++.1.0.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "install_name_tool -id ${prefix}/lib/libcxx/libc++.1.0.dylib libc++.1.0.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "install_name_tool -delete_rpath @loader_path/../lib libc++.1.0.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "install_name_tool -change @rpath/libc++abi.1.dylib ${prefix}/lib/libcxx/libc++abi.1.dylib libc++.1.0.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "ln -s libc++.1.0.dylib libc++.1.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "ln -s libc++.1.dylib libc++.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/libc++abi.1.0.dylib ${destroot}${prefix}/lib/libcxx/libc++abi.1.0.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "install_name_tool -id ${prefix}/lib/libcxx/libc++abi.1.0.dylib libc++abi.1.0.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "install_name_tool -delete_rpath @loader_path/../lib libc++abi.1.0.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "ln -s libc++abi.1.0.dylib libc++abi.1.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    system -W  ${destroot}${prefix}/lib/libcxx/  "ln -s libc++abi.1.dylib libc++abi.dylib"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/libc++.a ${destroot}${prefix}/lib/libcxx/libc++.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/libc++abi.a ${destroot}${prefix}/lib/libcxx/libc++abi.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    copy  ${prefix}/libexec/llvm-${clangversion}/lib/libc++experimental.a ${destroot}${prefix}/lib/libcxx/libc++experimental.a
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+notes "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+To enable a newer libc++ in your projects or Portfiles, use a recent compiler and add\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+something like the following:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cxxflags-append -nostdinc++ -I${prefix}/include/libcxx/v1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.ldflags-append  -L${prefix}/lib/libcxx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+A suitable Portfile block you might use is here:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+<https://github.com/macports/macports-ports/pull/10238#issuecomment-799000887>.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+"
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/macports-libcxx/files/patch-disable-availabilty.diff b/lang/macports-libcxx/files/patch-disable-availabilty.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..a9b256d10c8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/macports-libcxx/files/patch-disable-availabilty.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- __config.old   2021-03-14 23:24:47.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ __config       2021-03-14 23:27:23.000000000 -0700
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -20,6 +20,9 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #pragma GCC system_header
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++// we are not going to use Apple Availability testing in these headers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#define _LIBCPP_DISABLE_AVAILABILITY
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __cplusplus
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef __GNUC__
</span></pre><pre style='margin:0'>

</pre>