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

# Just wrappers
legacysupport.newest_darwin_requires_legacy 0

github.setup            mmp pbrt-v3 aaa552a4b9cbf9dccb71450f47b268e0ed6370e2
name                    pbrt3
version                 20200626
revision                5
homepage                https://www.pbrt.org

categories              graphics
license                 BSD
maintainers             {mcalhoun @MarcusCalhoun-Lopez} openmaintainer

description             a photorealistic rendering system
long_description        Source code for pbrt, the renderer described in the third edition of \
                        \"Physically Based Rendering: From Theory To Implementation\", \
                        by Matt Pharr, Wenzel Jakob, and Greg Humphreys.

checksums               rmd160  8bcc6906c09e6a7e03214969a10f7436355017f5 \
                        sha256  042ff86b9307828ecde5d7d9428ba92376dad692990b84ad3e30138f9519506e \
                        size    1924107
github.tarball_from     tarball

compiler.cxx_standard   2011

conflicts               pbrt2

patchfiles-append       patch-CMakeLists.txt.diff

depends_build-append    path:bin/pkg-config:pkgconfig

depends_lib-append      port:google-glog \
                        port:openexr \
                        port:ptex \
                        port:zlib

# pbrt(35824) malloc: *** error for object 0x9d5a60: pointer being freed was not allocated
legacysupport.redirect_bins bsdftest cyhair2pbrt imgtool pbrt

# ___atomic_compare_exchange_8, ___atomic_fetch_add_8, ___atomic_load_8, ___atomic_store_8
if {[string match *gcc* ${configure.compiler}] && ${configure.build_arch} in [list arm i386 ppc]} {
    configure.ldflags-append \
                        -latomic
}
