# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

inherit lomiri multibuild qmake-utils

if [[ ${PV} == 9999 ]]; then
    KEYWORDS=""
    EGIT_REPO_URI="https://gitlab.com/ubports/development/core/${PN}.git"
    inherit git-r3
else
    KEYWORDS="~amd64"
    SRC_URI="https://gitlab.com/ubports/development/core/${PN}/-/archive/${PV}/${P}.tar.gz"
fi

DESCRIPTION="Content sharing/picking infrastructure and service for apps to exchange content"
HOMEPAGE="https://gitlab.com/ubports/development/core/${PN}"
LICENSE="GPL-3"
SLOT="0"
RESTRICT="test mirror"
IUSE="+qt5 +qt6"
REQUIRED_USE="|| ( qt5 qt6 )"

COMMON_DEPEND="
    lomiri-base/lomiri-app-launch
    x11-libs/libnotify
    qt5? (
        dev-qt/qtdeclarative:5
        lomiri-base/gsettings-qt[qt5]
        lomiri-base/lomiri-download-manager[qt5]
    )
    qt6? (
        dev-qt/qtbase:6
        dev-qt/qtdeclarative:6
        lomiri-base/gsettings-qt[qt6]
        lomiri-base/lomiri-download-manager[qt6]
    )
"
DEPEND="${COMMON_DEPEND}"
RDEPEND="${COMMON_DEPEND}
    qt5? ( lomiri-base/lomiri-ui-toolkit:5 )
    qt6? ( lomiri-base/lomiri-ui-toolkit:6 )
"
BDEPEND="
    dev-build/cmake
    dev-build/cmake-extras
    dev-build/samurai
"

_content_hub_variants() {
    MULTIBUILD_VARIANTS=()
    use qt5 && MULTIBUILD_VARIANTS+=( qt5 )
    use qt6 && MULTIBUILD_VARIANTS+=( qt6 )
}

src_configure() {
    local MULTIBUILD_VARIANTS
    _content_hub_variants

    content_hub_configure() {
        local mycmakeargs=(
            -DENABLE_TESTS="OFF"
            -DENABLE_DOC="OFF"
            -DENABLE_WERROR="OFF"
            -DENABLE_COVERAGE="OFF"
        )

        # qmlplugindump is located via PATH; Gentoo installs it under
        # /usr/lib64/qt{5,6}/bin, which upstream's hardcoded hint misses
        if [[ ${MULTIBUILD_VARIANT} == qt6 ]]; then
            local -x PATH="$(qt6_get_bindir):${PATH}"
            mycmakeargs+=( -DENABLE_QT6="ON" )
        else
            local -x PATH="$(qt5_get_bindir):${PATH}"
            mycmakeargs+=( -DENABLE_QT6="OFF" )
        fi

        cmake_src_configure
    }
    multibuild_foreach_variant content_hub_configure
}

src_compile() {
    local MULTIBUILD_VARIANTS
    _content_hub_variants
    multibuild_foreach_variant cmake_src_compile
}

src_install() {
    local MULTIBUILD_VARIANTS
    _content_hub_variants
    multibuild_foreach_variant cmake_src_install
}