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

github.setup            pygobject pycairo 1.20.1 v
name                    py-cairo
github.tarball_from     releases
revision                0

categories-append       graphics
license                 {LGPL-2.1 MPL-1.1}
platforms               darwin
maintainers             nomaintainer

description             Pycairo is set of Python bindings for the cairo graphics library
long_description        ${description}

checksums               rmd160  7e4477f3067503c40b6e31d985b21cf6c214acc2 \
                        sha256  1ee72b035b21a475e1ed648e26541b04e5d7e753d75ca79de8c583b25785531b \
                        size    344639

python.versions         27 35 36 37 38 39

if {${name} ne ${subport}} {
    if {${python.version} == 27} {
        github.setup    pygobject pycairo 1.18.2 v
        revision        0
        checksums       rmd160  49a2ed4c9cf5c2606e7cf7c9693bceff40a1bebf \
                        sha256  dcb853fd020729516e8828ad364084e752327d4cff8505d20b13504b32b16531 \
                        size    200462
    }

    depends_build-append    port:pkgconfig
    depends_lib-append      path:lib/pkgconfig/cairo.pc:cairo

    depends_test-append     port:py${python.version}-pytest \
                            port:py${python.version}-hypothesis

    test.run                yes

    # cairo/surface.c:478: error: #pragma GCC diagnostic not allowed inside functions
    # early clang versions don't use CPATH
    compiler.blacklist-append *gcc-3.* *gcc-4.* {clang < 300}

    variant quartz {
        require_active_variants cairo quartz
    }

    variant x11 {
        require_active_variants cairo x11
    }

    if {[catch {set result [active_variants cairo quartz]}]} {
        default_variants-append +quartz
    }

    if {[catch {set result [active_variants cairo x11]}]} {
        default_variants-append +x11
    }

    livecheck.type      none
}
