# $Id: Portfile 52476 2009-06-17 09:13:21Z ryandesign@macports.org $

PortSystem              1.0
PortGroup               muniversal 1.0

name                    cairo
set my_name             cairo
version                 1.8.8
categories              graphics
maintainers             ryandesign
homepage                http://cairographics.org/
master_sites            ${homepage}releases/
platforms               darwin macosx
use_parallel_build      yes
dist_subdir             ${my_name}
distname                ${my_name}-${version}

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 \
    (eg. through the X Render Extension).

checksums \
    md5     d3e1a1035ae563812d4dd44a74fb0dd0 \
    sha1    e4b8b219427d1ca3dc95f5f44914dce1ae0c3766 \
    rmd160  78af536ebaaffc608114b626b22fc9a20cff3750

depends_build \
    port:pkgconfig

depends_lib \
    path:lib/pkgconfig/pixman-1.pc:libpixman \
    port:xrender \
    port:fontconfig \
    port:freetype \
    port:libpng \
    port:zlib \
    port:expat

pre-extract {
    if {"darwin" == ${os.platform} && 8 == ${os.major}} {
        set minimum_xcodeversion 2.4.1
        set current_xcodeversion [exec defaults read /Developer/Applications/Xcode.app/Contents/Info CFBundleShortVersionString]
        if {[rpm-vercomp ${current_xcodeversion} ${minimum_xcodeversion}] < 0} {
            ui_error "On Mac OS X ${macosx_version}, ${name} ${version} requires Xcode ${minimum_xcodeversion} or later but you have Xcode ${current_xcodeversion}."
            return -code error "incompatible Xcode version"
        }
    }
    set pixman_minimum_version 0.12.0
    set pixman_installed_version [exec pkg-config pixman-1 --modversion]
    if {[rpm-vercomp ${pixman_installed_version} ${pixman_minimum_version}] < 0} {
        ui_error "${name} ${version} requires libpixman ${pixman_minimum_version} or later but you have libpixman ${pixman_installed_version}."
        return -code error "incompatible libpixman version"
    }
}

configure.args \
    --disable-glitz \
    --disable-quartz \
    --disable-quartz-font \
    --disable-quartz-image \
    --disable-xcb \
    --enable-ft \
    --enable-pdf \
    --enable-png \
    --enable-ps \
    --enable-svg \
    --enable-xlib \
    --enable-xlib-xrender \
    --with-x \
    --x-include=${prefix}/include \
    --x-lib=${prefix}/lib

variant glitz conflicts no_x11 description {Add glitz graphics interface} {
    depends_lib-append \
        port:glitz
    configure.args-delete \
        --disable-glitz
    configure.args-append \
        --enable-glitz
}

platform macosx {}
variant quartz requires macosx description {Add Quartz graphics interface} {
    pre-extract {
        if {${os.major} < 8} {
            ui_error "cairo's Quartz support is only available on Mac OS X 10.4 or greater"
            return -code error "incompatible Mac OS X version"
        }
    }
    configure.args-delete \
        --disable-quartz \
        --disable-quartz-font \
        --disable-quartz-image
    configure.args-append \
        --enable-quartz \
        --enable-quartz-font \
        --enable-quartz-image
}

variant no_x11 conflicts glitz x11_xcb {
    depends_lib-delete \
        port:xrender
    configure.args-delete \
        --enable-xlib \
        --enable-xlib-xrender \
        --with-x
    configure.args-append \
        --disable-xlib \
        --disable-xlib-xrender \
        --without-x
}

variant x11_xcb conflicts no_x11 description {Use libxcb for X11 protocol communication} {
    configure.args-delete --disable-xcb
    configure.args-append --enable-xcb
    depends_lib-append \
        port:xorg-xcb-util
}

test.run                yes
test.target             check

livecheck.check         regex
livecheck.url           ${homepage}news/
livecheck.regex         ${my_name}-(\[0-9\]+\\.\[0-9\]*\[02468\]\\.\[0-9\]+)
