# -*- 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             2.2.0
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  af798faf8e7c5877f5913a117838941eb4889ca9 \
                    sha256  2cdd99d48590dce6f6b7f1961eda75386364398fcdaad86923bc0f0231bf9baf \
                    size    3950939

python.versions     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 \
                            port:py${python.version}-ast_serialize
    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}
}
