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

EAPI=7

VALA_MIN_API_VERSION=0.40
BUILD_DIR="${WORKDIR}/${P}-build"

inherit meson vala xdg

DESCRIPTION="Elementary OS library that extends GTK+"
HOMEPAGE="https://github.com/elementary/granite"
SRC_URI="https://github.com/elementary/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"

LICENSE="LGPL-3+"
SLOT="0"
KEYWORDS="amd64 ~arm x86"
IUSE="doc test"
RESTRICT="!test? ( test )"

BDEPEND="
	$(vala_depend)
	virtual/pkgconfig
	doc? (
		>=dev-lang/vala-0.40.20[valadoc]
		dev-util/gtk-doc
	)
"
DEPEND="
	>=dev-libs/glib-2.50:2
	dev-libs/libgee:0.8[introspection]
	>=x11-libs/gtk+-3.22:3[introspection]
"
RDEPEND="${DEPEND}"

src_prepare() {
	default
	vala_src_prepare
	if use doc; then
		sed -i \
			"s/find_program('valadoc')/find_program('valadoc-$(vala_best_api_version)')/g" \
			doc/meson.build || die "Failed to replace valadoc"
		local doc_sed_list=(
			"lib/Widgets/AboutDialog.vala"
			"lib/Widgets/AlertView.vala"
			"lib/Widgets/AsyncImage.vala"
			"lib/Widgets/Avatar.vala"
			"lib/Widgets/CellRendererBadge.vala"
			"lib/Widgets/DynamicNotebook.vala"
			"lib/Widgets/MessageDialog.vala"
			"lib/Widgets/ModeButton.vala"
			"lib/Widgets/OverlayBar.vala"
			"lib/Widgets/SeekBar.vala"
			"lib/Widgets/StorageBar.vala"
			"lib/Widgets/Toast.vala"
			"lib/Widgets/Welcome.vala"
		)
		for src_file in "${doc_sed_list[@]}"; do
			sed -ie "s@{{../doc@{{${BUILD_DIR}/doc@g" \
				"./${src_file}" || die "Failed to fix docs for ./${src_file}"
		done
	fi
}

src_configure() {
	local emesonargs=(
		$(meson_use doc documentation)
	)
	meson_src_configure

	if use doc; then
		cp -r ./doc/images "${BUILD_DIR}/doc/" || die "Failed to copy doc images"
	fi
}

src_install() {
	use doc && local HTML_DOCS=( "${BUILD_DIR}/doc/granite/html/." )
	meson_src_install
}