# -*- 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-tkinter
version         2.4.6
revision        2
categories-append     graphics
license         PSF
maintainers     nomaintainer
description     Python bindings to the Tk widget set
long_description \
    {*}${description}

homepage        https://docs.python.org/library/tkinter.html

python.versions 26 27 32 33 34 35 36 37 38 39 310 311 312 313 314

set extract_files [list Modules/_tkinter.c Modules/tkappinit.c]
set module_name tkinter
subport py26-tkinter {
    maintainers {mcalhoun @MarcusCalhoun-Lopez} openmaintainer
    version     2.6.9
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 933a811f11e3db3d73ae492f6c3a7a76 \
                rmd160 42edf7c9f2f64b77ab173de30ea453257c2c06b3 \
                sha256 cae7bb995006ea5b703d9d28446f694894c441fe4bfb95d561c0ac908cd06e41
    set module_name Tkinter
}
subport py27-tkinter {
    maintainers {jmr @jmroot} openmaintainer
    version     2.7.18
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 fd6cc8ec0a78c44036f825e739f36e5a \
                rmd160 40a514bb05c9e631454ea8466e28f5bb229428ad \
                sha256 b62c0e7937551d0cc02b8fd5cb0f544f9405bafc9a54d3808ed4594812edef43
    set module_name Tkinter
}
subport py32-tkinter {
    maintainers {jmr @jmroot}
    version     3.2.6
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5     e0ba4360dfcb4aec735e666cc0ae7b0e \
                rmd160  f3f5877cd3ac03151f161353e808a38204f1270d \
                sha256  1d12b501819fd26afafbf8459be1aa279b56f032b4c15412de0a713ce0de7bdc
}
subport py33-tkinter {
    maintainers {jmr @jmroot}
    version     3.3.7
    epoch       20141012
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 84e2f12f044ca53b577f6224c53f82ac \
                rmd160 3a915ea86ef3826fc0483eb94a2b4e2b9ad787b1 \
                sha256 85f60c327501c36bc18c33370c14d472801e6af2f901dafbba056f61685429fe
}
subport py34-tkinter {
    maintainers {jmr @jmroot} openmaintainer
    epoch       20170810
    version     3.4.10
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 f88a98bce17a03c43a6a5f8a66ab2e62 \
                rmd160 050bb8f215d9b5ed8287b2a9f9faa6448d7513a5 \
                sha256 d46a8f6fe91679e199c671b1b0a30aaf172d2acb5bcab25beb35f16c3d195b4e
}
subport py35-tkinter {
    maintainers {jmr @jmroot} openmaintainer
    epoch       20170810
    version     3.5.10
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 75c9c268703654aa6f6f2ae67303dde4 \
                rmd160 5ec7da2d568f963a81b78433bf72ed1ad9e87292 \
                sha256 0f0fa8685c1dc1f1dacb0b4e7779796b90aef99dc1fa4967a71b9da7b57d4a28
}
subport py36-tkinter {
    maintainers {jmr @jmroot}
    epoch       20170717
    version     3.6.15
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 bc04aa6c2a1a172a35012abd668538cd \
                rmd160 eb84f49be5de3e2cc93059b9e90d3d42c971a90f \
                sha256 6e28d7cdd6dd513dd190e49bca3972e20fcf455090ccf2ef3f1a227614135d91
}
subport py37-tkinter {
    maintainers {jmr @jmroot}
    version     3.7.17
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 dd94cab4541b57b88cf3dab32d6336e3 \
                rmd160 4dc4fb8286e8550da79a610ecb3a161757cf0886 \
                sha256 7911051ed0422fd54b8f59ffc030f7cf2ae30e0f61bda191800bb040dce4f9d2
}
subport py38-tkinter {
    maintainers nomaintainer
    version     3.8.20
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 745478c81d6382cf46b5e7ad89e56008 \
                rmd160 1d03db4e018f2133f2b279a3a44f0c7c759c50cf \
                sha256 6fb89a7124201c61125c0ab4cf7f6894df339a40c02833bfd28ab4d7691fafb4
}
subport py39-tkinter {
    maintainers {jmr @jmroot}
    version     3.9.25
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 d56b945105f1ea8dc67df8ec78fd13e6 \
                rmd160 20f2a519486ee697e76ca3aca14da4c29a6bd1b8 \
                sha256 00e07d7c0f2f0cc002432d1ee84d2a40dae404a99303e3f97701c10966c91834
}
subport py310-tkinter {
    maintainers {jmr @jmroot}
    version     3.10.19
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 ff2739df51da5475e55dbf023d594894 \
                rmd160 799f889c92f37015f5beab249f12bc92f4ccf009 \
                sha256 c8f4a596572201d81dd7df91f70e177e19a70f1d489968b54b5fbbf29a97c076
}
subport py311-tkinter {
    maintainers {jmr @jmroot}
    version     3.11.14
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 2f7d50f6e41d61607022dfeb7741df3a \
                rmd160 929fc6d0e201f132a8ee60ca32f73bc9fbef4023 \
                sha256 8d3ed8ec5c88c1c95f5e558612a725450d2452813ddad5e58fdb1a53b1209b78
}
subport py312-tkinter {
    maintainers {jmr @jmroot}
    version     3.12.12
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 04feb01316c7bb1b448001adbc63dd23 \
                rmd160 833cf98b64fde6baa25654fa9c7a919754f5888d \
                sha256 fb85a13414b028c49ba18bbd523c2d055a30b56b18b92ce454ea2c51edc656c4
}
subport py313-tkinter {
    maintainers {jmr @jmroot}
    version     3.13.9
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 516aabdf3de01eeefb6de1aacf9df810 \
                rmd160 19d545e3fb13c7d8e83833f6870653c668c6c725 \
                sha256 ed5ef34cda36cfa2f3a340f07cac7e7814f91c7f3c411f6d3562323a866c5c66
}
subport py314-tkinter {
    maintainers {jmr @jmroot}
    version     3.14.0
    revision    0
    homepage    https://docs.python.org/release/${version}/library/tkinter.html
    checksums   md5 41389edaf9c643263cbed9b5ed307df8 \
                rmd160 cc90edce6f257107b4914e106825537bc9506cde \
                sha256 2299dae542d395ce3883aca00d3c910307cd68e0b2f7336098c8e7b7eee9f3e9
}

