<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f5b5e82983979a1ddda240e948e1b095da2e0d67">https://github.com/macports/macports-ports/commit/f5b5e82983979a1ddda240e948e1b095da2e0d67</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 f5b5e829839 grass: general overhaul and new 'grass-gui' subport
</span>f5b5e829839 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit f5b5e82983979a1ddda240e948e1b095da2e0d67
</span>Author: Nicklas Larsson <n_larsson@yahoo.com>
AuthorDate: Wed Oct 18 15:14:36 2023 +0200

<span style='display:block; white-space:pre;color:#404040;'>    grass: general overhaul and new 'grass-gui' subport
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Notable changes:
</span><span style='display:block; white-space:pre;color:#404040;'>    - remove PG wxWidgets, not needed, it is installed with wxPython
</span><span style='display:block; white-space:pre;color:#404040;'>    - remove PG github, official release site osgeo.org
</span><span style='display:block; white-space:pre;color:#404040;'>    - rename +openmpi variant to the more correct +openmp, remove compilers settings (goes with removing PG compilers)
</span><span style='display:block; white-space:pre;color:#404040;'>    - remove PostgreSQL pre-12 variants
</span><span style='display:block; white-space:pre;color:#404040;'>    - update description
</span><span style='display:block; white-space:pre;color:#404040;'>    - organise variants alphabetically and minor formatting changes
</span><span style='display:block; white-space:pre;color:#404040;'>    - replace +gui variant with new subport 'grass-gui'
</span>---
 gis/grass/Portfile | 496 ++++++++++++++++++++++++++++-------------------------
 1 file changed, 267 insertions(+), 229 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/gis/grass/Portfile b/gis/grass/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 1647c47b577..9b5fb459eaa 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/gis/grass/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/gis/grass/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,199 +1,324 @@
</span> # -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
 
 PortSystem          1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           wxWidgets 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           github 1.0
