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

name                psi
version             1.5
revision            0
categories          net chat
maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
description         jabber-based instant messaging client
long_description    Psi is a capable Jabber client aimed at experienced users. \
                    Its design goals are simplicity and stability.
license             GPL-2+

homepage            https://psi-im.org
master_sites        sourceforge
use_xz              yes

checksums           rmd160  fbea608528f90d90b3acf76014e1a6312e39d340 \
                    sha256  3167350fd43fab4dc948cb5179ca10159a7aa318472d1a8a7617e41f5aa8b5b7 \
                    size    2125104

compiler.cxx_standard   2011

configure.args      --bindir=${applications_dir} \
                    --disable-growl \
                    --disable-xss \
                    --enable-webkit

pre-configure {
    configure.args-append \
                    --qtdir=${qt_dir}
}

patchfiles-append    patch-qt4-compat.diff
if {${os.major} < 13} {
    patchfiles-append \
                     patch-os-compat.diff
}
if {${os.major} > 17} {
    patchfiles-append \
                     patch-xcode11.diff
}

depends_lib-append   port:libidn \
                     port:minizip \
                     port:zlib

post-destroot {
    # install themes (see end of src/src.pro)
    copy ${worksrcpath}/themes ${destroot}${applications_dir}/psi.app/Contents/Resources
}

# Currently, the qconf build system does not work well the the MacPorts system.
# For now, use the extraconf configure argument for bare minimum configuration.
# Further research is required.
universal_variant    no

# Qt provides it's own optimization flag
configure.optflags

# FIXME: older systems need a fix-up: https://github.com/psi-im/psi/issues/719

variant qt4 conflicts qt5 description "build Qt4 version of ${name}" {
    PortGroup qt4 1.0

    depends_lib-append \
                    port:qca

    pre-configure {
        # port requires C++11 compiler
        # see https://trac.macports.org/ticket/57684
        set extra_conf "
            QMAKE_CXX=${configure.cxx}
            QMAKE_LINK=${configure.cxx}
            QMAKE_CXXFLAGS+=\\\"${configure.cxxflags}\\\"
            QMAKE_LFLAGS+=\\\"${configure.cxxflags}\\\"
        "
        configure.args-append --extraconf="${extra_conf}"
    }
}

variant qt5 conflicts qt4 description "build Qt5 version of ${name}" {
    PortGroup qt5 1.0

    depends_lib-append \
                    port:qca-qt5

    qt5.depends_component \
                    qtmultimedia \
                    qtwebengine

    pre-configure {
    # avoid crash at startup (allow psi to look for MacPorts Qt plugins)
        set extra_conf "
        QMAKE_CXXFLAGS+=-DALLOW_QT_PLUGINS_DIR
    "
        configure.args-append --extraconf="[join ${extra_conf} \n]"
    }
}

# somewhat arbitrary boundary for Qt versions
if { ![variant_isset qt4] && ![variant_isset qt5] } {
    if {${os.major} >= 14 || ${os.platform} ne "darwin"} {
        default_variants-append +qt5
    } else {
        default_variants-append +qt4
    }
}
