# -*- 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.14 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  e72eb5efc6fe8b160d595578d6f1078ec80199d5 \
                        sha256  aa87dd555090af0e48a2b61a47b6cae0e006b3efc5dcee946fcf861f8aadade6 \
                        size    1569955

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.
"
