# -*- 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              @LizardByte
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/lizardbyte/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/LizardByte/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
#         }
# }

# disabled not overwriting config files... these are the default config files required by Sunshine
# this did not work with pkg created by macports
# we should always install the default files and user should start sunshine like "sunshine <path to user config file>"
# if the file doesn't exist sunshine will copy the default config to that location
notes-append "Run @PROJECT_NAME@ by executing 'sunshine <path to user config>', e.g. 'sunshine ~/sunshine.conf' "
notes-append "The config file will be created if it doesn't exist."
notes-append "It is recommended to set a location for the apps file in the config."
notes-append "See our documentation at 'https://docs.lizardbyte.dev/projects/sunshine/en/v@PROJECT_VERSION@/' for further info."
