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

github.setup        gpodder gpodder 3.11.4
revision            1
categories          gnome audio
license             GPL-3
maintainers         nomaintainer
platforms           {darwin any}
supported_archs     noarch
description         A media aggregator and podcast client

long_description    gPodder is a standalone podcast manager. \
                    It provides anything to manage feeds and podcasts \
                    but requires an external player to actually listen/view \
                    the content, e.g. Apple QuickTime Player.

homepage            https://gpodder.github.io

checksums           rmd160  add2b5360277b46112110d88eb2a0e72271fecc7 \
                    sha256  8022a6c29157dc287b5661f8915d04404767c33b6858e8d1a6c728904f8dae55 \
                    size    1183463
github.tarball_from archive

depends_build-append \
                    port:help2man \
                    port:intltool

depends_lib-append  path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                    port:lame \
                    path:lib/pkgconfig/librsvg-2.0.pc:librsvg \
                    port:vorbis-tools

# python group overrides
destroot.cmd        make
destroot.destdir    DESTDIR=${destroot}

variant python38 conflicts python39 python310 python311 python312 description {Use Python 3.8} {}
variant python39 conflicts python38 python310 python311 python312 description {Use Python 3.9} {}
variant python310 conflicts python38 python39 python311 python312 description {Use Python 3.10} {}
variant python311 conflicts python38 python39 python310 python312 description {Use Python 3.11} {}
variant python312 conflicts python38 python39 python310 python311 description {Use Python 3.12} {
    depends_build-append \
                        port:py${python.version}-setuptools
    # https://github.com/gpodder/gpodder/issues/1614
    patchfiles-append   510de4b3a0b0444231f87bc6cb60527817847865.patch \
                        dd9b594d24a541c0f1d3b096e47b6d7f1c11ca7e.patch
}

if {![variant_isset python38] && ![variant_isset python39] && ![variant_isset python310] && ![variant_isset python311]} {
    default_variants +python312
}

if {[variant_isset python38]} {
    python.default_version  38
} elseif {[variant_isset python39]} {
    python.default_version  39
} elseif {[variant_isset python310]} {
    python.default_version  310
} elseif {[variant_isset python311]} {
    python.default_version  311
} else {
    python.default_version  312
}

python.pep517       no

set my_python "${frameworks_dir}/Python.framework/Versions/${python.branch}"

depends_lib-append  port:dbus-python${python.version} \
                    port:py${python.version}-gobject3 \
                    port:py${python.version}-mutagen \
                    port:py${python.version}-mygpoclient \
                    port:py${python.version}-podcastparser

# ModuleNotFoundError: No module named 'requests'
depends_run-append  port:py${python.version}-requests \
                    port:yt-dlp

post-patch {
    reinplace s|python|${my_python}/bin/python|g ${worksrcpath}/makefile
}

# install in python prefix
destroot.args PREFIX=${my_python}

variant quartz {
    post-destroot {
       # Command-XX shortcuts in gPodder menus
       system "/usr/bin/xsltproc -o ${destroot}${my_python}/share/gpodder/ui/gtk/gpodder.ui \
               ${filespath}/adjust-modifiers.xsl ${worksrcpath}/share/gpodder/ui/gtk/gpodder.ui"
    }
}

build {}

post-destroot {

    set install_path "${my_python}"
    set contents "${destroot}${applications_dir}/gPodder.app/Contents"

    file mkdir ${contents}/MacOS ${contents}/Resources
    copy ${worksrcpath}/tools/mac-osx/icon.icns ${contents}/Resources/gPodder.icns
    copy ${worksrcpath}/tools/mac-osx/Info.plist ${contents}
    reinplace "s|__VERSION__|${version}|g" ${contents}/Info.plist
    reinplace "s|__COPYRIGHT__|© 2005-2022 The gPodder Team|g" ${contents}/Info.plist
    ln -s ${install_path}/bin/gpodder ${contents}/MacOS/gpodder

    # ticket #39613 gPodder +x11 keeps bouncing otherwise
    if {![variant_isset quartz]} {
        reinplace -E {s|(<string>org.gpodder.gpodder</string>)|\1 <key>LSUIElement</key><string>1</string>|} \
                 "${destroot}${applications_dir}/gPodder.app/Contents/Info.plist"
    }
}
