# -*- 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           gobject_introspection 1.0
PortGroup           cmake 1.1
PortGroup           legacysupport 1.0

name                poppler
version             21.12.0
revision            0

# version             20.12.1
# revision            3

conflicts           xpdf-tools
license             GPL-2+
maintainers         {devans @dbevans} openmaintainer
categories          graphics
platforms           darwin
homepage            https://poppler.freedesktop.org/

description         Poppler is a PDF rendering library based on the xpdf-3.0 code base.
long_description    {*}${description}

master_sites        ${homepage} \
                    gentoo

use_xz              yes

checksums           rmd160  5dc9cef56e09a82dae82d30c6be63d374eae9a53 \
                    sha256  acb840c2c1ec07d07e53c57c4b3a1ff3e3ee2d888d44e1e9f2f01aaf16814de7 \
                    size    1798780

# checksums           rmd160  83955e916df329edc3ccbc394778ca80ccacaa2a \
#                     sha256  d0aa2586c0a4296c775f0d2045f28bb95a694113fc995f95350faa12930f7b35 \
#                     size    1660164

depends_build-append \
                    port:pkgconfig

depends_lib-append  port:bzip2 \
                    port:curl \
                    port:expat \
                    port:fontconfig \
                    port:freetype \
                    path:include/turbojpeg.h:libjpeg-turbo \
                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    path:lib/pkgconfig/cairo.pc:cairo \
                    port:lcms2 \
                    port:libiconv \
                    port:libpng \
                    port:nss \
                    port:openjpeg \
                    port:poppler-data \
                    port:tiff \
                    port:zlib

# remove top-level paths, such that internal headers and
# libraries are used instead of any already-installed ones.
configure.ldflags-delete -L${prefix}/lib
configure.cppflags-delete -I${prefix}/include

configure.ldflags-append -liconv
gobject_introspection yes

compiler.cxx_standard 2014
compiler.c_standard 1999
compiler.thread_local_storage yes

# patchfiles-append   patch-check-boost.diff

# https://trac.macports.org/ticket/57167
# patchfiles-append   patch-trac-57167.diff
# 
# match clang, not streual
# patchfiles-append   patch-cmake_modules_PopplerMacros.cmake.diff
# 
# fix header include path ordering for gobject-introspection call to
# be source / build first, then system, as best can be determined
# patchfiles-append   patch-glib_CMakeFiles.txt-fix-include-ordering.diff

configure.args-append \
                    -DENABLE_UNSTABLE_API_ABI_HEADERS=ON \
                    -DENABLE_QT5=OFF \
                    -DENABLE_QT6=OFF \
                    -DBUILD_GTK_TESTS=OFF \
                    -DBUILD_QT5_TESTS=OFF \
                    -DBUILD_QT6_TESTS=OFF \
                    -DBUILD_CPP_TESTS=OFF \
                    -DWITH_NSS3=ON \
                    -DUSE_BOOST_HEADERS=OFF

# Poppler cmake doesn't understand build type "MacPorts"; use release unless +debug is set
if {[variant_isset debug]} {
    cmake.build_type Debug
} else {
    cmake.build_type Release
}

variant boost description "Use Boost when building the Splash graphics backend" {
    PortGroup boost 1.0

    configure.args-replace  -DUSE_BOOST_HEADERS=OFF \
                            -DUSE_BOOST_HEADERS=ON
}
default_variants-append +boost

subport poppler-qt5 {
    PortGroup qt5 1.0

    qt5.min_version         5.5.0

    configure.env-append    MOCQT5=${qt_bins_dir}/moc
    configure.args-delete   -DENABLE_QT5=OFF
    configure.args-delete   -DENABLE_XPDF_HEADERS=ON
    configure.args-append   -DENABLE_UTILS=OFF
    configure.args-append   -DENABLE_CPP=OFF
    configure.args-append   -DENABLE_GLIB=OFF

    post-destroot {
        file delete ${destroot}${prefix}/lib/pkgconfig/poppler-cairo.pc
    }
}

if {${subport} ne ${name}} {
    depends_extract-append  port:git

    depends_lib-append      port:poppler

    post-extract {
        system -W ${workpath} "${prefix}/bin/git clone --depth=1 https://anongit.freedesktop.org/git/poppler/test"
    }

# currently poppler only provides unit tests for the Qt wrappers

    test.run    yes
    test.dir    test
    test.target test

    post-destroot {
        foreach dot_h [glob -nocomplain -directory ${destroot}${prefix}/include/poppler *.h] {
            delete $dot_h
        }
        foreach libpoppler [glob -nocomplain ${destroot}${prefix}/lib/libpoppler.*] {
            delete ${libpoppler}
        }
        delete  ${destroot}${prefix}/include/poppler/fofi \
                ${destroot}${prefix}/include/poppler/goo \
                ${destroot}${prefix}/include/poppler/splash \
                ${destroot}${prefix}/lib/pkgconfig/poppler-splash.pc \
                ${destroot}${prefix}/lib/pkgconfig/poppler.pc
    }
}

livecheck.type      regex
livecheck.url       ${homepage}releases.html
livecheck.regex     "${name}-(\\d+(?:\\.\\d+)*)${extract.suffix}"
