# -*- 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
PortGroup           python 1.0

name                py-pyproj
version             3.6.1
categories-append   devel
license             MIT

python.versions     37 38 39 310 311
python.pep517       yes

maintainers         {stromnov @stromnov} openmaintainer

description         Python interfaces to PROJ.4 functions.
long_description    Pyrex wrapper to provide python interfaces to PROJ.4 \
                    (http://proj.maptools.org) functions.  Performs \
                    cartographic transformations and geodetic computations.

homepage            https://pyproj4.github.io/pyproj

checksums           md5 09a67b757bc473b47fb2e247b9994228 \
                    rmd160 4cea140c609a5e74dfb0de338e321bd670320329 \
                    sha256 44aa7c704c2b7d8fb3d483bbf75af6cb2350d30a63b144279a09b75fead501bf \
                    size   225131

if {${name} ne ${subport}} {

    if {${python.version} == 37} {
        version             3.2.1
        revision            0
        checksums           rmd160  42ab02d994e1ee4b83b5692ee8a5c2d94ea4c54d \
                            sha256  4a936093825ff55b24c1fc6cc093541fcf6d0f6d406589ed699e62048ebf3877 \
                            size    213342

        python.pep517       no
        depends_build-append \
                            port:py${python.version}-setuptools
        depends_lib-append  port:proj8

        configure.env-append    PROJ_DIR=${prefix}/lib/proj8
        build.env-append        PROJ_DIR=${prefix}/lib/proj8
        destroot.env-append     PROJ_DIR=${prefix}/lib/proj8

        patchfiles-append   patch-pyproj_datadir.py.37.diff

        post-patch {
            reinplace "s|%%INTERNAL_DATADIR%%|${prefix}/lib/proj8/share/proj|" ${worksrcpath}/pyproj/datadir.py
        }
    } elseif {${python.version} == 38} {
        version             3.4.1
        revision            0
        checksums           rmd160  435bff015e741fb24e21eea50b55bb0514fc2ebb \
                            sha256  261eb29b1d55b1eb7f336127344d9b31284d950a9446d1e0d1c2411f7dd8e3ac \
                            size    217916

        variant proj8 conflicts proj9 {
            depends_lib-append      port:proj8
            configure.env-append    PROJ_DIR=${prefix}/lib/proj8
            build.env-append        PROJ_DIR=${prefix}/lib/proj8
            destroot.env-append     PROJ_DIR=${prefix}/lib/proj8
            post-patch {
                reinplace "s|%%INTERNAL_DATADIR%%|${prefix}/lib/proj8/share/proj|" ${worksrcpath}/pyproj/datadir.py
            }
        }

        variant proj9 conflicts proj8 {
            depends_lib-append      port:proj9
            configure.env-append    PROJ_DIR=${prefix}/lib/proj9
            build.env-append        PROJ_DIR=${prefix}/lib/proj9
            destroot.env-append     PROJ_DIR=${prefix}/lib/proj9
            post-patch {
                reinplace "s|%%INTERNAL_DATADIR%%|${prefix}/lib/proj9/share/proj|" ${worksrcpath}/pyproj/datadir.py
            }
        }

        if {![variant_isset proj8] && ![variant_isset proj9]} {
            default_variants        +proj9
        }

        patchfiles-append   patch-pyproj_datadir.py.diff
    } else {
        depends_lib-append      port:proj9
        configure.env-append    PROJ_DIR=${prefix}/lib/proj9
        build.env-append        PROJ_DIR=${prefix}/lib/proj9
        destroot.env-append     PROJ_DIR=${prefix}/lib/proj9
        patchfiles-append       patch-pyproj_datadir.py.diff
        post-patch {
            reinplace "s|%%INTERNAL_DATADIR%%|${prefix}/lib/proj9/share/proj|" ${worksrcpath}/pyproj/datadir.py
        }
    }

    if {${python.version} <= 38} {
        depends_build-append \
                        port:py${python.version}-cython-compat
        set compat_path [string replace ${python.pkgd} 0 [string length ${python.prefix}]-1 ${prefix}/lib/py${python.version}-cython-compat]
        build.env-append    PYTHONPATH=${compat_path}
        destroot.env-append PYTHONPATH=${compat_path}
    } else {
        depends_build-append \
                        port:py${python.version}-cython
    }

    depends_lib-append  port:py${python.version}-certifi

    post-destroot {
        xinstall -m 0644 -W ${worksrcpath} \
            README.md PKG-INFO \
            ${destroot}${prefix}/share/doc/${subport}
    }

    livecheck.type      none
}
