# -*- 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
# $Id: Portfile 92845 2012-05-09 04:48:49Z jmr@macports.org $

PortSystem          1.0

name                darktable
version             0.7.1
revision            3
categories          graphics
platforms           darwin
maintainers         gmail.com:julians37
license             GPL-3

description         Virtual lighttable and darkroom for photographers

long_description    Darktable is a virtual lighttable and darkroom for \
                    photographers: it manages your digital negatives in a \
                    database and lets you view them through a zoomable \
                    lighttable. It also enables you to develop raw images \
                    and enhance them.

homepage            http://darktable.sf.net/
master_sites        sourceforge

checksums           sha1    c0cb70f89ec5662f0eb3b38e7f4019235e93d5e4 \
                    rmd160  13ce9120dfe217e21795159a2f0eca34a9e495d6

depends_build       port:intltool \
                    port:pkgconfig
depends_lib         path:lib/pkgconfig/cairo.pc:cairo \
                    port:curl \
                    port:dbus-glib \
                    port:exiv2 \
                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    port:gtk2 \
                    port:gtk-engines2 \
                    port:jpeg \
                    port:lcms \
                    port:lensfun \
                    port:libglade2 \
                    port:libgphoto2 \
                    port:libpng \
                    port:librsvg \
                    port:openexr \
                    port:sqlite3 \
                    port:tiff

patchfiles          patch-src-common-exif.cc.diff patch-darktablerc.diff \
                    patch-src-iop-lens.c.diff patch-Werror.diff

configure.args-append   --disable-gconf --disable-gkeyring

if {[variant_isset no_x11]} {
    default_variants    +quartz
}

if {![variant_isset quartz]} {
    default_variants    +x11
}

pre-fetch {
    if {![variant_isset quartz] && ![variant_isset x11]} {
        error "Either +x11 or +quartz is required"
    }
}

pre-configure {
    if {[file exists ${prefix}/lib/gtk-2.0/include/gdkconfig.h]} {
        set gtk_not_quartz [catch {exec grep -q GDK_WINDOWING_QUARTZ ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
        set gtk_not_x11 [catch {exec grep -q GDK_WINDOWING_X11 ${prefix}/lib/gtk-2.0/include/gdkconfig.h}]
        if {[variant_isset quartz] && ${gtk_not_quartz}} {
            error "+quartz variant selected, but gtk2+x11 is installed"
        } elseif {[variant_isset x11] && ${gtk_not_x11}} {
            error "+x11 variant selected, but gtk2+quartz is installed"
        }
    } else {
            error "Cannot find gdkconfig.h"
    }
}

variant quartz requires no_x11 conflicts x11 gcc44 gcc45 {
}

variant x11 conflicts quartz description {Enable rendering in X11} {
}

variant no_x11 {
}

variant gcc44 conflicts gcc45 gcc46 quartz description {Build with GCC 4.4} {
    depends_lib-append  port:gcc44
    configure.compiler  macports-gcc-4.4
}

variant gcc45 conflicts gcc44 gcc46 quartz description {Build with GCC 4.5} {
    depends_lib-append  port:gcc45
    configure.compiler  macports-gcc-4.5
}

variant gcc46 conflicts gcc44 gcc45 description {Build with GCC 4.6} {
    depends_lib-append  port:gcc46

    configure.cc        ${prefix}/bin/gcc-mp-4.6
    configure.cxx       ${prefix}/bin/g++-mp-4.6
    configure.cpp       ${prefix}/bin/cpp-mp-4.6

    configure.cc_archflags
    configure.cxx_archflags
    configure.ld_archflags

    configure.universal_cflags
    configure.universal_cxxflags
    configure.universal_ldflags
    configure.universal_args

    patchfiles-append   patch-build-for-gcc46.diff
}

variant gconf description {build with gconf} {
    configure.args-delete   --disable-gconf
    configure.args-append   --enable-gconf
    depends_lib-append      port:gconf
}

variant gnome_keyring description {build with gnome-keyring} {
    configure.args-delete   --disable-gkeyring
    configure.args-append   --enable-gkeyring
    depends_lib-append      port:libgnome-keyring
}

livecheck.url       http://sourceforge.net/api/file/index/project-id/258690/rss
livecheck.regex     {darktable-([0-9.]+?).tar}
