# -*- 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
PortGroup               openssl 1.0

github.setup            ngtcp2 ngtcp2 1.10.0 v
revision                0
categories              net devel
maintainers             {@barracuda156 gmail.com:vital.had} openmaintainer
license                 MIT
description             ${name} project is an effort to implement RFC9000 QUIC protocol
long_description        {*}${description}
homepage                https://nghttp2.org/ngtcp2
checksums               rmd160  07f2542064f51f954dc6d4275a228ba71e3bf8cf \
                        sha256  4f8dc1d61957205d01c3d6aa6f1c96c7b2bac1feea71fdaf972d86db5f6465df \
                        size    636296
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

variant picotls description "Enable PicoTLS" {
    depends_lib-append  port:picotls
    configure.args-append \
                        --with-picotls=yes
    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
