# -*- 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           xcode 1.0
PortGroup           xcodeversion 1.0

github.setup        matthewrball abendrot 1.0.8 v
github.tarball_from archive
revision            0

categories          aqua sysutils
license             MIT
maintainers         {abendrot.app:support @matthewrball} openmaintainer

description         Screen warmer that cuts nighttime blue light on every display
long_description    Abendrot is a free, open-source Mac screen warmer that cuts \
                    nighttime blue light. It warms every display around your local \
                    sunset so your evenings aren't lit up like daytime.

homepage            https://abendrot.app
platforms           {darwin >= 23}
supported_archs     arm64 x86_64
universal_variant   no
macosx_deployment_target \
                    14.0
minimum_xcodeversions \
                    {23 16.0 24 16.0}

set source_commit   353a968fc6013fadead8658bb3d00f346983a2eb
set keyboardshortcuts_version \
                    2.4.0
set swift_log_version \
                    1.13.2
set argument_parser_version \
                    1.8.2

set main_distfile   ${distfiles}
set keyboardshortcuts_distfile \
                    KeyboardShortcuts-${keyboardshortcuts_version}${extract.suffix}
set swift_log_distfile \
                    swift-log-${swift_log_version}${extract.suffix}
set argument_parser_distfile \
                    swift-argument-parser-${argument_parser_version}${extract.suffix}

master_sites-append https://github.com/sindresorhus/KeyboardShortcuts/archive/refs/tags/${keyboardshortcuts_version}${extract.suffix}?dummy=:keyboardshortcuts \
                    https://github.com/apple/swift-log/archive/refs/tags/${swift_log_version}${extract.suffix}?dummy=:swift_log \
                    https://github.com/apple/swift-argument-parser/archive/refs/tags/${argument_parser_version}${extract.suffix}?dummy=:argument_parser

distfiles-append    ${keyboardshortcuts_distfile}:keyboardshortcuts \
                    ${swift_log_distfile}:swift_log \
                    ${argument_parser_distfile}:argument_parser

checksums           ${main_distfile} \
                    rmd160  88a41d89e9fe93d3e8abef48d2214c2afe8985e3 \
                    sha256  ce446c7d0fb1ae1fa37a538489c99b1693e295a5eb9229f5bf2067642dc4caff \
                    size    4285803 \
                    ${keyboardshortcuts_distfile} \
                    rmd160  f60fd3ceb5bb2107fca74a878bc0fd5b8e4ac469 \
                    sha256  ff53e65840357372a4764cc645a390d677a680eb4142f587533dd633b489db65 \
                    size    158789 \
                    ${swift_log_distfile} \
                    rmd160  5135bde2d7c4135d1a4e779a04f42217f375bc75 \
                    sha256  67cd40237c1eac2fbe154a3de577ffa01aeed88b53192c98a37aebe05a02bd47 \
                    size    92080 \
                    ${argument_parser_distfile} \
                    rmd160  acc20eae3c5200131c7748631a762ed77424dc6d \
                    sha256  62bb12fb84d07d7f9ebbbbae205d32f941bcfecdcebdd09889f6e7f7f96f04ac \
                    size    709666

depends_build       port:xcodegen
patchfiles          patch-disable-sparkle.diff

post-extract {
    xinstall -d ${worksrcpath}/Vendor
    move ${workpath}/KeyboardShortcuts-${keyboardshortcuts_version} \
        ${worksrcpath}/Vendor/KeyboardShortcuts
    move ${workpath}/swift-log-${swift_log_version} \
        ${worksrcpath}/Vendor/swift-log
    move ${workpath}/swift-argument-parser-${argument_parser_version} \
        ${worksrcpath}/Vendor/swift-argument-parser
}

pre-build {
    delete ${worksrcpath}/Abendrot.xcodeproj
    delete ${worksrcpath}/cli/Package.resolved
    system -W ${worksrcpath} "${prefix}/bin/xcodegen generate --spec project.yml"
}

use_xcode           yes
xcode.project       Abendrot.xcodeproj
xcode.scheme        Abendrot
xcode.configuration Release
xcode.build.settings-append \
                    SDKROOT=macosx \
                    DEVELOPMENT_TEAM= \
                    CODE_SIGN_IDENTITY= \
                    CODE_SIGNING_REQUIRED=NO \
                    CODE_SIGNING_ALLOWED=NO \
                    OTHER_SWIFT_FLAGS=-disable-sandbox \
                    -IDEPackageSupportDisableManifestSandbox=1 \
                    -IDEPackageSupportDisablePluginExecutionSandbox=1 \
                    SWIFT_ACTIVE_COMPILATION_CONDITIONS=ABENDROT_MACPORTS \
                    ABENDROT_SOURCE_COMMIT=${source_commit}

post-build {
    set cli_args "--package-path cli --configuration release --disable-sandbox --arch ${configure.build_arch}"
    system -W ${worksrcpath} \
        "env MACOSX_DEPLOYMENT_TARGET=${macosx_deployment_target} /usr/bin/swift build ${cli_args}"
    set cli_bindir [string trim [exec /usr/bin/swift build \
        --package-path ${worksrcpath}/cli --configuration release \
        --disable-sandbox --arch ${configure.build_arch} --show-bin-path]]
    xinstall -d ${worksrcpath}/build/Release/Abendrot.app/Contents/Helpers
    xinstall -m 0755 ${cli_bindir}/abendrot \
        ${worksrcpath}/build/Release/Abendrot.app/Contents/Helpers/abendrot
}

destroot {
    xinstall -d ${destroot}${applications_dir}
    copy ${worksrcpath}/build/Release/Abendrot.app \
        ${destroot}${applications_dir}
    xinstall -d ${destroot}${prefix}/bin
    ln -s ${applications_dir}/Abendrot.app/Contents/Helpers/abendrot \
        ${destroot}${prefix}/bin/abendrot
}
