# -*- 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           active_variants 1.1

name                cairomm-1.0
set my_name         cairomm
version             1.12.2
revision            0

categories          graphics
license             LGPL-2+
maintainers         {devans @dbevans} {mascguy @mascguy} openmaintainer

description         Cairo is a vector graphics library with cross-device output support.
long_description    Cairo is designed to produce identical \
                    output on all output media while taking advantage of \
                    display hardware acceleration when available \
                    (e.g. through the X Render Extension).
homepage            https://www.cairographics.org

master_sites        ${homepage}/releases/
distname            ${my_name}-${version}
dist_subdir         ${my_name}

checksums           rmd160  112e58d903f168232b6a2673802b83ce687eb46c \
                    sha256  45c47fd4d0aa77464a75cdca011143fea3ef795c4753f6e860057da5fb8bd599 \
                    size    1325223

depends_build-append \
                    port:pkgconfig \
                    port:mm-common

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

use_autoreconf      yes
autoreconf.args     -fvi

# cairomm > 1.10.0 requires C++11 or better
compiler.cxx_standard 2011

# This port provides legacy bindings, previously provided by 'cairomm'.
# So the latter must be deactivated first, if an older version is installed.
# This logic added 2023-04-30; keep in place for at least 12 months.
pre-activate {
    set port_conflict_name    cairomm
    set port_conflict_ver_max "1.12.2"

    if { ![catch {set port_conflict_ver_info [lindex [registry_active ${port_conflict_name}] 0]}] } {
        set port_conflict_ver [lindex ${port_conflict_ver_info} 1]
        ui_info "${port_conflict_name} active version: ${port_conflict_ver}"

        if { [vercmp ${port_conflict_ver} ${port_conflict_ver_max}] <= 0 } {
            ui_info "Deactivating conflicting port: ${port_conflict_name}"
            registry_deactivate_composite ${port_conflict_name} "" [list ports_nodepcheck 1]
        }
    }
}

# dummy variants to ensure that this port gets rebuilt if
# the corresponding variants for cairo change
variant x11 {}
variant quartz {}

default_variants +x11 +quartz

if {[variant_isset quartz]} {
    require_active_variants path:lib/pkgconfig/cairo.pc:cairo quartz
}

if {[variant_isset x11]} {
    require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11
}

livecheck.type      none