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

github.setup        yhirose cpp-httplib 0.51.0 v
revision            0
categories          devel net
license             MIT
maintainers         nomaintainer

description         C++11 single-file HTTP/HTTPS library
long_description    \
    ${name} is a C++11 single-file header-only cross platform HTTP/HTTPS \
    library. This port also builds and installs the optional compiled \
    library variant.

checksums           rmd160  b7d74f38563876280653a6a47b8f0d400058095b \
                    sha256  d740ced75352f44e9d66d08806dc231b5621bb3592b5a5d5b2bd890a9a9d86cc \
                    size    1905553
github.tarball_from archive

patchfiles-append   fix-header-order.patch

set py_ver          314
set py_branch       [string index ${py_ver} 0].[string range ${py_ver} 1 end]

depends_build-append \
                    path:bin/pkg-config:pkgconfig \
                    port:python${py_ver}

cmake.build_type    Release

compiler.cxx_standard \
                    2011

configure.args-append \
                    -DBUILD_SHARED_LIBS=ON \
                    -DHTTPLIB_COMPILE=ON \
                    -DHTTPLIB_REQUIRE_BROTLI=OFF \
                    -DHTTPLIB_REQUIRE_MBEDTLS=OFF \
                    -DHTTPLIB_REQUIRE_OPENSSL=OFF \
                    -DHTTPLIB_REQUIRE_WOLFSSL=OFF \
                    -DHTTPLIB_REQUIRE_ZLIB=OFF \
                    -DHTTPLIB_REQUIRE_ZSTD=OFF \
                    -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=OFF \
                    -DHTTPLIB_USE_MBEDTLS_IF_AVAILABLE=OFF \
                    -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=OFF \
                    -DHTTPLIB_USE_WOLFSSL_IF_AVAILABLE=OFF \
                    -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=OFF \
                    -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=OFF \
                    -DPython3_EXECUTABLE=${prefix}/bin/python${py_branch}

# https://github.com/yhirose/cpp-httplib/issues/2378
if {${os.platform} eq "darwin" && ${os.major} < 12} {
    configure.args-append \
                    -DHTTPLIB_DISABLE_MACOSX_AUTOMATIC_ROOT_CERTIFICATES=ON \
                    -DHTTPLIB_USE_NON_BLOCKING_GETADDRINFO=OFF
}

variant brotli description "Enable brotli support" {
    depends_lib-append \
                    port:brotli

    configure.args-replace \
                    -DHTTPLIB_REQUIRE_BROTLI=OFF -DHTTPLIB_REQUIRE_BROTLI=ON \
                    -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=OFF -DHTTPLIB_USE_BROTLI_IF_AVAILABLE=ON
}

variant openssl description "Enable OpenSSL support" {
    PortGroup       openssl 1.0

    configure.args-replace \
                    -DHTTPLIB_REQUIRE_OPENSSL=OFF -DHTTPLIB_REQUIRE_OPENSSL=ON \
                    -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=OFF -DHTTPLIB_USE_OPENSSL_IF_AVAILABLE=ON
}

variant zlib description "Enable zlib support" {
    depends_lib-append \
                    port:zlib

    configure.args-replace \
                    -DHTTPLIB_REQUIRE_ZLIB=OFF -DHTTPLIB_REQUIRE_ZLIB=ON \
                    -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=OFF -DHTTPLIB_USE_ZLIB_IF_AVAILABLE=ON
}

variant zstd description "Enable zstd support" {
    depends_lib-append \
                    port:zstd

    configure.args-replace \
                    -DHTTPLIB_REQUIRE_ZSTD=OFF -DHTTPLIB_REQUIRE_ZSTD=ON \
                    -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=OFF -DHTTPLIB_USE_ZSTD_IF_AVAILABLE=ON
}

default_variants    +openssl +zlib +zstd

github.livecheck.regex  {([0-9.]+)}
