# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           deprecated 1.0

name                postgis2
categories          databases gis
license             GPL-2+
version             2.5.11
epoch               1
revision            0
maintainers         {vince @Veence} openmaintainer

deprecated.eol_version  yes

description         PostGIS is the spatial extension to the\
                    PostGreSQL database.

long_description    PostGIS 2 adds geometrical, geographical and topological\
                    types, and functions operating thereon, to the PostGreSQL\
                    database. The 2.0 release also provides raster handling\
                    and basic 3D geometry capacities (TIN and polyhedra).

homepage            http://postgis.refractions.net/

master_sites        http://download.osgeo.org/postgis/source
distname            postgis-${version}

checksums           rmd160  68750a188c9d35359f82f77951e46deda567aacd \
                    sha256  2f9dcda0ce203a99d1a6b928ccb263d49714dc579387f61eed69873fad2b00fe \
                    size    15809374

depends_build       port:autoconf \
                    port:automake \
                    port:libtool \
                    port:libxslt

depends_lib         port:geos\
                    port:proj7\
                    port:libiconv\
                    port:libxml2\
                    port:json-c

# PostGIS 2.0 is not compatible with PostGIS 3.x, installed on PostgreSQL 12
conflicts           pg12-postgis

set pg_suffixes {10 11 12}
set pg_variants {}
set pg_default_variant "if {"
foreach v ${pg_suffixes} {
    lappend pg_variants postgresql${v}
    set pg_default_variant "${pg_default_variant}!\[variant_isset postgresql${v}] && "
}
set pg_default_variant [string range ${pg_default_variant} 0 end-4]
set pg_default_variant "${pg_default_variant}} {default_variants +postgresql${v}}"
eval $pg_default_variant
foreach v ${pg_suffixes} {
    set p postgresql${v}
    set i [lsearch -exact ${pg_variants} ${p}]
    set c [lreplace ${pg_variants} ${i} ${i}]
    variant ${p} description "Use PostgreSQL ${v}" conflicts {*}${c} "
        depends_lib-append      port:${p}
        configure.args-append   --libdir=${prefix}/lib/${p} \
            --with-pgconfig=${prefix}/lib/${p}/bin/pg_config
        build.args-append       \
            PGSQL_DOCDIR=${destroot}${prefix}/share/doc/${p} \
            PGSQL_MANDIR=${destroot}${prefix}/share/man
    "
}

variant raster              description {Build raster support} {

    depends_lib-append      port:gdal
    configure.args-append   --with-raster
}

variant topology            description {Build topology support} {

    configure.args-append   --with-topology
}

variant sfcgal              description {Uses SFCGAL for 3D queries} {
    depends_lib-append      port:sfcgal
    configure.args-append   --with-sfcgal=${prefix}/bin/sfcgal-config
}

variant gui                 description {Build the GUI import tool} {

    depends_lib-append      path:lib/pkgconfig/gtk+-2.0.pc:gtk2
    configure.args-append   --with-gui
}

configure.args-append       --with-projdir=${prefix}/lib/proj7

variant comments            description {Build comments -- ! broken } {

    ui_warn "The comments variant is currently broken. Use at your own risk."

    depends_build-append    port:docbook-xsl-nons \
                            port:libxslt \
                            port:ImageMagick

    configure.args-append   --datadir=${prefix}/share/${name} \
                            --with-xsldir=${prefix}/share/xsl/docbook-xsl-nons \
                            --with-json \
                            --with-jsondir=${prefix}/lib

    build.target-append     comments
    destroot.target-append  docs-install comments-install
}

default_variants            +raster +topology

# Port phases

configure.cflags-append \
    -Diconv=libiconv -Diconv_open=libiconv_open -Diconv_close=libiconv_close

# see https://trac.macports.org/wiki/UsingTheRightCompiler
configure.env-append    CPPBIN=${configure.cpp}

post-configure {
    if {[variant_exists universal] && [variant_isset universal]} {
        # We must add universal flags to compile liblwgeom properly
        file copy ${filespath}/ed_command ${worksrcpath}/ed_command
        reinplace -E "s#XXX#${configure.universal_cflags}#" \
                    ${worksrcpath}/ed_command
        system -W ${worksrcpath}/liblwgeom \
                "ed Makefile < ${worksrcpath}/ed_command"
    }
}

build.args                  ICONV_LDFLAGS='-L${prefix}/lib -liconv'
use_parallel_build          no

livecheck.type              regex
livecheck.url               ${master_sites}
livecheck.regex             postgis-(2.\[0-9.\]+)[quotemeta ${extract.suffix}]
