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