diff options
author | Robin H. Johnson <robbat2@gentoo.org> | 2020-11-28 16:27:10 -0800 |
---|---|---|
committer | Robin H. Johnson <robbat2@gentoo.org> | 2020-11-28 16:28:14 -0800 |
commit | 0e95c6e912a781a82fa7394ca5a4aa0dc92b2b8b (patch) | |
tree | 7a84296851fc3c7b6f52077d88204d7f7d9d5c11 | |
parent | profiles: add slotted-lua dev-lua/lgi to package.mask (diff) | |
download | gentoo-0e95c6e912a781a82fa7394ca5a4aa0dc92b2b8b.tar.gz gentoo-0e95c6e912a781a82fa7394ca5a4aa0dc92b2b8b.tar.bz2 gentoo-0e95c6e912a781a82fa7394ca5a4aa0dc92b2b8b.zip |
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@gentoo.org>
-rw-r--r-- | dev-lua/lgi/lgi-0.9.2-r100.ebuild | 124 |
1 files changed, 124 insertions, 0 deletions
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 000000000000..908e5804dfbd --- /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 +} |