# $Id: Portfile 66285 2010-04-08 08:09:09Z jmr@macports.org $

PortSystem              1.0
PortGroup               muniversal 1.0
PortGroup               archcheck 1.0

name                    cairo
conflicts               cairo-devel
set my_name             cairo
version                 1.8.10
categories              graphics
maintainers             ryandesign
license                 LGPLv2.1/MPLv1.1
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     b60a82f405f9400bbfdcf850b1728d25 \
    sha1    fd5e8ca82ff0e8542ea4c51612cad387f2a49df3 \
    rmd160  9538baf30f812b950beeb93893f46d1223fb44ce

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

archcheck.files         lib/libpixman-1.dylib \
                        lib/libXrender.dylib \
                        lib/libfontconfig.dylib \
                        lib/libfreetype.dylib \
                        lib/libpng.dylib \
                        lib/libz.dylib \
                        lib/libexpat.dylib

pre-configure {
    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
    archcheck.files-append  lib/libglitz.dylib
    configure.args-delete \
        --disable-glitz
    configure.args-append \
        --enable-glitz
}

platform macosx {}
if {([variant_isset macosx] || ([info exists os.subplatform] && ${os.subplatform} == "macosx"))} {
variant quartz {
    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
    archcheck.files-delete  lib/libXrender.dylib
    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
    archcheck.files-append  lib/libxcb-render-util.dylib
}

test.run                yes
test.target             check

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