# -*- 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-beautifulsoup4
version             4.14.0
revision            0

categories-append   textproc
license             MIT
maintainers         {mps @Schamschula} openmaintainer
description         Python HTML/XML parser
long_description    Beautiful Soup is a Python HTML/XML parser designed for \
                    quick turnaround projects like screen-scraping.

supported_archs     noarch
platforms           {darwin any}

checksums           rmd160  b72e04d4b1060a46d5a6395a676aeabc9ff7e565 \
                    sha256  e6150e53c8a52fd4f3b9b28839f8f0fb7c7f029d3c953a50b1762b0947c3cf85 \
                    size    625697

homepage            https://www.crummy.com/software/BeautifulSoup/

python.versions     39 310 311 312 313

python.pep517_backend \
                    hatch

if {${name} ne ${subport}} {
    depends_lib-append \
                    port:py${python.version}-soupsieve \
                    port:py${python.version}-typing_extensions

    variant chardet description {Build with chardet support} {
        depends_lib-append  port:py${python.version}-chardet
    }

    variant charset_normalizer description {Build with charset-normalizer support} {
        depends_lib-append  port:py${python.version}-charset-normalizer
    }

    variant html5lib description {Build with HTML5 support} {
        depends_lib-append  port:py${python.version}-html5lib
    }

    variant lxml description {Build with lxml support} {
        depends_lib-append  port:py${python.version}-lxml
    }

    post-destroot   {
        set docdir ${prefix}/share/doc/${subport}
        xinstall -d ${destroot}${docdir}
        xinstall -m 644 -W ${worksrcpath} \
            LICENSE \
            NEWS.txt \
            README.md \
            ${destroot}${docdir}
    }

    default_variants \
                    +html5lib +lxml

    test.run        yes
}
