#!/hint/bash
# SPDX-FileCopyrightText: 2024-2025 Eli Schwartz <eschwartz@gentoo.org>
# SPDX-License-Identifier: GPL-2.0-or-later

_check_symbol() {
    local lib libs=() symname=$1

    mapfile -t libs < <(scanelf -qyRF '#s%F' -g -s "-gdk_${symname}" "${D}")

    if [[ "${libs[*]}" != '' ]]; then
        eqawarn "QA Notice: binaries depend on Gtk's ${symname}-specific ABI without USE dep:"
        eqawarn
        for lib in "${libs[@]}"; do
            eqatag -v "gtk.${symname}" "${lib//${D}}"
        done
        printf '\n'
    fi
}

gtk_automagic() {
    if [[ ${CATEGORY}/${PN} = gui-libs/gtk || ${CATEGORY}/${PN} = x11-libs/gtk+ ]]; then
        return 0
    fi
    if [[ ${DEPEND} = *'x11-libs/gtk+'* && ! ${DEPEND} = *'x11-libs/gtk+'+([^[:space:]])wayland* ]] ||
       [[ ${DEPEND} = *gui-libs/gtk* && ! ${DEPEND} = *'gui-libs/gtk'+([^ [:space:]])wayland* ]]; then
        _check_symbol wayland
    fi

    if [[ ${DEPEND} = *'x11-libs/gtk+'* && ! ${DEPEND} = *'x11-libs/gtk+'+([^[:space:]])X* ]] ||
       [[ ${DEPEND} = *gui-libs/gtk* && ! ${DEPEND} = *'gui-libs/gtk'+([^[:space:]])X* ]]; then
        _check_symbol x11
    fi
}

gtk_automagic
: # guarantee successful exit