</span> PortGroup           debug 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-PortGroup           compilers 1.0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup        OSGeo grass 8.3.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-name                grass
</span> epoch               1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set main_version    [join [lrange [split ${version} "."] 0 1] ""]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+name                grass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version             8.3.0
</span> revision            5
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set realVersion     ${version}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-distname            grass-${realVersion}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> maintainers         {yahoo.com:n_larsson @nilason} openmaintainer
 categories          gis
 license             GPL-2+
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-description         GRASS
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-long_description    GRASS is a Geographic Information System (GIS) used for \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    geospatial data management and analysis.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-homepage            https://grass.osgeo.org/
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-master_sites        ${homepage}grass[join [lrange [split ${realVersion} .] 0 1] {}]/source/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+description         GRASS Geographic Information System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+long_description    GRASS GIS offers powerful raster, vector, and geospatial   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    processing engines in a single integrated software suite.  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    It includes tools for terrain and ecosystem modeling,      \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    hydrology, visualization of raster and vector data,        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    management and analysis of geospatial data, and the        \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    processing of satellite and aerial imagery. It comes with  \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    a temporal framework for advanced time series processing   \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    and a Python API for rapid geospatial programming.         \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GRASS GIS has been optimized for performance and large     \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    geospatial data analysis.\nInstall the port `grass-gui`    \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    to enable graphical user interface.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+homepage            https://grass.osgeo.org
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+master_sites        ${homepage}/grass[join [lrange [split ${version} .] 0 1] {}]/source/
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distname            grass-${version}
</span> 
 checksums           rmd160  a7f7fc66266f093eb02881a4593af9997b87e53e \
                     sha256  8a38d297a41316ec0af1e4b4f8d00738f1fd98be768b8c6001b00e88817a2764 \
                     size    68481826
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build       port:pkgconfig
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib         port:bzip2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:freetype \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bison \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:flex \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+depends_lib-append  port:bzip2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    path:lib/pkgconfig/cairo.pc:cairo \
</span>                     port:fftw-3 \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:freetype \
</span>                     port:gdal \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:pdal \
</span>                     port:geos \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:tiff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:liblas \
</span>                     port:libpng \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:liblas\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    path:lib/pkgconfig/cairo.pc:cairo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:zlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:pdal \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:readline \
</span>                     port:sqlite3 \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:readline
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          01_patch-dyld-link.diff 02_grass-python.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:tiff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:zlib \
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.cflags-append  -DGL_SILENCE_DEPRECATION
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          01_patch-dyld-link.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    02_grass-python.diff
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# needed for PDAL 2.4+
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard  2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# c++17 needed for PDAL 2.4+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard     2017
</span> configure.cxxflags-append -std=c++17
<span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.cflags-append   -DGL_SILENCE_DEPRECATION
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.pre_args \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --prefix=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.pre_args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --prefix=${prefix}/lib
</span> configure.args-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    --exec-prefix=${prefix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-opengl=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-opencl=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-openmp=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --without-x \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-bzlib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-bzlib-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-bzlib-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-fftw-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-fftw-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-freetype \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-freetype-includes=${prefix}/include/freetype2 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-freetype-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-gdal=${prefix}/bin/gdal-config \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-pdal=${prefix}/bin/pdal-config \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-tiff-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-tiff-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-geos=${prefix}/bin/geos-config \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-liblas=${prefix}/bin/liblas-config \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --without-postgres \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --without-mysql \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-pthread \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-cairo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-cairo-includes=${prefix}/include/cairo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-cairo-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-blas=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-lapack=no \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-readline \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-zstd \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-zstd-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-zstd-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-sqlite \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-sqlite-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-sqlite-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-readline-includes=${prefix}/include/readline \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    --with-readline-libs=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.target            default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# Python 3 variants
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set python_suffixes {37 38 39 310 311}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set python_variants {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend python_variants python${pyver}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --exec-prefix=${prefix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-blas=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-bzlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-bzlib-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-bzlib-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-cairo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-cairo-includes=${prefix}/include/cairo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-cairo-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-fftw-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-fftw-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype-includes=${prefix}/include/freetype2 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-freetype-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-gdal=${prefix}/bin/gdal-config \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-geos=${prefix}/bin/geos-config \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-lapack=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-liblas=${prefix}/bin/liblas-config \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-mysql=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-opencl=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-opengl=osx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-openmp=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-pdal=${prefix}/bin/pdal-config \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-postgres=no \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-pthread \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-readline \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-readline-includes=${prefix}/include/readline \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-readline-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-sqlite \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-sqlite-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-sqlite-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-tiff-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-tiff-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-zstd \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-zstd-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-zstd-libs=${prefix}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    --with-x=no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python_suffixes {38 39 310 311}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${subport} eq ${name}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build.target    default
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant gui description {Obsolete variant} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "The '+gui' variant is removed. It is replaced by 'grass-gui' subport"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "unsupported variant"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set index [lsearch -exact ${python_variants} python${pyver}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set conf [lreplace ${python_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant mysql57 conflicts mysql8 description {Add MySQL 5.7 support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      port:mysql57
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-delete   --with-mysql=no   --with-mysql=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --with-mysql-includes=${prefix}/include/mysql57/mysql \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-mysql-libs=${prefix}/lib/mysql57/mysql
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.env-append    MYSQLD_CONFIG=${prefix}/lib/mysql57/bin/mysql_config
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        variant python${pyver} description "Use python${pyver}" conflicts {*}${conf} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    variant mysql8 conflicts mysql57 description {Add MySQL 8 support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      port:mysql8
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  --with-mysql=no   --with-mysql=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --with-mysql-includes=${prefix}/include/mysql8/mysql \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-mysql-libs=${prefix}/lib/mysql8/mysql
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.env-append    MYSQLD_CONFIG=${prefix}/lib/mysql8/bin/mysql_config
</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;'>+    variant openblas description {Use OpenBLAS for BLAS/LAPACK} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      port:openblas
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  --with-blas=no    --with-blas=yes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-lapack=no  --with-lapack=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --with-liblas=${prefix}/bin/liblas-config \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-lapack-includes=${prefix}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-lapack-libs=${prefix}/lib
</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;'>+    variant openmp description {Add OpenMP support} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib-append      port:libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-replace  --with-openmp=no  --with-openmp=yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append   --with-openmp-includes=${prefix}/include/libomp \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --with-openmp-libs=${prefix}/lib/libomp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        compiler.openmp_version 4.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;'>+    # PostGreSQL variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set postgresql_versions {12 13 14 15}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set postgresql_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pg_version ${postgresql_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend postgresql_variants postgresql${pg_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pg_version ${postgresql_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set vrt postgresql${pg_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set index [lsearch -exact ${postgresql_variants} ${vrt}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set conf [lreplace ${postgresql_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant ${vrt} description "Use PostgreSQL ${pg_version}" conflicts {*}${conf} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_lib-append      port:${vrt}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-append   --with-postgres-includes=${prefix}/include/${vrt} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    --with-postgres-libs=${prefix}/lib/${vrt}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-replace  --with-postgres=no  --with-postgres=yes
</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 PostGreSQL default variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pgdefault "if {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pg_version ${postgresql_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set pgdefault "${pgdefault}!\[variant_isset postgresql${pg_version}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pgdefault   [string range ${pgdefault} 0 end-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pgdefault   "${pgdefault}} { default_variants +postgresql${pg_version} }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval ${pgdefault}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # PROJ variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set proj_versions {6 7 8 9}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set proj_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pjver ${proj_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend proj_variants proj${pjver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach proj_ver ${proj_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set index [lsearch -exact ${proj_variants} proj${proj_ver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set cflcts [lreplace ${proj_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant proj${proj_ver} description "Use Proj${proj_ver}" conflicts {*}${cflcts} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_lib-append      port:proj${proj_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.env           PATH=$::env(PATH):${prefix}/lib/proj${proj_ver}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            build.env               PATH=$::env(PATH):${prefix}/lib/proj${proj_ver}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            configure.args-append   --with-proj-includes=${prefix}/lib/proj${proj_ver}/include \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    --with-proj-libs=${prefix}/lib/proj${proj_ver}/lib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    --with-proj-share=${prefix}/lib/proj${proj_ver}/share/proj
</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 PROJ default variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set projdf "if {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pv ${proj_versions} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set projdf "${projdf}!\[variant_isset proj${pv}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set projdf [string range ${projdf} 0 end-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set projdf "${projdf}} { default_variants +proj${pv} }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval ${projdf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Python variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend python_variants python${pyver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set py_dot_ver [string index ${pyver} 0].[string range ${pyver} 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set index   [lsearch -exact ${python_variants} python${pyver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set conf    [lreplace ${python_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant python${pyver} description "Use Python ${py_dot_ver}" conflicts {*}${conf} "
</span>             depends_lib-append      port:python${pyver} \
                                     port:py${pyver}-Pillow \
                                     port:py${pyver}-numpy \
                                     port:py${pyver}-six
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>             depends_run-append      port:py${pyver}-psycopg2
         "
<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;'>-# Patches scripts to launch the selected Python version (fixes #59954)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-post-patch {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        if {[variant_isset python${pyver}]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set pyversion   [string index ${pyver} 0].[string range ${pyver} 1 end]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            set pybin       ${prefix}/bin/python${pyversion}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            fs-traverse f ${worksrcpath} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                if {[file extension ${f}] eq ".py"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    reinplace -q "s|/usr/bin/env python3|${pybin}|" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Patches scripts to launch the selected Python version (fixes #59954)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-patch {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach pyver ${python_suffixes} {
</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 pyversion   [string index ${pyver} 0].[string range ${pyver} 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set pybin       ${prefix}/bin/python${pyversion}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                fs-traverse f ${worksrcpath} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    if {[file extension ${f}] eq ".py"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        reinplace -q "s|/usr/bin/env python3|${pybin}|" ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    }
</span>                 }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|PYVER.*|PYVER = ${pyversion}|" ${worksrcpath}/macosx/Makefile
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                reinplace "s|^PYTHON.*|PYTHON = ${pybin}|" ${worksrcpath}/include/Make/Platform.make.in
</span>             }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace "s|PYVER.*|PYVER = ${pyversion}|" ${worksrcpath}/macosx/Makefile
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace "s|^PYTHON.*|PYTHON = ${pybin}|" ${worksrcpath}/include/Make/Platform.make.in
</span>         }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace "s|@PYBIN@|${pybin}|" ${worksrcpath}/lib/init/grass.py
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # set Python default variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault "if {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach suffix ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set pydefault "${pydefault}!\[variant_isset python${suffix}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault [string range ${pydefault} 0 end-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault "${pydefault}} { default_variants +python${suffix} }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval ${pydefault}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-configure {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        reinplace -E "s|\\\$\\\(CPPFLAGS)| \$(CPPFLAGS) \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            \\\\\"-Drestrict=\\\\\" \\\\\"-D__attribute__(x)=\\\\\" \\\\\"-D_Nonnull=\\\\\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            \\\\\"-Dint8_t=char\\\\\" \\\\\"-DCF_INLINE=\\\\\" \\\\\"-D_Null_unspecified=\\\\\" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            \\\\\"-D__DARWIN_OS_INLINE=\\\\\"|" ${worksrcpath}/python/libgrass_interface_generator/Makefile
</span>     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace "s|@PYBIN@|${pybin}|" ${worksrcpath}/lib/init/grass.py
</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;'>-# Python default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pydefault "if {"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach suffix ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set pydefault "${pydefault}!\[variant_isset python${suffix}\] && "
</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;'>-set pydefault [string range ${pydefault} 0 end-4]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pydefault "${pydefault}} { default_variants +python${suffix} }"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-eval ${pydefault}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d -m 0755 ${destroot}${prefix}/share/pkgconfig
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -m 0644 -W ${worksrcpath} grass.pc ${destroot}${prefix}/share/pkgconfig/grass.pc
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set proj_versions {6 7 8 9}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set proj_variants {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach pjver ${proj_versions} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend proj_variants proj${pjver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.url       ${master_sites}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.regex     grass-(\[0-9.\]+)[quotemeta ${extract.suffix}]
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach proj_ver ${proj_versions} {
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set index [lsearch -exact ${proj_variants} proj${proj_ver}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set cflcts [lreplace ${proj_variants} ${index} ${index}]
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        variant proj${proj_ver} description "Use Proj${proj_ver}" conflicts {*}${cflcts} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport grass-gui {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    PortGroup           active_variants 1.1
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            depends_lib-append      port:proj${proj_ver}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.env           PATH=$::env(PATH):${prefix}/lib/proj${proj_ver}/bin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            build.env               PATH=$::env(PATH):${prefix}/lib/proj${proj_ver}/bin
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            configure.args-append   --with-proj-includes=${prefix}/lib/proj${proj_ver}/include \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                    --with-proj-libs=${prefix}/lib/proj${proj_ver}/lib \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                    --with-proj-share=${prefix}/lib/proj${proj_ver}/share/proj
</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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set projdf "if {"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach pv ${proj_versions} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set projdf "${projdf}!\[variant_isset proj${pv}\] && "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set projdf [string range ${projdf} 0 end-4]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set projdf "${projdf}} { default_variants +proj${pv} }"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-eval ${projdf}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    epoch               0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    revision            0
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-variant gui description {Build with wxPython GUI and application bundle} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    wxWidgets.use           wxWidgets-3.2
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:${wxWidgets.port}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description         GUI support to GRASS Geographic Information System
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    long_description    {*}${description}, includes wxPython and application bundle.
</span> 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_lib         port:grass
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    use_configure       no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    build               {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # Python variants
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_grass        [lindex $python_suffixes end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set py_variant      ${py_grass}
</span>     foreach pyver ${python_suffixes} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {![catch {set result [active_variants grass python${pyver}]}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {$result} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set py_grass ${pyver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         if {[variant_isset python${pyver}]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            depends_lib-append  port:py${pyver}-wxpython-4.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set py_variant ${pyver}
</span>         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete   --with-opengl=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-opengl=osx
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {${py_grass} ne ${py_variant}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "Python variant must be the same as for 'grass', i.e. +python${py_grass}."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "Conflicting Python variants."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set python_variants {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend python_variants python${pyver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach pyver ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set py_dot_ver [string index ${pyver} 0].[string range ${pyver} 1 end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set index   [lsearch -exact ${python_variants} python${pyver}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set conf    [lreplace ${python_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        variant python${pyver} description "Use Python ${py_dot_ver}" conflicts {*}${conf} "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            depends_run-append      port:py${py_grass}-matplotlib \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    port:py${py_grass}-termcolor \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    port:py${py_grass}-wxpython-4.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;'>+    # set Python default variant
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault "if {"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach suffix ${python_suffixes} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set pydefault "${pydefault}!\[variant_isset python${suffix}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault [string range ${pydefault} 0 end-4]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set pydefault "${pydefault}} { default_variants +python${suffix} }"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    eval ${pydefault}
</span> 
     # Create app bundle
     global app_name
     set app_name_version [join [lrange [split ${version} "."] 0 1] "."]
     set app_name GRASS-${app_name_version}.app
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-build {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    destroot {
</span>         xinstall -d -m 0755 ${worksrcpath}/${app_name}/Contents
         xinstall -d -m 0755 ${worksrcpath}/${app_name}/Contents/Resources
         xinstall -d -m 0755 ${worksrcpath}/${app_name}/Contents/MacOS
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -215,6 +340,7 @@ variant gui description {Build with wxPython GUI and application bundle} {
</span>         set version_file        [open ${worksrcpath}/include/VERSION]
         set version_data        [split [read ${version_file}] "\n"]
         close ${version_file}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        
</span>         set grass_version_major [lindex ${version_data} 0]
         set grass_version_minor [lindex ${version_data} 1]
         set grass_version_date  [lindex ${version_data} 3]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -225,97 +351,9 @@ variant gui description {Build with wxPython GUI and application bundle} {
</span>         reinplace "s|@GRASS_VERSION_DATE@|${grass_version_date}|" ${info_plist}
         reinplace "s|@BUNDLE_VERSION@|${bundle_version}|" ${info_plist}
         reinplace "s|@DEPLOYMENT_TARGET@|${macosx_deployment_target}|" ${info_plist}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-destroot {
</span>         copy ${worksrcpath}/${app_name} ${destroot}${applications_dir}
     }
<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;'>-# OpenMPI
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant openmpi description {Add OpenMPI support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete       --with-openmp=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append       --with-openmp=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append       --with-openmp-includes=${prefix}/include/libomp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append       --with-openmp-libs=${prefix}/lib/libomp
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compilers.choose            cc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    compilers.setup             clang13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.compiler          macports-clang-13
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.ldflags-append    -L${prefix}/lib/libomp
</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;'>-variant mysql57 conflicts mysql8 description {Add MySQL 5.7 support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:mysql57
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  --without-mysql \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            --with-mysql-includes=${prefix}/include/mysql57/mysql \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            --with-mysql-libs=${prefix}/lib/mysql57/mysql
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.env-append    MYSQLD_CONFIG=${prefix}/lib/mysql57/bin/mysql_config
</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;'>-variant mysql8 conflicts mysql57 description {Add MySQL 8 support} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:mysql8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-replace  --without-mysql \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            --with-mysql-includes=${prefix}/include/mysql8/mysql \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            --with-mysql-libs=${prefix}/lib/mysql8/mysql
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.env-append    MYSQLD_CONFIG=${prefix}/lib/mysql8/bin/mysql_config
</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;'>-# PostGreSQL variants (from the GDAL port)
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set postgresql_suffixes {10 11 12 13 14 15}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set postgresql_variants {}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach suffix ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    lappend postgresql_variants postgresql${suffix}
</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;'>-foreach suffix ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set vrt postgresql${suffix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set pgversion [string index ${suffix} 0].[string index ${suffix} 1]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set index [lsearch -exact ${postgresql_variants} ${vrt}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set conf [lreplace ${postgresql_variants} ${index} ${index}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    variant ${vrt} description "Use PostgreSQL ${pgversion}" conflicts {*}${conf} "
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib-append      port:${vrt}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-postgres-includes=${prefix}/include/${vrt}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-postgres-libs=${prefix}/lib/${vrt}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-delete   --with-postgres=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.args-append   --with-postgres=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;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-# PostGreSQL default
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pgdefault "if {"
</span> 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach suffix ${postgresql_suffixes} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set pgdefault "${pgdefault}!\[variant_isset postgresql${suffix}\] && "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    livecheck.type      none
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pgdefault [string range ${pgdefault} 0 end-4]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set pgdefault "${pgdefault}} { default_variants +postgresql${suffix} }"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-eval ${pgdefault}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-variant openblas description {Use OpenBLAS for BLAS/LAPACK} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    depends_lib-append      port:openblas
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete   --with-blas=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-delete   --with-lapack=no
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-blas=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-lapack=yes
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-liblas=${prefix}/bin/liblas-config
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-lapack-includes=${prefix}/include
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append   --with-lapack-libs=${prefix}/lib
</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;'>-post-configure {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    reinplace -E "s|\\\$\\\(CPPFLAGS)| \$(CPPFLAGS) \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        \\\\\"-Drestrict=\\\\\" \\\\\"-D__attribute__(x)=\\\\\" \\\\\"-D_Nonnull=\\\\\" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        \\\\\"-Dint8_t=char\\\\\" \\\\\"-DCF_INLINE=\\\\\" \\\\\"-D_Null_unspecified=\\\\\" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        \\\\\"-D__DARWIN_OS_INLINE=\\\\\"|" ${worksrcpath}/python/libgrass_interface_generator/Makefile
</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;'>-default_variants    +sqlite
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.type      regex
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.url       ${master_sites}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-livecheck.regex     grass-(\[0-9.\]+)[quotemeta ${extract.suffix}]
</span></pre><pre style='margin:0'>

</pre>