# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           meson 1.0

name                libsigcxx3
set gname           libsigc++
version             3.6.0
revision            1

categories          devel
license             LGPL-2.1
maintainers         {devans @dbevans} {mascguy @mascguy} openmaintainer

description         Typesafe callback framework for C++
long_description    libsigc++ implements a typesafe callback system for standard C++. It allows \
                    you to define signals and to connect those signals to any callback function, \
                    either global or a member function, regardless of whether it is static or virtual. \
                    This is the libsigc++-3.0 API, which installs in parallel with libsigc++-2.0. \
                    The API is not significantly different, but the implementation is far simpler, \
                    using variadic templates instead of generating C++ code from .m4 filessystem.
homepage            https://libsigcplusplus.github.io/libsigcplusplus/

set branch          [join [lrange [split ${version} .] 0 1] .]
master_sites        gnome:sources/${gname}/${branch}/
distname            ${gname}-${version}
use_xz              yes

checksums           rmd160  50ef69891a4861f044c295ae885d07d22392aee0 \
                    sha256  c3d23b37dfd6e39f2e09f091b77b1541fbfa17c4f0b6bf5c89baef7229080e17 \
                    size    991392

# Disable unexpected download of subprojects
meson.wrap_mode     nodownload

set port_ver_major  [lindex [split ${version} .] 0]

depends_build-append \
                    port:pkgconfig \
                    port:mm-common \
                    port:m4 \
                    port:libxslt

# requires a compiler that supports C++17
compiler.cxx_standard 2017

# support for C++17 std::invoke_result in Apple clang requires Xcode 10 or better
compiler.blacklist-append \
                    {clang < 1000} macports-clang-3.* {macports-clang-[4-6].0}
compiler.fallback-append \
                    macports-clang-8.0 macports-clang-7.0

# powerpc platforms want to use macports-gcc-6
# C++17 support requires macports-gcc-7
compiler.blacklist-append \
                    macports-gcc-6
compiler.fallback-append \
                    macports-gcc-7

configure.perl      /usr/bin/perl
configure.env-append \
                    M4=${prefix}/bin/gm4

configure.args-append \
                    -Dbuild-deprecated-api=true \
                    -Dbuild-documentation=false

post-destroot {
    set docdir ${prefix}/share/doc/${gname}-3.0
    xinstall -d ${destroot}${docdir}
    xinstall -m 0644 -W ${worksrcpath} \
        COPYING ChangeLog NEWS README.md \
        ${destroot}${docdir}
}

livecheck.type      gnome
livecheck.name      ${gname}
livecheck.regex     "LATEST-IS-(${port_ver_major}\\.\\d*\[02468\](?:\\.\\d+)*)"
