<pre style='margin:0'>
Marcus Calhoun-Lopez (MarcusCalhoun-Lopez) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/68a34f577814e3e5b3f444530262b109093da515">https://github.com/macports/macports-ports/commit/68a34f577814e3e5b3f444530262b109093da515</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 68a34f577814e3e5b3f444530262b109093da515
</span>Author: Marcus Calhoun-Lopez <mcalhoun@macports.org>
AuthorDate: Fri Apr 27 11:47:22 2018 -0700

<span style='display:block; white-space:pre;color:#404040;'>    cargo PG: respect build_arch; allow universal build
</span>---
 _resources/port1.0/group/cargo-1.0.tcl | 56 ++++++++++++++++++++++++++++++++++
 devel/mesalink/Portfile                |  2 ++
 textproc/ripgrep/Portfile              | 31 +++++++++++--------
 3 files changed, 77 insertions(+), 12 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/cargo-1.0.tcl b/_resources/port1.0/group/cargo-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index c199857..98f91a8 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/cargo-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/cargo-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,6 +67,7 @@ options cargo.home cargo.crates cargo.crates_github
</span> default cargo.home      {${workpath}/.home/.cargo}
 default cargo.crates    {}
 default cargo.crates_github {}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default universal_variant   yes
</span> 
 option_proc cargo.crates handle_cargo_crates
 proc handle_cargo_crates {option action {value ""}} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -107,6 +108,21 @@ proc handle_cargo_crates_github {option action {value ""}} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# MacPorts use the name i386 for 32-bit Intel architecture
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Cargo and Rust use the name i686
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc cargo.translate_arch_name {arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${arch} eq "i386"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return "i686"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return ${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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc cargo.rust_platform {arch} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global os.platform
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [cargo.translate_arch_name ${arch}]-apple-${os.platform}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> proc cargo._extract_crate {cratefile} {
     global cargo.home distpath
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -230,6 +246,7 @@ foreach stage {build destroot} {
</span>     #${stage}.env-append RUST_BACKTRACE=1
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# the existence of universal variant is not known until later in the install process
</span> # do not force all Portfiles to switch from ${stage}.env to ${stage}.env-append
 proc cargo.environments {} {
     global configure.cc configure.cxx subport build_arch universal_archs merger_configure_env merger_build_env merger_destroot_env
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -242,9 +259,48 @@ proc cargo.environments {} {
</span>         #${stage}.env-delete RUST_BACKTRACE=1
         #${stage}.env-append RUST_BACKTRACE=1
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # CARGO_BUILD_TARGET does not work correctly
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # see the patchfile path-dyld.diff in cargo Portfile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${subport} ne "cargo-stage1"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![variant_exists universal] || ![variant_isset universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach stage {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${stage}.env-delete \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    CARGO_BUILD_TARGET=[cargo.rust_platform ${build_arch}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${stage}.env-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    CARGO_BUILD_TARGET=[cargo.rust_platform ${build_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;'>+            foreach stage {configure build destroot} {
</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_${stage}_env(${arch}) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        CARGO_BUILD_TARGET=[cargo.rust_platform ${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;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
 port::register_callback cargo.environments
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# override universal_setup found in portutil.tcl so it uses muniversal PortGroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://trac.macports.org/ticket/51643 for a similar case
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc universal_setup {args} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_exists universal]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "universal variant already exists, so not adding the default one"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[exists universal_variant] && ![option universal_variant]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "universal_variant is false, so not adding the default universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[exists use_xmkmf] && [option use_xmkmf]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "using xmkmf, so not adding the default universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {![exists os.universal_supported] || ![option os.universal_supported]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "OS doesn't support universal builds, so not adding the default universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } elseif {[llength [option supported_archs]] == 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "only one arch supported, so not adding the default universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "adding universal variant via PortGroup muniversal"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        uplevel "PortGroup muniversal 1.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> use_configure       no
 
 build.cmd           cargo build
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/mesalink/Portfile b/devel/mesalink/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 2f83eaf..b752cb7 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/mesalink/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/mesalink/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -78,6 +78,8 @@ cargo.crates_github \
</span> use_autoreconf yes
 use_configure yes
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append --enable-rusthost=\$CARGO_BUILD_TARGET
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> build.cmd           make
 build.target        all
 build.pre_args
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/textproc/ripgrep/Portfile b/textproc/ripgrep/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index c62e042..7dbba25 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/textproc/ripgrep/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/textproc/ripgrep/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -67,16 +67,23 @@ depends_build-append \
</span>                     port:asciidoc \
                     port:docbook-xsl
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 755 ${worksrcpath}/target/release/rg ${destroot}${prefix}/bin/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ln -s rg ${destroot}${prefix}/bin/ripgrep
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set outpath ${worksrcpath}/target/release/build/ripgrep-65e5a64db1247a47/out/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${outpath}/rg.1 ${destroot}${prefix}/share/man/man1/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -d -m 755 ${destroot}${prefix}/share/bash-completion/completions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${outpath}/rg.bash ${destroot}${prefix}/share/bash-completion/completions/rg
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -d -m 755 ${destroot}${prefix}/share/fish/completions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${outpath}/rg.fish ${destroot}${prefix}/share/fish/completions/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -d -m 755 ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    xinstall -m 644 ${worksrcpath}/complete/_rg ${destroot}${prefix}/share/zsh/site-functions/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# muniversal build requires Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# OUTDIR contains a checksum, so it is not know until late in the build process and may
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#     change with a change in the cargo PortGroup
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+destroot.args-append -f Makefile-Install
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set makefile [open ${worksrcpath}/Makefile-Install "w"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # from ci/utils.sh
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "OUTDIR=\$(shell find . -name ripgrep-stamp -print0 | xargs -0 ls -t | head -n1 | xargs dirname)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "install:"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -m 0755 target/\$(CARGO_BUILD_TARGET)/release/rg \$(DESTDIR)${prefix}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tln -s rg \$(DESTDIR)${prefix}/bin/ripgrep"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -m 0644 \$(OUTDIR)/rg.1 \$(DESTDIR)${prefix}/share/man/man1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -d -m 0755 \$(DESTDIR)${prefix}/share/bash-completion/completions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -m 0644 \$(OUTDIR)/rg.bash \$(DESTDIR)${prefix}/share/bash-completion/completions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -d -m 0755 \$(DESTDIR)${prefix}/share/fish/completions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -m 0644 \$(OUTDIR)/rg.fish \$(DESTDIR)${prefix}/share/fish/completions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -d -m 0755 \$(DESTDIR)${prefix}/share/zsh/site-functions"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    puts ${makefile} "\tinstall -m 0644 complete/_rg \$(DESTDIR)${prefix}/share/zsh/site-functions/"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    close ${makefile}
</span> }
</pre><pre style='margin:0'>

</pre>