<pre style='margin:0'>
Aljaž Srebrnič (g5pw) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e429b4d8a8b2667f23110596fbe7ebee9f28d72e">https://github.com/macports/macports-ports/commit/e429b4d8a8b2667f23110596fbe7ebee9f28d72e</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 e429b4d  rust: allow build if llvm is universal
</span>e429b4d is described below

<span style='display:block; white-space:pre;color:#808000;'>commit e429b4d8a8b2667f23110596fbe7ebee9f28d72e
</span>Author: Marcus Calhoun-Lopez <marcuscalhounlopez@gmail.com>
AuthorDate: Sat Apr 28 09:10:09 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    rust: allow build if llvm is universal
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes https://trac.macports.org/ticket/56351
</span><span style='display:block; white-space:pre;color:#404040;'>    See https://github.com/rust-lang/rust/issues/50220
</span>---
 lang/rust/Portfile | 59 ++++++++++++++++++++++++++++++++++++++++++++++++------
 1 file changed, 53 insertions(+), 6 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/rust/Portfile b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b2ecb77..e4a1ab0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,6 +2,7 @@
</span> 
 PortSystem          1.0
 PortGroup           muniversal 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           active_variants 1.1
</span> 
 name                rust
 version             1.25.0
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -24,11 +25,16 @@ long_description    Rust is a curly-brace, block-structured expression \
</span> 
 homepage            https://www.rust-lang.org/
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set ruststd_version 1.24.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set rustc_version   1.24.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set cargo_version   0.25.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set llvm_version    6.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # can use cmake or cmake-devel; default to cmake.
 depends_build       path:bin/cmake:cmake \
                     bin:python2.7:python27
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib         port:llvm-6.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib         port:llvm-${llvm_version}
</span> 
 master_sites        https://static.rust-lang.org/dist
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -36,10 +42,6 @@ distname            ${name}c-${version}-src
</span> 
 patchfiles          patch-src-librustc-llvm-lib.diff
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set ruststd_version 1.24.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set rustc_version   1.24.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set cargo_version   0.25.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> if {![variant_isset universal]} {
     if {${build_arch} eq "i386"} {
         set architectures i686
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,9 +120,54 @@ configure.args      --enable-vendor \
</span>                     --default-linker=${configure.cc} \
                     --disable-codegen-tests \
                     --disable-docs \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    --llvm-root=${prefix}/libexec/llvm-6.0 \
</span>                     --release-channel=stable
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://trac.macports.org/ticket/56351
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://github.com/rust-lang/rust/issues/50220
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # LLVM is or will need to be universal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set copy_llvm 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![catch {set result [active_variants llvm-${llvm_version} "universal" ""]}] && $result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # LLVM was installed with universal variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set copy_llvm 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set copy_llvm 0
</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;'>+if {!${copy_llvm}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # LLVM is NOT universal, so use installed version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        --llvm-root=${prefix}/libexec/llvm-${llvm_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+} else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # copy LLVM and thin static libraries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see https://trac.macports.org/ticket/56351
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see https://github.com/rust-lang/rust/issues/50220
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set archs ${universal_archs}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach arch ${universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            lappend merger_configure_args(${arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                --llvm-root=${workpath}/llvm-${llvm_version}-${arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set archs ${build_arch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            --llvm-root=${workpath}/llvm-${llvm_version}-${build_arch}
</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;'>+    post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach arch ${archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system -W ${workpath} "cp -R ${prefix}/libexec/llvm-${llvm_version} ${workpath}/llvm-${llvm_version}-${arch}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fs-traverse f ${workpath}/llvm-${llvm_version}-${arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {[file isfile $f] && [file type $f]!="link" && [file extension $f]==".a"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    catch {system "lipo -thin ${arch} ${f} -o ${f}"}
</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;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> if {![variant_isset universal]} {
     if {${build_arch} eq "i386"} {
         set arch_name i686
</pre><pre style='margin:0'>

</pre>