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

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/4e2bf8b54ba99c48ab56d91e43496b711f96b9bd">https://github.com/macports/macports-ports/commit/4e2bf8b54ba99c48ab56d91e43496b711f96b9bd</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 4e2bf8b  uhd: automate Python variants; add Py38; default to Py37
</span>4e2bf8b is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 4e2bf8b54ba99c48ab56d91e43496b711f96b9bd
</span>Author: Michael Dickens <michaelld@macports.org>
AuthorDate: Wed Dec 11 21:04:15 2019 -0500

<span style='display:block; white-space:pre;color:#404040;'>    uhd: automate Python variants; add Py38; default to Py37
</span>---
 science/uhd/Portfile | 81 ++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 56 insertions(+), 25 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/science/uhd/Portfile b/science/uhd/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 71a843a..9be1477 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/science/uhd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/science/uhd/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,34 +262,65 @@ if {${configure.cxx_stdlib} eq "macports-libstdc++" ||
</span> 
 default_variants +docs +examples +libusb +manual +test +manpages
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# select Python to use; default to 2.7
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# specify the Python dependencies; these are checked for at configure,
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# then used for building, but not at runtime.
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant python27 conflicts python36 python37 description {Build using Python 2.7} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant python36 conflicts python27 python37 description {Build using Python 3.6} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant python37 conflicts python27 python36 description {Build using Python 3.7} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pythons_suffixes {27 35 36 37 38}
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset python27] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ![variant_isset python36] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ![variant_isset python37]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    default_variants +python27
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set pythons_ports {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    lappend pythons_ports python${s}
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {![variant_isset python27] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ![variant_isset python36] &&
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ![variant_isset python37]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    ui_error "\n\nYou must select one of the variants +python27, +python36, or +python37.\n"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return -code error "Invalid variant selection"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set p python${s}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set v [string index ${s} 0].[string index ${s} 1]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set i [lsearch -exact ${pythons_ports} ${p}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set c [lreplace ${pythons_ports} ${i} ${i}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant ${p} description "Build ${name} using Python ${v}" conflicts {*}${c} ""
</span> }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set PythonVersionNoDot ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {[variant_isset python27]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set PythonVersionNoDot "27"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {[variant_isset python36]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set PythonVersionNoDot "36"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set PythonVersionNoDot "37"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# default to Py37 if not selected by the user
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set selected_python_no_dot 37
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset python${s}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set selected_python_no_dot ${s}
</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;'>+default_variants +python${selected_python_no_dot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# make sure the default python variant wasn't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# deselected without selecting another one
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set selected_python_no_dot ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[variant_isset python${s}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set selected_python_no_dot ${s}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set PythonVersionWithDot [join [split ${PythonVersionNoDot} ""] "."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${selected_python_no_dot} eq ""} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_vars ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set final_s [lindex ${pythons_suffixes} end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach s ${pythons_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${s} eq ${final_s}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set py_vars "${py_vars}or "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set py_vars "${py_vars}+python${s}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${s} ne ${final_s}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set py_vars "${py_vars}, "
</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;'>+    ui_error "\n\nYou must select one of the variants ${py_vars}.\n"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return -code error "Invalid variant selection"
</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;'>+set PythonVersionNoDot ${selected_python_no_dot}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set PythonVersionWithDot [join [split ${selected_python_no_dot} ""] "."]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set PythonTopDir "${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set PythonName python${PythonVersionWithDot}
</span> 
 # required Python
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -300,7 +331,7 @@ depends_lib-append \
</span> 
 # specify the Python version to use
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set PythonExe "${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/bin/python${PythonVersionWithDot}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set PythonExe "${PythonTopDir}/bin/${PythonName}"
</span> 
 configure.args-append \
     -DPYTHON_EXECUTABLE=${PythonExe}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -401,9 +432,9 @@ if {${subport} ne "uhd-39lts"} {
</span>         depends_lib-append port:py${PythonVersionNoDot}-numpy
         configure.args-append \
             -DENABLE_PYTHON_API=ON \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DPYTHON_INCLUDE_DIR=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/Headers \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DPYTHON_LIBRARY=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/Python \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            -DUHD_PYTHON_DIR=${frameworks_dir}/Python.framework/Versions/${PythonVersionWithDot}/lib/python${PythonVersionWithDot}/site-packages
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DPYTHON_INCLUDE_DIR=${PythonTopDir}/Headers \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DPYTHON_LIBRARY=${PythonTopDir}/Python \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            -DUHD_PYTHON_DIR=${PythonTopDir}/lib/${PythonName}/site-packages
</span> 
         # 'uhd' requires boost-python to be the correct version, not
         # 'uhd-devel' or 'uhd-39lts'; remove this once the release has
</pre><pre style='margin:0'>

</pre>