commit:     0e95c6e912a781a82fa7394ca5a4aa0dc92b2b8b
Author:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
AuthorDate: Sun Nov 29 00:27:10 2020 +0000
Commit:     Robin H. Johnson <robbat2 <AT> gentoo <DOT> org>
CommitDate: Sun Nov 29 00:28:14 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0e95c6e9

dev-lua/lgi: revbump with slotted lua support

Builds & passes all src_test runs with Xvfb on lua5.1..5.3.
Not tested with luajit, but presumed to work.

Signed-off-by: Robin H. Johnson <robbat2 <AT> gentoo.org>

 dev-lua/lgi/lgi-0.9.2-r100.ebuild | 124 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 124 insertions(+)

diff --git a/dev-lua/lgi/lgi-0.9.2-r100.ebuild 
b/dev-lua/lgi/lgi-0.9.2-r100.ebuild
new file mode 100644
index 00000000000..908e5804dfb
--- /dev/null
+++ b/dev-lua/lgi/lgi-0.9.2-r100.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+VIRTUALX_REQUIRED="manual"
+LUA_COMPAT=( lua5-{1..3} luajit )
+
+inherit lua eutils toolchain-funcs flag-o-matic virtualx
+
+DESCRIPTION="Lua bindings using gobject-introspection"
+HOMEPAGE="https://github.com/pavouk/lgi";
+SRC_URI="https://github.com/pavouk/lgi/archive/${PV}.tar.gz -> ${P}.tar.gz"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE="examples test"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="${LUA_REQUIRED_USE}"
+
+BDEPEND="${LUA_DEPS}"
+RDEPEND="${LUA_DEPS}
+               dev-libs/gobject-introspection
+               dev-libs/glib
+               dev-libs/libffi:0="
+DEPEND="${RDEPEND}
+               test? (
+                       x11-libs/cairo[glib]
+                       x11-libs/gtk+[introspection]
+                       ${VIRTUALX_DEPEND}
+               )"
+
+lua_src_prepare() {
+       pushd "${BUILD_DIR}" || die
+       # The Makefile & several source files use the LUA version as part of the
+       # direct filename, dynamically created, and we respect that.
+       _slug=${ELUA}
+       _slug=${_slug/.}
+       _slug=${_slug/-}
+       _slug=${_slug/_}
+
+       # Makefile: CORE = corelgilua51.so (and similar lines)
+       sed -r -i \
+               -e "/^CORE\>/s,lua5.,${_slug},g" \
+               lgi/Makefile \
+               || die "sed failed"
+
+       # ./lgi/core.lua:local core = require 'lgi.corelgilua51'
+       # ./lgi/core.c:luaopen_lgi_corelgilua51 (lua_State* L)
+       sed -r -i \
+               -e "/lgi.corelgilua5./s,lua5.,${_slug},g" \
+               lgi/core.lua \
+               lgi/core.c \
+               || die "sed failed"
+
+       # Verify the change as it's important!
+       for f in lgi/core.lua lgi/core.c lgi/Makefile ; do
+               grep -sq "corelgi${_slug}" "${f}" || die "Failed to sed .lua & 
.c for corelgi${_slug}: ${f}"
+       done
+
+       # Cleanup
+       unset _slug
+       popd
+}
+
+src_prepare() {
+       default
+       lua_copy_sources
+       lua_foreach_impl lua_src_prepare
+}
+
+lgi_emake_wrapper() {
+       emake \
+       CC="$(tc-getCC)" \
+       COPTFLAGS="-Wall -Wextra ${CFLAGS}" \
+       LIBFLAG="-shared ${LDFLAGS}" \
+       LUA_CFLAGS="$(lua_get_CFLAGS)" \
+       LUA="${LUA}" \
+       LUA_VERSION="${ELUA#lua}" \
+       LUA_LIBDIR="$(lua_get_cmod_dir)" \
+       LUA_SHAREDIR="$(lua_get_lmod_dir)" \
+       "$@"
+}
+
+lua_src_compile() {
+       pushd "${BUILD_DIR}" || die
+       lgi_emake_wrapper all
+       popd
+}
+
+src_compile() {
+       lua_foreach_impl lua_src_compile
+}
+
+lua_src_test() {
+       pushd "${BUILD_DIR}" || die
+       virtx \
+               lgi_emake_wrapper \
+               check
+       popd
+}
+
+src_test() {
+       lua_foreach_impl lua_src_test
+}
+
+lua_src_install() {
+       pushd "${BUILD_DIR}" || die
+       lgi_emake_wrapper \
+               DESTDIR="${D}" \
+               install
+       popd
+}
+
+src_install() {
+       lua_foreach_impl lua_src_install
+       docompress -x /usr/share/doc/${PF}
+       dodoc README.md
+       dodoc -r docs/*
+       if use examples; then
+               dodoc -r samples
+       fi
+}

Reply via email to