# -*- 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

PortSystem      1.0
PortGroup       active_variants 1.1

name            claws-mail
version         4.4.0
revision        0
categories      mail news
license         GPL-3+
maintainers     nomaintainer

description     A lightweight and very featureful GTK+ based e-mail and news client

long_description \
                Currently, many features are supported in Claws Mail \
                including POP3, IMAP, NNTP, multiple accounts, \
                threading, filtering, MIME attachments, APOP, SMTP \
                AUTH, SSL, IPv6, GnuPG, internalization, plugins, \
                a filtering/processing mechanism, extra folder \
                properties and much more.

homepage        https://www.claws-mail.org
master_sites    ${homepage}/releases/

checksums       rmd160  e06f5ed11bf560885905023fa50a75fa02f1d77a \
                sha256  03e0549d5f0fcd7a59804186524105d05ebb5e534d42a4b86a9a90f729ca255b \
                size    6723204

use_xz          yes

depends_build   path:bin/pkg-config:pkgconfig \
                port:gettext

depends_lib     port:atk \
                path:lib/pkgconfig/cairo.pc:cairo \
                port:compface \
                port:curl \
                port:cyrus-sasl2 \
                port:enchant \
                port:expat \
                port:fontconfig \
                port:freetype \
                path:lib/pkgconfig/gdk-pixbuf-2.0.pc:gdk-pixbuf2 \
                port:gettext-runtime \
                path:lib/pkgconfig/glib-2.0.pc:glib2 \
                path:lib/pkgconfig/gnutls.pc:gnutls \
                port:gpgme \
                path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                port:gumbo-parser \
                path:lib/pkgconfig/harfbuzz.pc:harfbuzz \
                port:libarchive \
                port:libcanberra \
                port:libetpan \
                port:libgpg-error \
                port:libical \
                port:libiconv \
                port:libnotify \
                path:lib/pkgconfig/librsvg-2.0.pc:librsvg \
                port:nettle \
                port:openldap \
                path:lib/libssl.dylib:openssl \
                path:lib/pkgconfig/pango.pc:pango \
                path:lib/pkgconfig/poppler.pc:poppler \
                port:zlib

require_active_variants port:libcanberra gtk3

depends_run     port:bogofilter \
                port:ghostscript

# https://trac.macports.org/ticket/69665
patchfiles      patch-pdf-viewer.diff

if {${os.platform} eq "darwin" && ${os.major} < 12} {
    # the ld on older systems doesn't understand the -export_dynamic flag
    # see https://trac.macports.org/ticket/57673
    patchfiles-append   patch-claws-mail-no-export-dynamic-on-older-ld-versions.diff
}

post-patch {
    # C++ compilers think this is the <version> header
    # ../../../../version:1:1: error: unknown type name 'echo'
    delete ${worksrcpath}/version
    if {[variant_isset quartz]} {
        reinplace "s/HAVE_HOTKEYS=yes/HAVE_HOTKEYS=no/g" ${worksrcpath}/configure
    }
}

# litehtml_viewer plugin requires C++11
compiler.cxx_standard \
                2011

# https://trac.macports.org/wiki/WimplicitFunctionDeclaration#strchr
configure.checks.implicit_function_declaration.whitelist-append strchr

# override faulty check for C++ compiler
configure.env-append \
                REAL_CXX=${configure.cxx}

variant quartz conflicts x11 {
    require_active_variants path:lib/pkgconfig/gtk+-3.0.pc:gtk3 quartz
    configure.args-append   --disable-dillo-plugin \
                            --disable-libsm
}

variant x11 conflicts quartz {
    require_active_variants path:lib/pkgconfig/gtk+-3.0.pc:gtk3 x11
    depends_lib-append      port:xorg-libice \
                            port:xorg-libsm
}

if {![variant_isset quartz]} {
    default_variants +x11
}
if {![variant_isset x11]} {
    default_variants +quartz
}
if {![variant_isset quartz] && ![variant_isset x11]} {
    pre-configure {
        return -code error "Either +x11 or +quartz is required"
    }
}
