# -*- 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           active_variants 1.1
PortGroup           legacysupport 1.1

# Availability.h
legacysupport.newest_darwin_requires_legacy 8

name                hwloc
version             2.12.2
set branch          [join [lrange [split ${version} .] 0 [llength [split ${version} .] ]-2 ] .]
revision            1
epoch               1
categories          devel
maintainers         {i0ntempest @i0ntempest} openmaintainer
description         Portable Hardware Locality
license             BSD

long_description \
    The Portable Hardware Locality (hwloc) software package provides a \
    portable abstraction (across OS, versions, architectures, ...) of \
    the hierarchical topology of modern architectures, including NUMA \
    memory nodes, sockets, shared caches, cores and simultaneous \
    multithreading.

homepage            https://www.open-mpi.org/projects/hwloc/
master_sites        https://www.open-mpi.org/software/hwloc/v${branch}/downloads/

checksums           rmd160  da945a71aebd13eea55c35a23fea093a3b8a32ef \
                    sha256  ff7d309fdff7ceddfe15c1e79eaff25f3126a134f29f44d4e85571f187a6bab8 \
                    size    6185554

depends_build       path:bin/pkg-config:pkgconfig
depends_lib-append  port:libxml2 \
                    port:ncurses

configure.args      --without-x \
                    --disable-cairo \
                    --disable-cuda \
                    --disable-opencl

configure.checks.implicit_function_declaration.whitelist-append strchr

test.run            yes
test.target         check

livecheck.type      regex
livecheck.regex     "${name} (\[0-9.\]+)"

variant cuda description {Enable CUDA support} {
    configure.args-replace  --disable-cuda --enable-cuda
}

variant opencl description {Enable OpenCL support} {
    configure.args-replace  --disable-opencl --enable-opencl
}

variant gui description {Add graphical output capability} {
    depends_lib-append      path:bin/openssl:openssl \
                            path:lib/pkgconfig/cairo.pc:cairo \
                            port:xorg-libice \
                            port:xorg-libsm \
                            port:xorg-libX11
    require_active_variants path:lib/pkgconfig/cairo.pc:cairo x11
    configure.args-replace  --without-x --with-x
    configure.args-replace  --disable-cairo --enable-cairo
    configure.args-append   --x-includes=${prefix}/include/X11 \
                            --x-libraries=${prefix}/lib
}

notes {
  * GUI support is now disabled by default. It can be enabled via variant gui.
  * OpenCL and CUDA support is now disabled by default. It can be enabled by variants\
  opencl and cuda, respectively.
}
