Files
guru/dev-util/blueprint-compiler/blueprint-compiler-9999.ebuild
2022-02-21 05:09:42 -08:00

99 lines
2.4 KiB
Bash

# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
PYTHON_COMPAT=( python3_{9..10} )
inherit meson python-r1
if [[ ${PV} == *9999 ]]; then
inherit git-r3
EGIT_REPO_URI="https://gitlab.gnome.org/jwestman/blueprint-compiler.git"
else
# Upstream has not started to tag releases yet, so each keyworded (normal)
# ebuild is to be based on a Git commit snapshot at this moment.
# Live ebuild: Might be intentionally left blank
# Normal ebuild: Fill in commit SHA-1 object name to this variable's value
GIT_COMMIT=""
KEYWORDS="~amd64"
SRC_URI="https://gitlab.gnome.org/jwestman/blueprint-compiler/-/archive/${GIT_COMMIT}/blueprint-compiler-${GIT_COMMIT}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-${GIT_COMMIT}"
fi
DESCRIPTION="Compiler for Blueprint, a markup language for GTK user interfaces"
HOMEPAGE="https://jwestman.pages.gitlab.gnome.org/blueprint-compiler/"
LICENSE="LGPL-3+"
SLOT="0"
IUSE="doc test"
REQUIRED_USE="${PYTHON_REQUIRED_USE}"
RESTRICT="!test? ( test )"
BDEPEND="
${PYTHON_DEPS}
doc? (
dev-python/sphinx[${PYTHON_USEDEP}]
dev-python/furo[${PYTHON_USEDEP}]
)
"
DEPEND="
test? (
gui-libs/gtk:4[introspection]
)
"
RDEPEND="
${PYTHON_DEPS}
"
src_configure() {
local emesonargs=(
$(meson_use doc docs)
)
python_foreach_impl meson_src_configure
}
src_compile() {
python_foreach_impl meson_src_compile
}
src_test() {
python_foreach_impl meson_src_test
}
src_install() {
my_src_install() {
local exe="${ED}/usr/bin/${PN}"
# Meson installs a Python script at ${ED}/usr/bin/${PN}; on
# Gentoo, the script should go into ${ED}/usr/lib/python-exec,
# and ${ED}/usr/bin/${PN} should be a symbolic link to
# ${ED}/usr/lib/python-exec/python-exec2.
#
# When multiple PYTHON_TARGETS are enabled, then after the
# package has been installed for one Python implementation,
# Meson will follow the ${ED}/usr/bin/${PN} symbolic link and
# install the script at ${ED}/usr/lib/python-exec/python-exec2
# for the remaining implementations, leading to file collision.
if [[ -L "${exe}" ]]; then
rm -v "${exe}" || die "Failed to remove symbolic link ${exe}"
fi
meson_src_install
python_doscript "${exe}"
python_optimize
# Install Sphinx-generated documentation only once
# since the documentation is supposed to be identical
# between different Python implementations
use doc && HTML_DOCS=( "${BUILD_DIR}/docs"/* )
}
python_foreach_impl my_src_install
einstalldocs
}