summaryrefslogtreecommitdiff
blob: dc1cb86a0666b21dbade2ace39dc70154e42fa9c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# Copyright 1999-2019 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 +introspection test"
RESTRICT="!test? ( test )"

BDEPEND="
	$(vala_depend)
	virtual/pkgconfig
	doc? (
		dev-lang/vala[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
}