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

# initial PR into macports: https://github.com/macports/macports-ports/pull/15143

PortSystem               1.0
PortGroup                cmake 1.1
PortGroup                github 1.0
PortGroup                boost 1.0

name                     @PROJECT_NAME@
version                  @PROJECT_VERSION@
revision                 0
categories               multimedia emulators games
platforms                darwin
license                  GPL-3
maintainers              @SunshineStream
description              @PROJECT_DESCRIPTION@

# long_description will not be split into multiple lines as it's configured by CMakeLists
long_description         @PROJECT_LONG_DESCRIPTION@
homepage                 @PROJECT_HOMEPAGE_URL@
master_sites             https://github.com/sunshinestream/sunshine/releases

compiler.cxx_standard    2017
fetch.type               git

git.url                  @GITHUB_CLONE_URL@
git.branch               @GITHUB_COMMIT@

post-fetch {
    system -W ${worksrcpath} "${git.cmd} submodule update --init --recursive"
}

depends_lib              port:avahi \
                         port:ffmpeg \
                         port:libopus

boost.version            1.76

configure.args           -DCMAKE_INSTALL_PREFIX=${prefix} \
                         -DSUNSHINE_ASSETS_DIR=etc/sunshine/assets \
                         -DSUNSHINE_CONFIG_DIR=etc/sunshine/config

startupitem.create       yes
startupitem.executable   "${prefix}/bin/{$name}"
startupitem.location     LaunchDaemons
startupitem.name         ${name}
startupitem.netchange    yes

platform darwin {
    if { ${os.major} < 20 } {
        # See: https://github.com/SunshineStream/Sunshine/discussions/117#discussioncomment-2513494
        notes-append "Port is limited to software encoding, when used with macOS releases prior to Big Sur."
    }
}

# destroot not required as cmake install directive handles moving files

# Rename files in `destroot`
post-destroot {
    file rename ${destroot}${prefix}/etc/${name}/config/sunshine.conf ${destroot}${prefix}/etc/${name}/config/sunshine.conf.sample
    file rename ${destroot}${prefix}/etc/${name}/config/apps.json ${destroot}${prefix}/etc/${name}/config/apps.json.sample
}

# Don't overwrite existing preference files
post-activate {
    if {![file exists ${prefix}/etc/${name}/config/sunshine.conf]} {
        file copy ${destroot}${prefix}/etc/${name}/config/sunshine.conf.sample \
            ${prefix}/etc/${name}/config/sunshine.conf
        }
    if {![file exists ${prefix}/etc/${name}/config/apps.json]} {
        file copy ${destroot}${prefix}/etc/${name}/config/apps.json.sample \
            ${prefix}/etc/${name}/config/apps.json
        }
}