master_sites    https://www.python.org/ftp/python/${version}/
distname        Python-${version}

if {${name} ne ${subport}} {
    use_xz      yes

    depends_lib-append port:tk

    dist_subdir python${python.version}

    worksrcdir  ${worksrcdir}/Modules

    if {${python.version} >= 312} {
        compiler.c_standard 2011
        set extra_cflags \"-std=c11\"
    } else {
        set extra_cflags ""
    }

    if {${python.version} >= 37} {
        python.pep517   yes
        set setup_files [list pyproject.toml setup-pep517.py]
        post-destroot {
            xinstall -d ${destroot}${python.libdir}/lib-dynload
            move {*}[glob ${destroot}${python.pkgd}/*.so] ${destroot}${python.libdir}/lib-dynload
            delete ${destroot}${python.pkgd}
        }
    } else {
        set setup_files [list setup.py]
    }

    if {${python.version} >= 27} {
        lappend extract_files Modules/tkinter.h
        if {${python.version} >= 35} {
            lappend extract_files Modules/clinic/_tkinter.c.h
        }
    }
    foreach f $extract_files {
        lappend extract_files_full [shellescape ${distname}/${f}]
    }
    extract.post_args   "| tar -xf - [join $extract_files_full]"
    post-extract {
        foreach f $setup_files {
            if {[string match setup-*.py $f]} {
                copy    ${filespath}/${f} ${worksrcpath}/setup.py
            } else {
                copy    ${filespath}/${f} ${worksrcpath}
            }
        }
    }

    configure {
        reinplace "s|__PREFIX__|${prefix}|" ${worksrcpath}/setup.py
        reinplace "s|__TK-VERSION__|8.6|" ${worksrcpath}/setup.py
        if {[file exists ${worksrcpath}/pyproject.toml]} {
            reinplace "s|__EXTRA_CFLAGS__|${extra_cflags}|" ${worksrcpath}/setup.py
            reinplace "s|__PYTHON_INCDIR__|${python.include}|" ${worksrcpath}/setup.py
            reinplace "s|__MODULE_NAME__|${module_name}|" ${worksrcpath}/pyproject.toml
            reinplace "s|__VERSION__|${version}|" ${worksrcpath}/pyproject.toml
        } else {
            reinplace "s|__MODULE_NAME__|${module_name}|" ${worksrcpath}/setup.py
        }
    }

    livecheck.type  regex
    livecheck.url   https://www.python.org/downloads/
    livecheck.regex Python (${python.branch}\\.\[0-9\]+)
} else {
    livecheck.type  none
}
