# -*- 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           gitlab 1.0
PortGroup           meson 1.0

name                libpeas1
set my_name         libpeas
version             1.38.1
revision            0

categories          gnome
license             LGPL-2
maintainers         {devans @dbevans} {mascguy @mascguy} openmaintainer
description         libpeas is a GObject-based plugins engine
long_description    ${description}

gitlab.instance     https://gitlab.gnome.org
gitlab.setup        gnome ${my_name} ${version} "${my_name}-"
distname            ${my_name}-${my_name}-${version}

checksums           rmd160  827b54a8e43675c7f4cc87b4753bd43801271f8b \
                    sha256  79a38e19ab5faaa3712dc47a40dc53748985ae35963970d8b0e8ef6307836969 \
                    size    216961

set port_ver_major  [lindex [split ${version} .] 0]

depends_build-append \
                    port:gettext \
                    path:bin/pkg-config:pkgconfig \
                    path:bin/vala:vala

depends_lib-append \
                    port:gettext-runtime \
                    path:lib/pkgconfig/gobject-introspection-1.0.pc:gobject-introspection \
                    path:lib/pkgconfig/gtk+-3.0.pc:gtk3

license_noconflict  vala

configure.args-append \
                    -Dglade_catalog=false \
                    -Dlua51=false \
                    -Dpython2=false \
                    -Dpython3=false \
                    -Dvapi=true

# Work around lack of @rpath on Tiger, i.e. this error:
# dyld: Library not loaded: @loader_path/libpeas-1.0.0.dylib
platform darwin 8 {
    destroot.env-append \
        "DYLD_LIBRARY_PATH=${build_dir}/${my_name}:${build_dir}/${my_name}-gtk"
}

# 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}"
}

proc py_setup {py_ver} {
    global env prefix frameworks_dir
    set py_ver_nodot [string map {. {}} ${py_ver}]

    set python_frameworks_dir \
                    ${frameworks_dir}/Python.framework/Versions/${py_ver}

    configure.python \
                    ${prefix}/bin/python${py_ver}

    configure.pkg_config_path-append \
                    ${python_frameworks_dir}/lib/pkgconfig

    configure.env-append \
                    PATH=${python_frameworks_dir}/bin:$env(PATH)
    build.env-append \
                    PATH=${python_frameworks_dir}/bin:$env(PATH)
    destroot.env-append \
                    PATH=${python_frameworks_dir}/bin:$env(PATH)

    depends_lib-append \
                    port:py${py_ver_nodot}-gobject3

    configure.args-replace \
                    -Dpython3=false \
                    -Dpython3=true
}

variant python310 conflicts python311 python312 python313 python314 \
        description {Enable Python 3.10 plugin support} {
    py_setup 3.10
}

variant python311 conflicts python310 python312 python313 python314 \
        description {Enable Python 3.11 plugin support} {
    py_setup 3.11
}

variant python312 conflicts python310 python311 python313 python314 \
        description {Enable Python 3.12 plugin support} {
    py_setup 3.12
}

variant python313 conflicts python310 python311 python312 python314 \
        description {Enable Python 3.13 plugin support} {
    py_setup 3.13
}

variant python314 conflicts python310 python311 python312 python313 \
        description {Enable Python 3.14 plugin support} {
    py_setup 3.14
}

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

variant glade description {Enable glade catalog support} {
    depends_lib-append      port:glade
    configure.args-replace  -Dglade_catalog=false -Dglade_catalog=true
}

post-destroot {
    # glade expects catalog modules and libraries to have a .so suffix
    if {[variant_isset glade]} {
        set libdir ${prefix}/lib
        ln -s ${libdir}/libpeas-gtk-1.0.dylib ${destroot}${libdir}/libpeas-gtk-1.0.so
    }

    # same for libpeas demo plugin modules
    set plugindir ${prefix}/lib/peas-demo/plugins
    foreach plugin {helloworld secondtime} {
        ln -s ${plugindir}/$plugin/lib$plugin.dylib ${destroot}${plugindir}/$plugin/lib$plugin.so
    }
}

post-activate {
    system "${prefix}/bin/gtk-update-icon-cache -f -t ${prefix}/share/icons/hicolor"
}

gitlab.livecheck.regex "${my_name}-(${port_ver_major}\.\[0-9\.\]+)"
