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

github.setup            strophe libstrophe 0.14.0
revision                0

categories              net
license                 {GPL-3 MIT}
homepage                https://strophe.im/libstrophe
maintainers             {sethm.id.au:dev @McDaMastR} \
                        openmaintainer

description             A simple, lightweight C library for writing XMPP clients
long_description        libstrophe is a lightweight XMPP client library \
                        written in C.  It has minimal dependencies and is \
                        configurable for various environments.  It runs well \
                        on Linux, Unix, and Windows based platforms.

depends_build-append    path:bin/pkg-config:pkgconfig
depends_lib-append      port:expat

checksums               rmd160  820ae748741d122b0d25a38005ec0c567869586b \
                        sha256  8a7ebc274bd79fa4e5dfcfbf06123adbc9f70abd8bebf2843c2940e9086aeee0 \
                        size    415048

use_xz                  yes

configure.args-append   --disable-cares \
                        --disable-examples \
                        --enable-shared \
                        --disable-static \
                        --disable-tls \
                        --disable-valgrind \
                        --disable-zlib

post-destroot {
    set destdocdir  ${destroot}${prefix}/share/doc/${name}

    xinstall -d ${destdocdir}
    xinstall -W ${worksrcpath} -m 644 \
        AUTHORS \
        COPYING \
        ChangeLog \
        GPL-LICENSE.txt \
        LICENSE.txt \
        MIT-LICENSE.txt \
        README \
        ${destdocdir}

    if {[variant_isset doc]} {
        copy ${worksrcpath}/docs/html ${destdocdir}
    }
}

default_variants-append +cares +zlib

if {![variant_isset gnutls] && ![variant_isset openssl]} {
    default_variants-append +gnutls
}

variant cares \
        description {Use c-ares for DNS resolution} {
    depends_lib-append      port:c-ares
    configure.args-replace  --disable-cares --enable-cares
}

variant doc \
        description {Install HTML documentation} {
    depends_build-append    path:bin/doxygen:doxygen
    build.target-append     docs
}

variant gnutls \
        conflicts openssl \
        description {Use GnuTLS for TLS support} {
    depends_lib-append      port:gnutls
    configure.args-append   --with-gnutls
    configure.args-replace  --disable-tls --enable-tls
}

variant libxml \
        description {Use libxml2 for XML parsing} {
    depends_lib-replace     port:expat port:libxml2
    configure.args-append   --with-libxml2
}

variant openssl \
        conflicts gnutls \
        description {Use OpenSSL for TLS support} {
    PortGroup               openssl 1.0

    configure.args-append   --without-gnutls
    configure.args-replace  --disable-tls --enable-tls
}

variant test \
        description {Build tests} {
    # Tests require static library
    supported_archs         noarch

    configure.args-replace  --enable-shared --disable-shared
    configure.args-replace  --disable-static --enable-static

    test.run                yes
    test.target             check
}

variant zlib \
        description {Use zlib for compression support} {
    depends_lib-append      port:zlib
    configure.args-replace  --disable-zlib --enable-zlib
}
