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

name                kitlist
version             2.0.0
revision            1
categories          office pim
maintainers         {@frankdean fdsd.co.uk:frank.dean} openmaintainer
license             GPL-3+

description         List manager for managing kit
long_description    Kitlist allows you to maintain lists of kit that you may require \
                    for activities such as a vacation, business trip or expedition. Items \
                    can be associated with one or more categories. By combining categories, \
                    an initial list for a trip can be quickly created, then refined.

homepage            https://www.fdsd.co.uk/kitlist
master_sites        ${homepage}/source/

checksums           rmd160  cd42e2d2a38454e737301dfdaaefb502590fccb4 \
                    sha256  7fb24154418892b2a2560e2d2be360a79257f8b8e569c8642df76ba5a1b562e1 \
                    size    420450

# Upstream fixes:
# https://github.com/macports/macports-ports/pull/33461
patchfiles          patch-fix-ftxui.diff \
                    patch-fix-wx.diff

depends_build-append \
                    port:autoconf-archive \
                    path:bin/pkg-config:pkgconfig

depends_lib-append  port:pugixml

use_autoreconf      yes
autoreconf.args     --force --install --replace-handwritten --verbose

compiler.cxx_standard   2020

configure.args-append \
                    --disable-silent-rules \
                    --without-gui

# Just to avoid polluting with unnecessary warnings, the build still works fine without the flag.
if {[string match *clang* ${configure.compiler}]} {
    configure.cxxflags-append \
                    -Wno-writable-strings
} elseif {[string match *gcc* ${configure.compiler}]} {
    configure.cxxflags-append \
                    -Wno-write-strings
}

variant gui description "Build wx-based GUI" {
    wxWidgets.use   wxGTK-3.2

    depends_lib-append \
                    port:${wxWidgets.port}
    depends_run-append \
                    port:desktop-file-utils

    configure.args-append \
                    --with-wxdir=${wxWidgets.wxdir}
    configure.args-delete \
                    --without-gui

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

variant tui description "Build FTXUI-based interface" {
    depends_lib-append \
                    port:FTXUI

    configure.args-append \
                    --with-ftxui
}

default_variants +gui +tui

if [variant_isset gui] {
    # wxGTK requires this.
    PortGroup       legacysupport 1.1

    legacysupport.redirect_bins ${name}
}
