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

PortSystem              1.0
PortGroup               muniversal 1.0
PortGroup               archcheck 1.0

name                    pango-devel
conflicts               pango
set my_name             pango
version                 1.27.1
set branch              [join [lrange [split ${version} .] 0 1] .]
categories              x11
maintainers             ryandesign
license                 LGPLv2
homepage                http://www.pango.org/
master_sites            gnome:sources/${my_name}/${branch}
platforms               darwin
distname                ${my_name}-${version}
dist_subdir             ${my_name}
use_bzip2               yes
use_parallel_build      yes

description \
    Framework for the layout and rendering of i18n text

long_description \
    The goal of the Pango project is to provide an \
    open-source framework for the layout and rendering \
    of internationalized text.

checksums           md5     ffc867ee6c3173bc3941002f33ea4148 \
                    sha1    e01daee61a8bc0afa863be364b03e73f8d9214c1 \
                    rmd160  7cf754e21ce009d698937819e3b2c9c3d8f4b615

depends_build \
    port:pkgconfig

depends_lib \
    path:lib/pkgconfig/glib-2.0.pc:glib2 \
    port:Xft2 \
    path:lib/pkgconfig/cairo.pc:cairo

archcheck.files         lib/libglib-2.0.dylib \
                        lib/libXft.dylib \
                        lib/libcairo.dylib

patchfiles \
    patch-ltmain.sh.diff

configure.ccache        no

platform macosx {}
if { ([variant_isset macosx] || ([info exists os.subplatform] && ${os.subplatform} == "macosx"))} {
variant quartz {
    # Although this variant does nothing, pango will automatically build
    # itself differently depending on whether or not cairo is installed with
    # the quartz variant. Therefore this variant is necessary to be able to
    # distinguish whether an installed pango has quartz support or not.
    
    # pango 1.25.1 and up uses Core Text which is only available on 10.5+.
    pre-extract {
        if {${os.major} < 9} {
            ui_error "${name} ${version} +quartz requires Mac OS X 10.5 or greater."
            ui_error "Either don't use the +quartz variant or upgrade your Mac OS X."
            ui_error "Concerns about this should be addressed to the Pango mailing list:"
            ui_error "http://mail.gnome.org/mailman/listinfo/gtk-i18n-list"
            return -code error "incompatible Mac OS X version"
        }
    }
}
}

pre-configure {
    set glib_minimum_version 2.17.3
    set glib_installed_version [exec pkg-config glib-2.0 --modversion]
    if {[rpm-vercomp ${glib_installed_version} ${glib_minimum_version}] < 0} {
        ui_error "${name} ${version} requires glib2 ${glib_minimum_version} or later but you have glib2 ${glib_installed_version}."
        return -code error "incompatible glib2 version"
    }
    
    set cairo_minimum_version 1.7.4
    set cairo_installed_version [exec pkg-config cairo --modversion]
    if {[rpm-vercomp ${cairo_installed_version} ${cairo_minimum_version}] < 0} {
        ui_error "${name} ${version} requires cairo ${cairo_minimum_version} or later but you have cairo ${cairo_installed_version}."
        return -code error "incompatible cairo version"
    }
    
    set cairo_quartz_pc ${prefix}/lib/pkgconfig/cairo-quartz.pc
    if {[variant_exists quartz] && [variant_isset quartz]} {
        if {![file exists ${cairo_quartz_pc}]} {
            ui_error "To install pango with the quartz variant, cairo must be installed with the quartz variant."
            return -code error "incompatible cairo installation"
        }
    } else {
        if {[file exists ${cairo_quartz_pc}]} {
            ui_error "To install pango without the quartz variant, cairo must be installed without the quartz variant."
            return -code error "incompatible cairo installation"
        }
    }
    
    set cairo_xlib_pc ${prefix}/lib/pkgconfig/cairo-xlib.pc
    if {[variant_isset no_x11]} {
        if {[file exists ${cairo_xlib_pc}]} {
            ui_error "To install pango with the no_x11 variant, cairo must be installed with the no_x11 variant."
            return -code error "incompatible cairo installation"
        }
    } else {
        if {![file exists ${cairo_xlib_pc}]} {
            ui_error "To install pango without the no_x11 variant, cairo must be installed without the no_x11 variant."
            return -code error "incompatible cairo installation"
        }
    }
}

if { ${os.arch}=="i386" } {
    set merger_configure_env(ppc)     "NM='/usr/bin/nm -p'"
    set merger_configure_env(ppc64)   "NM='/usr/bin/nm -p'"
} else {
    set merger_configure_env(i386)    "NM='/usr/bin/nm -p'"
    set merger_configure_env(x86_64)  "NM='/usr/bin/nm -p'"
}
lappend merger_configure_env(ppc64)   ac_cv_header_Carbon_Carbon_h=no
lappend merger_configure_env(x86_64)  ac_cv_header_Carbon_Carbon_h=no

configure.cppflags-append \
    -no-cpp-precomp

configure.ldflags-append \
    -no-undefined \
    -bind_at_load

configure.args \
    --enable-static \
    --x-include=${prefix}/include --x-lib=${prefix}/lib

variant no_x11 {
    depends_lib-delete \
        port:Xft2
    archcheck.files-delete  lib/libXft.dylib
    configure.args-append \
        --without-x
}

post-destroot {
    if {[variant_isset no_x11]} {
        xinstall -d ${destroot}${prefix}/etc/pango
    }
    xinstall -m 0644 ${worksrcpath}/modules/pangorc \
        ${destroot}${prefix}/etc/pango
    reinplace "s|\\.\\./modules/|${prefix}/etc/pango/|g" \
        ${destroot}${prefix}/etc/pango/pangorc
    
    system "env LANG=C DYLD_LIBRARY_PATH=${destroot}${prefix}/lib \
        ${destroot}${prefix}/bin/pango-querymodules ${destroot}${prefix}/lib/pango/1.6.0/modules/*.so \
        >${destroot}${prefix}/etc/pango/pango.modules"
    reinplace s|${destroot}||g ${destroot}${prefix}/etc/pango/pango.modules
    
    set docdir ${prefix}/share/doc/${name}-${version}
    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} AUTHORS ChangeLog COPYING MAINTAINERS NEWS README THANKS \
        ${destroot}${docdir}
}

test.run                yes
test.target             check

livecheck.type          regex
livecheck.url           http://ftp.gnome.org/pub/GNOME/sources/${my_name}/${branch}/?C=M&O=D
livecheck.regex         ${my_name}-(\[0-9.\]+)\\.tar
