# -*- 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        rvarago kitten f45705bc3026551c702b05281cee940b51511dc1
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
version             2020.04.05
revision            0
categories          devel
platforms           any
license             MIT
maintainers         {@barracuda156 gmail.com:vital.had} openmaintainer
description         A small C++17 library inspired by Category Theory.
long_description    This is a small header-only library with some machinery \
                    meant to extend the already great STL with some concepts \
                    obtained from Category Theory, such as functors and monads, \
                    in order to make the composition of some C++ type constructors \
                    even simpler.
checksums           rmd160  b20d043f1ef2200ba31b8d24c4419b09e4e29136 \
                    sha256  bb0c6a3d6fb45c6c8260a2f2ce90beae0749c9cdd428cc6f48fe9e4cfb8e0f4a \
                    size    14289

patch.pre_args-replace  -p0 -p1
patchfiles          0001-Fix-catch2-includes.patch \
                    0002-Fix-for-missing-_main-on-macOS.patch \
                    0003-tests-CMakeLists.txt-use-C-17.patch

compiler.cxx_standard   2017

configure.args-append \
                    -DBUILD_TESTS=OFF

variant test description "Build tests" {
    depends_build-append \
                    port:catch2
    depends_test-append \
                    port:catch2

    configure.args-replace \
                    -DBUILD_TESTS=OFF -DBUILD_TESTS=ON

    test.run        yes
    test.cmd        ctest
}

if {![string match *clang* ${configure.compiler}]} {
    # Tests do not build with Clang at the moment.
    # https://github.com/rvarago/kitten/issues/34
    default variants +test
} else {
    supported_archs noarch
}
