mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-06 00:48:18 -07:00
134 lines
2.8 KiB
Bash
134 lines
2.8 KiB
Bash
# Copyright 1999-2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
VIRTUALX_REQUIRED="manual"
|
|
LUA_COMPAT=( lua5-{1..4} luajit )
|
|
inherit lua meson virtualx
|
|
|
|
DESCRIPTION="Lua bindings using gobject-introspection"
|
|
HOMEPAGE="https://github.com/lgi-devs/lgi"
|
|
if [[ ${PV} == *_p* ]]; then
|
|
HASH_COMMIT="dfa82978d0f0f1ed1e817c9f0c5ea46824069e34"
|
|
SRC_URI="https://github.com/lgi-devs/lgi/archive/${HASH_COMMIT}.tar.gz -> ${P}.tar.gz"
|
|
S="${WORKDIR}/${PN}-${HASH_COMMIT}"
|
|
else
|
|
SRC_URI="https://github.com/lgi-devs/lgi/archive/${PV}.tar.gz -> ${P}.tar.gz"
|
|
fi
|
|
|
|
LICENSE="MIT"
|
|
SLOT="0"
|
|
KEYWORDS="amd64 arm ~arm64 ~loong ppc ppc64 ~riscv x86"
|
|
IUSE="test"
|
|
RESTRICT="!test? ( test )"
|
|
REQUIRED_USE="${LUA_REQUIRED_USE}"
|
|
|
|
BDEPEND="
|
|
${LUA_DEPS}
|
|
virtual/pkgconfig
|
|
test? (
|
|
${VIRTUALX_DEPEND}
|
|
sys-apps/dbus
|
|
x11-misc/xvfb-run
|
|
)
|
|
"
|
|
RDEPEND="
|
|
${LUA_DEPS}
|
|
>=dev-libs/gobject-introspection-1.82.0-r2
|
|
dev-libs/glib:2
|
|
dev-libs/libffi:0=
|
|
"
|
|
DEPEND="
|
|
${RDEPEND}
|
|
test? (
|
|
x11-libs/cairo[glib,X]
|
|
|| (
|
|
x11-libs/gtk+:3[introspection,X]
|
|
gui-libs/gtk:4[introspection,X]
|
|
)
|
|
)
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${PN}-0.9.2-multi_lua_impl.patch
|
|
"${FILESDIR}"/${PN}-0.9.2-fix_tests.patch
|
|
"${FILESDIR}"/${PN}-0.9.2-fix_glib287.patch
|
|
"${FILESDIR}"/${PN}-0.9.2-skip_tests_5-1.patch
|
|
)
|
|
|
|
lua_src_prepare() {
|
|
pushd "${BUILD_DIR}" || die
|
|
# lgi/meson.build & several source files use the LUA version as part of the
|
|
# direct filename, dynamically created, and we respect that.
|
|
|
|
# replace @GENTOO_LUA_VERSION@ with lua version in patched files:
|
|
# lgi/core.c:luaopen_lgi_corelgilua51 (lua_State* L)
|
|
# lgi/core.lua:local core = require 'lgi.corelgilua51'
|
|
# lgi/meson.build: liblgi = shared_module('corelgilua51'
|
|
sed -i \
|
|
-e "s/@GENTOO_LUA_VERSION@/${ELUA/.}/" \
|
|
lgi/core.c \
|
|
lgi/core.lua \
|
|
lgi/meson.build \
|
|
|| die "sed failed"
|
|
|
|
popd
|
|
}
|
|
|
|
src_prepare() {
|
|
default
|
|
lua_copy_sources
|
|
lua_foreach_impl lua_src_prepare
|
|
}
|
|
|
|
lua_src_configure() {
|
|
local emesonargs=(
|
|
-Dlua-pc="${ELUA}"
|
|
-Dlua-bin="${LUA}"
|
|
$(meson_use test tests)
|
|
)
|
|
EMESON_SOURCE="${BUILD_DIR}" \
|
|
BUILD_DIR="${BUILD_DIR}-meson" \
|
|
meson_src_configure
|
|
}
|
|
|
|
src_configure() {
|
|
lua_foreach_impl lua_src_configure
|
|
}
|
|
|
|
lua_src_compile() {
|
|
EMESON_SOURCE="${BUILD_DIR}" \
|
|
BUILD_DIR="${BUILD_DIR}-meson" \
|
|
meson_src_compile
|
|
}
|
|
|
|
src_compile() {
|
|
lua_foreach_impl lua_src_compile
|
|
}
|
|
|
|
lua_src_test() {
|
|
if [[ ${ELUA} == luajit ]]; then
|
|
einfo "Tests are currently not supported on LuaJIT"
|
|
else
|
|
BUILD_DIR="${BUILD_DIR}-meson" \
|
|
virtx meson_src_test
|
|
fi
|
|
}
|
|
|
|
src_test() {
|
|
lua_foreach_impl lua_src_test
|
|
}
|
|
|
|
lua_src_install() {
|
|
BUILD_DIR="${BUILD_DIR}-meson" \
|
|
meson_install
|
|
}
|
|
|
|
src_install() {
|
|
lua_foreach_impl lua_src_install
|
|
local DOCS=( README.md docs/. samples )
|
|
docompress -x /usr/share/doc/${PF}/samples
|
|
einstalldocs
|
|
}
|