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

github.setup        ericniebler range-v3 0.12.0
# Change github.tarball_from to 'releases' or 'archive' next update
github.tarball_from tarball
homepage            https://ericniebler.github.io/range-v3
categories          devel
maintainers         nomaintainer
license             MIT
platforms           any
supported_archs     noarch

description         Range library for C++14/17/20, basis for C++20's std::ranges.
long_description    \
    Range library for C++14/17/20. This code was the basis of a formal \
    proposal to add range support to the C++ standard library. That proposal \
    evolved through a Technical Specification, and finally into P0896R4 \
    "The One Ranges Proposal" which was merged into the C++20 working drafts \
    in November 2018. Ranges are an extension of the Standard Template Library \
    that makes its iterators and algorithms more powerful by making them \
    composable. Unlike other range-like solutions which seek to do away \
    with iterators, in range-v3 ranges are an abstraction layer on top \
    of iterators. Range-v3 is built on three pillars: Views, Actions \
    and Algorithms. The algorithms are the same as those with which you are \
    already familiar in the STL, except that in range-v3 all the algorithms \
    have overloads that take ranges in addition to the overloads that take \
    iterators. Views are composable adaptations of ranges where \
    the adaptation happens lazily as the view is iterated. And an action \
    is an eager application of an algorithm to a container that mutates \
    the container in-place and returns it for further processing. \
    Views and actions use the pipe syntax (e.g., rng | adapt1 | adapt2 | ...) \
    so your code is terse and readable from left to right. Development Status: \
    This code is fairly stable, well-tested, and suitable for casual use, \
    although currently lacking documentation. In general, no promise is made \
    about support or long-term stability. This code will evolve without regard \
    to backwards compatibility

checksums           rmd160  8c4f5dcba75e49971c6b552ddd3dcbf77b46a27f \
                    sha256  031ae9eb136f1aef7ea8f915b75c278242906d5ff0d44acf3b7c9d4c012fb61b \
                    size    582856

patchfiles fix_include_dir.diff

compiler.blacklist-append {clang < 900}
compiler.cxx_standard 2014

depends_build-append path:bin/doxygen:doxygen

# warnings have to be ignored until this issue is relolved :
# https://github.com/ericniebler/range-v3/issues/1685
configure.args-append -DRANGES_HAS_WERROR=0

test.run            yes
test.cmd            ctest
