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

name                jack
github.setup        jackaudio jack2 1.9.22 v
revision            1
checksums           rmd160  1f13a7ac5020d95b5b51f1c43d7cfe3507e7b8b0 \
                    sha256  1e42b9fc4ad7db7befd414d45ab2f8a159c0b30fcd6eee452be662298766a849 \
                    size    933448

categories          audio
maintainers         nomaintainer
license             GPL-2+ LGPL-2.1+

description         JACK Audio Connection Kit
long_description    \
    JACK (JACK Audio Connection Kit) refers to an API and two implementations \
    of this API, jack1 and jack2. It provides a basic infrastructure for audio \
    applications to communicate with each other and with audio hardware. \
    Through JACK, users are enabled to build powerful systems for signal \
    processing and music production.

homepage            https://jackaudio.org
github.tarball_from archive

platform darwin {
    if {${os.major} < 12} {
        patchfiles  MacTypes.diff
    }
}

compiler.blacklist-append \
                    *gcc-3.* *gcc-4.*

# Fix build failures for 10.12/10.13, with Xcode Clang 9.x:
#   error: static_assert failed "fCounter must be aligned within JackAtomicState"
# See: https://trac.macports.org/ticket/66681
compiler.blacklist-append \
                    {clang >= 900 < 1000}

compiler.cxx_standard \
                    2011

# This won't be needed after the next update
# see: https://github.com/jackaudio/jack2/issues/898#issuecomment-2185323342
patchfiles-append   patch-waflib-Context.py.diff

waf.python_branch   3.12

depends_build-append \
                    port:pkgconfig

depends_lib         port:libsamplerate \
                    port:libsndfile \
                    port:aften

configure.post_args-delete --nocache

configure.args      --doxygen=no \
                    --alsa=no \
                    --firewire=no \
                    --iio=no \
                    --portaudio=no \
                    --winmme=no \
                    --celt=no \
                    --opus=no \
                    --samplerate=yes \
                    --db=no

platform darwin {
    if {[string match *clang* ${configure.compiler}] && ${configure.cxx_stdlib} ne ""} {
        configure.ldflags-append -stdlib=${configure.cxx_stdlib}
    }
}
