# -*- 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
PortGroup           legacysupport 1.1
legacysupport.newest_darwin_requires_legacy 18
legacysupport.use_mp_libcxx yes

# src/third_party/blake3/CMakeLists.txt checks CMAKE_SIZEOF_VOID_P
PortGroup           muniversal 1.0

github.setup        ccache ccache 4.11.3 v
revision            0
checksums           rmd160  bf6c3dfce80d0e4c3fc860c08026ceee4dc0f372 \
                    sha256  d5a340e199977b7b1e89c0add794132c977fdc2ecc7ca5451e03d43627a1b1be \
                    size    500700

categories          devel
platforms           darwin freebsd
license             GPL-3+
maintainers         {ryandesign @ryandesign} openmaintainer

description         object-file caching compiler wrapper

long_description \
    ccache is a compiler cache.  It acts as a caching pre-processor to C/C++ \
    compilers, using the -E compiler switch and a hash to detect when a \
    compilation can be satisfied from cache.  This often results in a 5 to 10 \
    times speedup in common compilations.

homepage            https://ccache.dev
github.tarball_from releases
use_xz              yes

platform darwin 8 {
    patchfiles-append  patch-ccache-no-posix-tiger.diff
}

compiler.c_standard 1999

compiler.cxx_standard \
                    2017

depends_build-append \
                    port:doctest \
                    bin:perl:perl5 \
                    path:bin/pkg-config:pkgconfig

depends_lib-append  port:hiredis \
                    port:xxhashlib \
                    port:zstd

# Do not use ccache to build this port unless MacPorts tells it to.
configure.args-append \
                    -DUSE_CCACHE=NO

# Use bundled copies of these dependencies that aren't in MacPorts (or, in the
# case of fmt, aren't in the standard location).
configure.args-append \
                    -DDEP_BLAKE3=BUNDLED \
                    -DDEP_CPPHTTPLIB=BUNDLED \
                    -DDEP_FMT=BUNDLED \
                    -DDEP_NONSTDSPAN=BUNDLED \
                    -DDEP_TLEXPECTED=BUNDLED

# Do not download other required dependencies that couldn't be found.
configure.args-append \
                    -DDEPS=LOCAL

configure.args-append -DENABLE_DOCUMENTATION=OFF

variant doc description {Enable documentation} {
    configure.args-replace -DENABLE_DOCUMENTATION=OFF -DENABLE_DOCUMENTATION=ON
    depends_build-append \
                    port:asciidoctor
    license_noconflict  asciidoctor
}

default_variants    +doc

test.run            yes
