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

github.setup        glfw glfw 3.5.1
revision            0
epoch               1
categories          graphics
platforms           darwin macosx
license             zlib
maintainers         {michaelld @michaelld} \
                    {@barracuda156 macos-powerpc.org:barracuda} \
                    openmaintainer
homepage            https://www.glfw.org
description         GLFW is a free, open-source, portable library for OpenGL \
                    and OpenGL ES application development
long_description    {*}${description}. \
                    This port follows the release version of GLFW.
conflicts           ${name}-devel

        checksums   rmd160  8a810766f209f16bc90795e46463ba3b51d8c243 \
                    sha256  5234f4f29473e9a06bc7847d8371858dd135d38466eeeaa652fdc9f8f9ff0c20 \
                    size    914248
github.tarball_from archive

compiler.c_standard     2011
compiler.cxx_standard   2011
# <stdatomic.h> support was introduced in Xcode 7.0
compiler.blacklist-append {clang < 700}

patch.pre_args-replace  -p0 -p1

# patch to fix install directory for cmake files and docs
patchfiles-append   patch-CMakeLists.txt.release.diff

if {${os.platform} eq "darwin" && ${os.major} < 16} {
    patchfiles-append \
        0001-Cocoa-NSGL-Port-backend-to-build-on-Mac-OS-X-10.6-wi.patch \
        0002-Cocoa-Guard-convertRectToScreen-for-the-10.6-SDK.patch \
        0003-Cocoa-Guard-setRestorable-for-the-10.6-SDK.patch \
        0004-Cocoa-Guard-loadNibNamed-owner-topLevelObjects-for-t.patch \
        0005-Cocoa-Restore-pixel-encoding-queries-for-pre-10.11-S.patch
}

configure.args-append \
    -DBUILD_BUILD_DOCS=OFF \
    -DBUILD_SHARED_LIBS=ON \
    -DCMAKE_C_STANDARD=11 \
    -DCMAKE_C_EXTENSIONS=OFF \
    -DDOXYGEN_EXECUTABLE= \
    -DGLFW_BUILD_EXAMPLES=OFF \
    -DGLFW_BUILD_TESTS=OFF \
    -DGLFW_CMAKE_CONFIG_PATH=share

# cocoa_init.m:90:5: error: 'for' loop initial declarations are only allowed in C99 or C11 mode
configure.objcflags-append  -std=c99

configure.ldflags-delete    -L${prefix}/lib

variant docs description "Build documentation" {
    depends_build-append \
        path:bin/doxygen:doxygen
    configure.args-replace \
        -DBUILD_BUILD_DOCS=OFF \
        -DBUILD_BUILD_DOCS=ON \
        -DDOXYGEN_EXECUTABLE= \
        -DDOXYGEN_EXECUTABLE=${prefix}/bin/doxygen
}
