# -*- 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
PortGroup           conflicts_build 1.0

github.setup        fmtlib fmt 4.1.0
name                libfmt4
revision            0
checksums           rmd160  12055cc529974ed146041de3bc5791263a0990bf \
                    sha256  46628a2f068d0e33c716be0ed9dcae4370242df135aed663a180b9fd8e36733d \
                    size    620863

categories          devel
license             MIT
maintainers         nomaintainer

description         an open-source formatting library
long_description    fmt (formerly cppformat) is an open-source formatting library. \
                    It can be used as a safe alternative to printf or as a fast \
                    alternative to C++ IOStreams.
homepage            https://fmt.dev

github.tarball_from archive

conflicts_build     gtest

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

#------------------------------------------------------------------------------
# Path-Related Variables - START
#------------------------------------------------------------------------------

# The "install name," meaning, the subdirectory name for this port.
# Should correspond to the major version.
set port_install_name \
                    ${subport}

# Define all of our base paths up-front
set port_install_include \
                    ${prefix}/include/${port_install_name}
set port_install_lib \
                    ${prefix}/lib/${port_install_name}

# Populate CMake options currently available
cmake.install_rpath \
                    ${port_install_lib}

configure.args-append \
                    -DCMAKE_INSTALL_INCLUDEDIR=${port_install_include} \
                    -DCMAKE_INSTALL_LIBDIR=${port_install_lib} \
                    -DCMAKE_INSTALL_NAME_DIR=${port_install_lib}

#------------------------------------------------------------------------------
# Path-Related Variables - END
#------------------------------------------------------------------------------

# tests, at least, fail if set to "MacPorts"
cmake.build_type    Release
cmake.generator     Ninja

compiler.cxx_standard   2011

# error: default initialization of an object of const type 'const Answer' without a user-provided default constructor
# error would be valid except Answer is empty
compiler.blacklist-append {clang < 801}

configure.args-append \
    -DBUILD_SHARED_LIBS=ON

# Obsolete port 'libfmt' causes clashes, so deactivate if installed
pre-activate {
    if {![catch {set installed [lindex [registry_active libfmt] 0]}]} {
        registry_deactivate_composite libfmt "" [list ports_nodepcheck 1]
    }
}

variant tests description "Enable testing" {
    test.run            yes
    configure.pre_args-replace  -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=ON \
                                -DCMAKE_BUILD_WITH_INSTALL_RPATH:BOOL=OFF
}

# TODO: Update pg 'github' to use this API
livecheck.url       https://api.github.com/repos/${github.author}/${github.project}/tags?per_page=200
livecheck.curloptions
livecheck.regex     "\"name\": \"(${port_ver_major}\.\[0-9\.\]+)\","
