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

name                py-lxml
version             5.3.1
revision            0

categories-append   devel
license             BSD
maintainers         {petr @petrrr} openmaintainer

description         Powerful and Pythonic XML processing library
long_description    lxml is a Pythonic binding for the libxml2 and \
                    libxslt libraries.  It is unique in that it \
                    combines the speed and feature completeness of \
                    these libraries with the simplicity of a native \
                    Python API, mostly compatible but superior to \
                    the well-known ElementTree API.

homepage            https://lxml.de/

checksums           rmd160  0f2cb0ad255b17222122a5a4f63df11de9516578 \
                    sha256  106b7b5d2977b339f1e97efe2778e2ab20e99994cbb0ec5e55771ed0795920c8 \
                    size    3678591

python.versions     27 35 36 37 38 39 310 311 312 313

if {${name} ne ${subport}} {
    if {${python.version} < 36} {
        version     5.0.2
        revision    0
        checksums   rmd160  edd377fe2e214c69db4e468583ac507cf71853a7 \
                    sha256  6399703c40ba53e2c3b72fdb56cb908d2b83c08082ecf17de839b27e68d1e598 \
                    size    3862433

        depends_build-append \
                    port:py${python.version}-setuptools
    }

    depends_build-append \
                    port:py${python.version}-cython

    depends_lib-append \
                    port:zlib \
                    port:libxml2 \
                    port:libxslt

    # https://trac.macports.org/ticket/56666
    patchfiles-append   patch-setupinfo-remove-xcrun-call.diff

    # https://trac.macports.org/ticket/69386
    # As of 5.1.1, it does not build with gcc-4.2 anymore,
    # even if pragmas are patched out:
    # etree.h: error: wrong number of arguments specified for ‘__deprecated__’ attribute
    # Old Xcode clang of 10.6 also does not build it.
    compiler.blacklist-append \
                    {*gcc-[34].*} {clang < 421}

    test.run        yes
    python.test_framework
    test.cmd        ${python.bin} src/lxml/tests/selftest.py
}
