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