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

# CLOCK_MONOTONIC
legacysupport.newest_darwin_requires_legacy 15

github.setup        Mbed-TLS mbedtls 3.6.2 mbedtls-
name                mbedtls3
revision            0

conflicts           mbedtls

categories          devel
license             Apache-2
maintainers         {mps @Schamschula} openmaintainer
description         An open source, portable, easy to use, readable and flexible SSL \
                    library.
long_description    {*}${description}
platforms           darwin

homepage            https://tls.mbed.org
github.tarball_from releases
# https://github.com/Mbed-TLS/mbedtls/releases/download/mbedtls-3.6.1/mbedtls-3.6.1.tar.bz2

use_bzip2           yes

checksums           rmd160  83d3fc5aca55743890d66f5980c59be258565264 \
                    sha256  8b54fb9bcf4d5a7078028e0520acddefb7900b3e66fec7f7175bb5b7d85ccdca \
                    size    4979769

variant python38 conflicts python39 python310 python311 python312 description {Use Python 3.8} {}
variant python39 conflicts python38 python310 python311 python312 description {Use Python 3.9} {}
variant python310 conflicts python38 python39 python311 python312 description {Use Python 3.10} {}
variant python311 conflicts python38 python39 python310 python312 description {Use Python 3.11} {}
variant python312 conflicts python38 python39 python310 python311 description {Use Python 3.12} {}

if {![variant_isset python38] && ![variant_isset python39] && ![variant_isset python310] && ![variant_isset python311]} {
    default_variants +python312
}

foreach pv {312 311 310 39 38} {
    if {[variant_isset python${pv}]} {
        set python.branch "[string index ${pv} 0].[string range ${pv} 1 end]"
        depends_build-append \
                    port:python${pv} \
                    port:py${pv}-jsonschema

        break
    }
}

depends_build-append \
                    port:perl5

patchfiles          patch-CMakeLists.txt.diff

# library/bignum.c:1435:9: error: cannot compile this unexpected cast lvalue yet
# For related discussion see https://trac.macports.org/ticket/62185
compiler.blacklist-append {clang < 900}

configure.args-append \
                    -DENABLE_TESTING=OFF \
                    -DPERL_EXECUTABLE=${prefix}/bin/perl \
                    -DMBEDTLS_PYTHON_EXECUTABLE:FILEPATH=${prefix}/bin/python${python.branch} \
                    -DUSE_SHARED_MBEDTLS_LIBRARY=ON \
                    -DMBEDTLS_FATAL_WARNINGS=OFF

# error: /usr/bin/ranlib: unknown option character `n' in: -no_warning_for_no_symbols
# see: https://trac.macports.org/ticket/60762
if {${os.platform} eq "darwin" && ${os.major} < 13} {
    depends_build-append \
                    port:cctools
    configure.args-append \
                    -DCMAKE_RANLIB=${prefix}/bin/ranlib
}

#test currently broken (can't find exisiting file path)
#test.run            yes

github.livecheck.regex  {(3\.\d+(\.\d+)?(?!a))}
