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

name                py-mypy
version             1.19.1
revision            0
license             MIT
maintainers         {toby @tobypeterson} openmaintainer
description         Optional static typing for Python
long_description    Add type annotations to your Python programs, and use mypy to \
                    type check them. Mypy is essentially a Python linter on steroids, \
                    and it can catch many programming errors by analyzing your \
                    program, without actually having to run it. Mypy has a powerful \
                    type system with features such as type inference, gradual typing, \
                    generics and union types.

homepage            https://www.mypy-lang.org

checksums           rmd160  d5736d93cd5b3dd8925024d77da58e44719433c8 \
                    sha256  19d88bb05303fe63f71dd2c6270daca27cb9401c4ca8255fe50d1d920e0eb9ba \
                    size    3582404

python.versions     39 310 311 312 313 314

if {${name} ne ${subport}} {
    depends_build-append    port:py${python.version}-types-psutil \
                            port:py${python.version}-types-setuptools
    depends_lib-append      port:py${python.version}-mypy_extensions \
                            port:py${python.version}-typing_extensions \
                            port:py${python.version}-pathspec \
                            port:py${python.version}-librt
    depends_run-append      port:mypy_select

    if {${python.version} < 311} {
        depends_lib-append  port:py${python.version}-tomli
    }

    compiler.blacklist-append \
                            *gcc-4.0 *gcc-4.2 \
                            {clang < 602}

    compiler.c_standard     2011

    build.env-append        MYPY_USE_MYPYC=1

    # https://trac.macports.org/ticket/68943
    # https://github.com/python/mypy/issues/16684
    # https://github.com/python/mypy/issues/11507
    if {${configure.build_arch} in [list arm i386 ppc]} {
        build.env-append    MYPYC_DEBUG_LEVEL=0 \
                            MYPYC_MULTI_FILE=1
    }

    select.group            mypy
    select.file             ${filespath}/mypy${python.version}
}
