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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/17af139763ad5d8b9966a5536ac074756e4d0625">https://github.com/macports/macports-ports/commit/17af139763ad5d8b9966a5536ac074756e4d0625</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 17af139763a muniversal pg: don't create variant with < 2 archs
</span>17af139763a is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 17af139763ad5d8b9966a5536ac074756e4d0625
</span>Author: Joshua Root <jmr@macports.org>
AuthorDate: Fri Jan 29 05:23:53 2021 +1100

<span style='display:block; white-space:pre;color:#404040;'>    muniversal pg: don't create variant with < 2 archs
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    First fully evaluate universal_archs_supported, and only then create
</span><span style='display:block; white-space:pre;color:#404040;'>    the universal variant if two or more archs are supported.
</span>---
 _resources/port1.0/group/muniversal-1.0.tcl | 60 ++++++++++++++++++-----------
 1 file changed, 37 insertions(+), 23 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/muniversal-1.0.tcl b/_resources/port1.0/group/muniversal-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index b31b8050b17..bd0b50f3649 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/muniversal-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/muniversal-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -27,7 +27,7 @@
</span> #              merger_no_3_archs: if yes, merger will not work correctly if there are three supported architectures
 
 options universal_archs_supported merger_must_run_binaries merger_no_3_archs merger_arch_flag merger_arch_compiler
<span style='display:block; white-space:pre;background:#ffe0e0;'>-default universal_archs_supported {${universal_archs}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default universal_archs_supported {${configure.universal_archs}}
</span> default merger_must_run_binaries no
 default merger_no_3_archs no
 default merger_arch_flag yes
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -98,22 +98,16 @@ proc merger_target_provides {ditem args} {
</span> 
 merger_target_provides ${org.macports.destroot} destroot
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant universal {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global universal_archs_to_use
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach arch ${universal_archs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach lang {c cxx objc objcxx cpp ld} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.universal_${lang}flags-delete -arch ${arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# add the universal variant if appropriate
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# (replaces the proc of the same name in portutil.tcl)
</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 {![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 universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return
</span>     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # Disabling dependency tracking is only required when building for
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    # multiple architectures simultaneously.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.universal_args-delete --disable-dependency-tracking
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach lang {c cxx objc objcxx cpp ld} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.${lang}flags-append   {*}[option configure.universal_${lang}flags]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global merger_must_run_binaries merger_no_3_archs universal_archs_to_use \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        universal_archs_supported configure.universal_archs os.arch os.major
</span> 
     # user has specified that build platform must be able to run binaries for supported architectures
     if {${merger_must_run_binaries} eq "yes"} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -139,14 +133,8 @@ variant universal {
</span> 
     # set universal_archs_to_use as the intersection of universal_archs and universal_archs_supported
     set universal_archs_to_use {}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach arch ${universal_archs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set arch_ok no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach archt ${universal_archs_supported} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if {${arch} eq ${archt}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set arch_ok yes
</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;'>-        if {${arch_ok} eq "yes"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${arch} in ${universal_archs_supported}} {
</span>             lappend universal_archs_to_use ${arch}
         }
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -197,6 +185,30 @@ variant universal {
</span>         }
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # ensure correct archs are recorded in the registry, archive name, etc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.universal_archs {*}${universal_archs_to_use}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength ${configure.universal_archs}] < 2} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_debug "muniversal: < 2 archs supported, not adding universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ui_debug "muniversal: adding universal variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+variant universal {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach arch ${configure.universal_archs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach lang {c cxx objc objcxx cpp ld} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.universal_${lang}flags-delete -arch ${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;'>+    # Disabling dependency tracking is only required when building for
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # multiple architectures simultaneously.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    configure.universal_args-delete --disable-dependency-tracking
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach lang {c cxx objc objcxx cpp ld} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.${lang}flags-append   {*}[option configure.universal_${lang}flags]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span>     # if Portfile has configure {...}, save the procedure
     if {[info procs userproc-org.macports.configure-configure-0] ne ""} {
         rename userproc-org.macports.configure-configure-0 userproc-org.macports.configure-configure-1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -902,6 +914,8 @@ variant universal {
</span>         }
     }
 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 # [muniversal_file_or_symlink_exists ${f}] tells you if ${f} exists. And unlike
 # [file exists ${f}], if used on a symlink, [muniversal_file_or_symlink_exists ${f}]
</pre><pre style='margin:0'>

</pre>