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

# MacPorts diverged a bit in https://github.com/macports/macports-ports/pull/29376
github.setup            ngtcp2 ngtcp2 1.23.0 v
revision                0
categories              net devel
maintainers             {@barracuda156 macos-powerpc.org:barracuda} openmaintainer
license                 MIT
description             ${name} project is an effort to implement RFC9000 QUIC protocol
long_description        {*}${description}
homepage                https://nghttp2.org/ngtcp2
checksums               rmd160  640222e20c29b3d84d1a2d4147441f650d1dcb94 \
                        sha256  59d5b4211e96970f2d3d5e6876f73dce03414800ba04aa56835b132fce8de730 \
                        size    708136
github.tarball_from     releases

use_xz                  yes

depends_build-append    path:bin/pkg-config:pkgconfig

# Notice, QUIC via OpenSSL is unsupported presently:
# https://github.com/ngtcp2/ngtcp2/issues/1034
# Other dependencies are only used for examples:
# https://github.com/ngtcp2/ngtcp2/issues/1129
depends_lib-append      path:lib/pkgconfig/gnutls.pc:gnutls

compiler.cxx_standard   2017

configure.args-append   --disable-silent-rules \
                        --enable-lib-only=yes \
                        --enable-werror=no \
                        --with-gnutls=yes \
                        --with-openssl=no

variant picotls description "Enable PicoTLS" {
    PortGroup           openssl 1.0

    depends_lib-append  port:picotls
    configure.args-append \
                        --with-picotls=yes
    configure.args-delete \
                        --with-openssl=no
    configure.cppflags-append \
                        -I${prefix}/include/picotls
    configure.ldflags-append \
                        -lpicotls-core -lpicotls-minicrypto -lpicotls-openssl
}

# Do not force build examples:
# https://github.com/ngtcp2/ngtcp2/issues/804
variant examples description "Build examples" {
    depends_lib-append  port:brotli \
                        port:libev \
                        port:nghttp3
    if {(${os.platform} eq "darwin" && ${os.major} > 9) || \
        ${os.platform} ne "darwin"} {
        # https://trac.macports.org/ticket/65945
        depends_lib-append \
                        path:lib/pkgconfig/jemalloc.pc:jemalloc
    }

    compiler.cxx_standard \
                        2020
    configure.args-append \
                        --with-libbrotlidec=yes \
                        --with-libbrotlienc=yes
    configure.args-delete \
                        --enable-lib-only=yes
}

test.run                yes
test.target             check
