# -*- 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               makefile 1.0

github.setup            koekeishiya yabai 7.1.15 v
github.tarball_from     archive

categories              sysutils
maintainers             {@TheKevJames thekev.in:macports} openmaintainer
license                 MIT
description             A tiling window manager for macOS based on binary space partitioning
long_description        yabai is a window management utility that is designed to work as an extension to the built-in window manager of macOS.

checksums               rmd160  975f0cc62be38cf1b8b2b7029b14896b999a6cc3 \
                        sha256  3b07916b32f1f1488ff817b1f60559df8b9225a2d8e840edc5ebb10e3e1334f3 \
                        size    1570025

use_parallel_build      no

compiler.c_standard     2011

destroot {
    # Copy binary
    xinstall -m 755 ${worksrcpath}/bin/yabai ${destroot}${prefix}/bin/yabai

    # Copy manpage
    # TODO: build manpage properly
    xinstall -m 444 ${worksrcpath}/doc/yabai.1 ${destroot}${prefix}/share/man/man1

    # Copy example files
    xinstall -d -m 0755 ${destroot}${prefix}/share/doc/${name}/examples
    copy {*}[glob ${worksrcpath}/examples/*] \
        ${destroot}${prefix}/share/doc/${name}/examples
}

if {${os.major} < 20} {
    known_fail yes
    pre-fetch {
        # See https://github.com/koekeishiya/yabai/issues/1287
        ui_error "${name} ${version} cannot build on macOS 10.15 and earlier."
        return -code error "incompatible macOS version"
    }
} elseif {${os.major} == 20} {
    supported_archs x86_64
    patchfiles-append patch-makefile-macos11.diff
    patchfiles-append patch-workspace.m-macos11.diff
} else {
    patchfiles-append patch-makefile.diff
}

notes "
    A sample configuration is provided at
    * ${prefix}/share/doc/${name}/examples/yabairc

    You are strongly encouraged to copy this file to
    * ~/.config/${name}/yabairc
    and adjust it to your needs.

    If this is your first time installing yabai, you'll need to create a new
    keychain to codesign the installed binary. See the official instructions:
    https://github.com/koekeishiya/yabai/wiki/Installing-yabai-(from-HEAD)

    Some common post-install or post-upgrade steps are to run:
    * sudo codesign -fs 'yabai-cert' ${prefix}/bin/yabai
    * sudo yabai --load-sa
    * yabai --start-service
    See `man yabai` for more details.
"
