# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:filetype=tcl:et:sw=4:ts=4:sts=4

PortSystem          1.0
PortGroup           active_variants 1.1
PortGroup           app   1.0
PortGroup           meson 1.0
PortGroup           yelp  1.0

name                gedit
version             44.2
revision            1
license             GPL-2+
set branch          [lindex [split ${version} .] 0]
description         GNOME editor.
long_description    ${description}
maintainers         {devans @dbevans} openmaintainer
categories          gnome editors
homepage            https://wiki.gnome.org/Apps/Gedit
master_sites        gnome:sources/${name}/${branch}/

use_xz              yes

# Disable unexpected download of subprojects
meson.wrap_mode     nodownload

# redefinition of typedef error
compiler.c_standard 2011

checksums           rmd160  5e838203aeded20c9fb875bc0f1f69b09d7eeac8 \
                    sha256  3bbb1b3775d4c277daf54aaab44b0eb83a4eb1f09f0391800041c9e56893ec11 \
                    size    2741932

depends_build-append \
                    port:pkgconfig \
                    port:appstream-glib \
                    port:gettext \
                    bin:git:git \
                    port:gtk-doc \
                    port:itstool \
                    path:bin/vala:vala

depends_lib-append  port:desktop-file-utils \
                    port:amtk \
                    port:gettext-runtime \
                    path:lib/pkgconfig/glib-2.0.pc:glib2 \
                    path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                    path:lib/pkgconfig/gobject-introspection-1.0.pc:gobject-introspection \
                    port:gsettings-desktop-schemas \
                    port:gspell \
                    port:gtksourceview4 \
                    port:iso-codes \
                    port:libpeas1 \
                    port:libxml2 \
                    port:tepl

depends_run         port:adwaita-icon-theme

patchfiles-append   patch-gedit-meson-build-python3.diff

post-patch {
    reinplace "s|@@PYTHON3@@|${configure.python}|g" ${worksrcpath}/meson.build
    reinplace "s|#!.*|#!${configure.python}|" ${worksrcpath}/build-aux/meson/post_install.py
}

configure.args      -Dgtk_doc=true

# gobject-introspection uses g-ir-scanner, which uses $CC from env
if {${universal_possible} && [variant_isset universal]} {
    foreach arch ${configure.universal_archs} {
        lappend merger_build_env(${arch})  "CC=${configure.cc} -arch ${arch}"
        lappend merger_destroot_env(${arch})  "CC=${configure.cc} -arch ${arch}"
    }
} else {
    build.env-append       "CC=${configure.cc} ${configure.cc_archflags}"
    destroot.env-append    "CC=${configure.cc} ${configure.cc_archflags}"
}

variant python310 conflicts python313 description {Use python 3.10} {
    depends_lib-append        port:py310-gobject3
    configure.python          ${prefix}/bin/python3.10
    set python_framework      ${frameworks_dir}/Python.framework/Versions/3.10
    configure.pkg_config_path ${python_framework}/lib/pkgconfig
}

variant python313 conflicts python310 description {Use python 3.13} {
    depends_lib-append        port:py313-gobject3
    configure.python          ${prefix}/bin/python3.13
    set python_framework      ${frameworks_dir}/Python.framework/Versions/3.13
    configure.pkg_config_path ${python_framework}/lib/pkgconfig
}

variant x11 conflicts quartz {
    require_active_variants gtk3 x11
    patchfiles-append       patch-meson-darwin-dont-assume-quartz.diff
}

variant quartz conflicts x11 {
    require_active_variants gtk3 quartz
    depends_lib-append      port:gtk-osx-application-gtk3
}

if {![variant_isset quartz]} {
    default_variants-append +x11
}

if {![variant_isset python310] && \
    ![variant_isset python313]} {
    default_variants-append +python313
}

app.use_launch_script   yes
app.icon                ./logo.png

# add symlink to lib/gedit/libgedit-3.38.dylib in standard libdir
# works around introspection typelib issue
post-destroot {
    ln -s ${prefix}/lib/gedit/libgedit-3.38.dylib  ${destroot}${prefix}/lib/libgedit-3.38.dylib
}

notes               "For extra functionality install gedit-plugins"

post-activate    {
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}

livecheck.type      gnome
