# -*- 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           gobject_introspection 1.0
PortGroup           muniversal 1.0
PortGroup           yelp 1.0
PortGroup           app 1.1
PortGroup           deprecated 1.0

# repository moved to GNOME readonly archive
deprecated.upstream_support no

name                anjuta
version             3.34.0
revision            7
checksums           rmd160  113e01eee1675d08ff2fc4f56e755d6e01b8ce07 \
                    sha256  42a93130ed3ee02d064a7094e94e1ffae2032b3f35a87bf441e37fc3bb3a148f \
                    size    6420472

categories          gnome devel
license             GPL-2+
maintainers         {mascguy @mascguy} openmaintainer

description         A GNOME/GTK IDE
long_description    {*}${description}
homepage            https://gitlab.gnome.org/Archive/anjuta

set branch          [join [lrange [split ${version} .] 0 1] .]
master_sites        gnome:sources/${name}/${branch}/
use_xz              yes

depends_build-append \
                    port:autoconf \
                    port:automake \
                    port:gnome-common \
                    port:gtk-doc \
                    port:intltool \
                    port:itstool \
                    port:libtool \
                    port:pkgconfig \
                    port:yelp-tools

depends_lib-append \
                    port:autogen \
                    port:desktop-file-utils \
                    port:gdl3 \
                    path:lib/pkgconfig/gjs-1.0.pc:gjs \
                    path:lib/pkgconfig/gnutls.pc:gnutls \
                    path:lib/pkgconfig/gtk+-3.0.pc:gtk3 \
                    port:gtksourceview3 \
                    port:libgda5 \
                    port:libxml2 \
                    port:shared-mime-info \
                    port:vte

depends_run-append \
                    port:adwaita-icon-theme \
                    port:epiphany \
                    port:xdg-utils

patchfiles-append   patch-configure.ac.diff
patchfiles-append   patch-python-cflags.diff
patchfiles-append   python-ldflags.patch
patchfiles-append   patch-plugins-python-loader-plugin.c.diff
patchfiles-append   shm_open.patch

# apply various upstream fixes
# allow configuration with libgda master (5.90+)
# allow configuration with vala 0.32 through 0.56
# allow vala language plugin to build with vala 0.50+
patchfiles-append   gda6-config-fixes.patch
patchfiles-append   vala-config-fixes.patch
patchfiles-append   build-with-vala-0.50.patch

gobject_introspection yes

# blacklist compilers that do not support C11 (redefinition of typedef ‘GtkSourceTag’ at gtksourceview/gtksourcetag.h:35)
compiler.c_standard 2011

# reconfigure using upstream autogen.sh for intltool 0.51 compatibility
configure.cmd       ./autogen.sh

configure.cflags-append \
                    -std=gnu89

configure.args-append \
                    --disable-maintainer-mode \
                    --disable-packagekit \
                    --disable-plugin-devhelp \
                    --disable-plugin-glade \
                    --disable-plugin-subversion \
                    --disable-schemas-compile \
                    --disable-silent-rules \
                    --disable-vala \
                    --enable-compile-warnings=minimum \
                    --enable-static

app.icon            ${worksrcpath}/pixmaps/hicolor/scalable/anjuta.svg
app.retina          yes
app.use_launch_script yes

variant devhelp description {Enable devhelp plugin support} {
    configure.args-delete   --disable-plugin-devhelp
    depends_lib-append      port:devhelp
}

variant subversion description {Enable subversion plugin support} {
    configure.args-delete   --disable-plugin-subversion
    configure.args-append   --with-subversion-dir=${prefix} \
                            --with-svn-include=${prefix}/include/subversion-1 \
                            --with-svn-lib=${prefix}/lib
    depends_lib-append      port:apr \
                            port:apr-util \
                            port:neon \
                            port:subversion
}

variant glade description {Enable glade plugin support and glade catalog} {
    configure.args-delete   --disable-plugin-glade
    configure.args-append   --enable-glade-catalog
    depends_lib-append      port:glade
}

variant vala description {Enable vala support} {
    configure.args-delete   --disable-vala
    depends_lib-append      path:bin/vala:vala
}

default_variants +devhelp +glade +vala

proc py_setup {python_branch} {
    global prefix
    set python_version      [string map {"." ""} ${python_branch}]

    configure.python        ${prefix}/bin/python${python_branch}
    depends_lib-append      port:py${python_version}-gobject3
}

variant python27 conflicts python39 python310 python311 description {Use Python 2.7} {
    py_setup 2.7
}

variant python39 conflicts python27 python310 python311 description {Use Python 3.9} {
    py_setup 3.9
}

variant python310 conflicts python27 python39 python311 description {Use Python 3.10} {
    py_setup 3.10
}

variant python311 conflicts python27 python39 python310 description {Use Python 3.11} {
    py_setup 3.11
}

if {![variant_isset python27] \
    && ![variant_isset python39] \
    && ![variant_isset python310] \
    && ![variant_isset python311]} {
    default_variants-append +python311
}

# Dummy variants, to ensure user's choice cascades to dependencies
variant quartz conflicts x11 {}
variant x11 conflicts quartz {}

if {![variant_isset quartz]} {
    default_variants +x11
}
if {![variant_isset x11]} {
    default_variants +quartz
}
if {![variant_isset quartz] && ![variant_isset x11]} {
    error "Either +x11 or +quartz is required"
}

post-activate {
    system "${prefix}/bin/update-desktop-database ${prefix}/share/applications"
    system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
    system "${prefix}/bin/update-mime-database ${prefix}/share/mime"
    system "${prefix}/bin/glib-compile-schemas ${prefix}/share/glib-2.0/schemas"
}

livecheck.type      gnome

notes "
Remaining dependents are:
    gtkpod
"
