# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           active_variants 1.1
PortGroup           compiler_blacklist_versions 1.0
PortGroup           gobject_introspection 1.0

name                evince
version             3.28.2
revision            1
license             GPL-2+
set branch          [join [lrange [split ${version} .] 0 1] .]
description         Evince is a document viewer for multiple document formats like pdf, and many others.
long_description    ${description}
maintainers         {devans @dbevans} openmaintainer
categories          gnome print
platforms           darwin
homepage            https://wiki.gnome.org/Apps/Evince
master_sites        gnome:sources/${name}/${branch}/

use_xz              yes

checksums           rmd160  74ab8a732463ea3da4984534888dc44aaf6ab0e5 \
                    sha256  0955d22d85c9f6d322b6cbb464f1cc4c352db619017ec95dad4cc5c3440f73e1 \
                    size    3379552

depends_build       port:pkgconfig \
                    port:intltool \
                    port:itstool \
                    port:yelp-tools \
                    port:gnome-common \
                    port:gtk-doc \
                    port:autoconf \
                    port:automake \
                    port:libtool

depends_lib         port:desktop-file-utils \
                    port:adwaita-icon-theme \
                    port:gdk-pixbuf2 \
                    port:gtk3 \
                    port:libxml2 \
                    port:libsecret \
                    port:gsettings-desktop-schemas \
                    port:poppler \
                    port:libarchive \
                    port:libspectre \
                    port:tiff \
                    port:texlive-bin

gobject_introspection yes

# blacklist old compilers that do not support gcc diagnostic pragmas in functions
compiler.blacklist  *gcc* {clang < 300}

patchfiles          patch-browser-plugin-Makefile.am.diff \
                    dvi-backend.patch \
                    dont-use-ar-crD.patch

# reconfigure using upstream autogen.sh for intltool 0.51 compatibility

post-patch {
    xinstall -m 755 ${filespath}/autogen.sh ${worksrcpath}
}

configure.cmd       ./autogen.sh

configure.args      --disable-schemas-compile \
                    --disable-silent-rules \
                    --disable-djvu \
                    --disable-xps \
                    --disable-multimedia \
                    --disable-nautilus \
                    --disable-libgnome-desktop \
                    --enable-compile-warnings=minimum \
                    --disable-debug \
                    --enable-ps \
                    --enable-pdf \
                    --enable-tiff \
                    --enable-dvi \
                    --enable-comics \
                    --disable-t1lib

# browser plugin requires -std=c++11 -stdlib=libc++
# disable plugin if libc++ is not configured
# browser plugin uses gtk_plug_new which is only available with gtk3 +x11
# disable plugin if variant +quartz is set

if {${configure.cxx_stdlib} ne "libc++" || [variant_isset quartz]} {
    configure.args-append   --disable-browser-plugin
}

variant quartz {}

if {[variant_isset quartz]} {
    require_active_variants gtk3 quartz
} else {
    require_active_variants gtk3 x11
    depends_run-append      port:yelp

# enable gnome-desktop thumbnail cache

    depends_lib-append      port:gnome-desktop
    configure.args-replace  --disable-libgnome-desktop --enable-libgnome-desktop
}

variant djvu description {Support for djvu documents using djvulibre} {
    configure.args-replace --disable-djvu --enable-djvu
    depends_lib-append port:djvulibre
}

variant multimedia description {Build optional multimedia support using Gstreamer} {
    configure.args-replace  --disable-multimedia --enable-multimedia
    depends_lib-append      port:gstreamer1 \
                            port:gstreamer1-gst-plugins-base
}

variant nautilus conflicts quartz description {Build optional nautilus extensions} {
    configure.args-replace  --disable-nautilus --enable-nautilus
    depends_lib-append      port:nautilus
}

post-activate    {
    system "${prefix}/bin/gtk-update-icon-cache-3.0 -f -t ${prefix}/share/icons/hicolor"
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}

livecheck.type      gnome