<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/7caeafd874efdc8030ad48de7c5c3614ca6ffc82">https://github.com/macports/macports-ports/commit/7caeafd874efdc8030ad48de7c5c3614ca6ffc82</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 7caeafd874efdc8030ad48de7c5c3614ca6ffc82
</span>Author: Ruben Di Battista <rubendibattista@gmail.com>
AuthorDate: Sun Jan 24 22:13:48 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    cmake: Refactor python variants to be more easily addable
</span>---
 devel/cmake/Portfile | 79 ++++++++++++++++++++++++++--------------------------
 1 file changed, 39 insertions(+), 40 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/cmake/Portfile b/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index e2829ac25a3..e0a36b0ac76 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/cmake/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -237,6 +237,45 @@ if {${subport} eq ${name}} {
</span>         configure.args-append --no-qt-gui
     }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Supported pythons
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_versions {27 35 36 37 38 39}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_isset false
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pyver ${python_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # Conflicting python versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set other_python_versions {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach other_pyver ${python_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {${other_pyver} ne ${pyver}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {${other_pyver} ni ${other_python_versions}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lappend other_python_versions python${other_pyver}
</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;'>+        if {[variant_isset python${pyver}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set python_isset true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set PYTHON_VERSION_WITH_DOT ${python_branch}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set PYTHON_VERSION_NO_DOT ${pyver}
</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;'>+        # Get python branch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set python_branch  "[string range ${pyver} 0 end-1].[string index ${pyver} end]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant python${pyver} conflicts {*}${other_python_versions} requires docs description "Build documentation using ${python_branch} sphinx" {}
</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 {[variant_isset docs]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {!${python_isset}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set python_isset true
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            default_variants +python39
</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 {!${python_isset}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_error "\n\nYou must select either the +python35, +python36, +python37, or +python38 variant when using variant +docs.\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;'>+
</span>     variant docs description {Build documentation: HTML and manpages} {
 
         configure.args-append \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -258,46 +297,6 @@ if {${subport} eq ${name}} {
</span>             port:py${PYTHON_VERSION_NO_DOT}-sphinxcontrib-websupport
     }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python35 conflicts python36 python37 python38 requires docs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        description {Build documentation using Sphinx from Python 3.5} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python36 conflicts python35 python37 python38 requires docs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        description {Build documentation using Sphinx from Python 3.6} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python37 conflicts python35 python36 python38 requires docs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        description {Build documentation using Sphinx from Python 3.7} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant python38 conflicts python35 python36 python37 requires docs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        description {Build documentation using Sphinx from Python 3.8} {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[variant_isset docs]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {![variant_isset python35] &&
</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;'>-            ![variant_isset python38]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            default_variants +python37
</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 {![variant_isset python35] &&
</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;'>-            ![variant_isset python38]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ui_error "\n\nYou must select either the +python35, +python36, +python37, or +python38 variant when using variant +docs.\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:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset python35]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set PYTHON_VERSION_WITH_DOT "3.5"
</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 PYTHON_VERSION_WITH_DOT "3.6"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } elseif {[variant_isset python37]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set PYTHON_VERSION_WITH_DOT "3.7"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        } else {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set PYTHON_VERSION_WITH_DOT "3.8"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        set PYTHON_VERSION_NO_DOT [join [split ${PYTHON_VERSION_WITH_DOT} "."] ""]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>         post-patch {
             reinplace "s|__PYTHON_VERSION_WITH_DOT__|${PYTHON_VERSION_WITH_DOT}|g" ${worksrcpath}/macports.cmake
         }
</pre><pre style='margin:0'>

</pre>