diff options
Diffstat (limited to 'dev-lua/mpack/mpack-1.0.4-r100.ebuild')
-rw-r--r-- | dev-lua/mpack/mpack-1.0.4-r100.ebuild | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/dev-lua/mpack/mpack-1.0.4-r100.ebuild b/dev-lua/mpack/mpack-1.0.4-r100.ebuild new file mode 100644 index 000000000000..7aca1045a875 --- /dev/null +++ b/dev-lua/mpack/mpack-1.0.4-r100.ebuild @@ -0,0 +1,86 @@ +# Copyright 1999-2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +LUA_COMPAT=( lua5-{1..3} luajit ) + +inherit lua toolchain-funcs + +DESCRIPTION="Lua bindings for libmpack" +HOMEPAGE="https://github.com/libmpack/libmpack/" +SRC_URI="https://github.com/libmpack/libmpack/archive/${PV}.tar.gz -> ${P}.tar.gz" +S="${WORKDIR}/libmpack-${PV}/binding/lua" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" +IUSE="test" +RESTRICT="!test? ( test )" + +RDEPEND="${LUA_DEPS}" +DEPEND="${RDEPEND}" +BDEPEND="virtual/pkgconfig + test? ( + ${RDEPEND} + dev-lua/busted[${LUA_USEDEP}] + )" + +lua_src_compile() { + # Make sure we have got no leftovers from other implementations. + # There is no 'clean' target in the makefile, though. + rm -f ${PN}.so + + # We set LUA_LIB to an empty string while building version 1.0.4 because + # compiled Lua modules must not link against liblua. This has already been + # fixed upstream. + emake \ + CC="$(tc-getCC)" \ + USE_SYSTEM_LUA=yes \ + LUA_INCLUDE="$(lua_get_CFLAGS)" \ + LUA_LIB="" + + # Tag the result with current implementation and move it out of the way. + mv ${PN}.so ${PN}-${ELUA}.so || die +} + +src_compile() { + lua_foreach_impl lua_src_compile +} + +lua_src_test() { + # "[ FAILED ] test.lua @ 279: mpack should not leak memory" + # It doesn't seem upstream actually support LuaJIT so were this up to me + # I would drop it from LUA_COMPAT, unfortunately there are packages in the + # tree which currently expect it to be supported. + if [[ ${ELUA} == "luajit" ]]; then + ewarn "Not running tests under ${ELUA} because they are known to fail" + return + fi + + # The test suite must be able to find the module under its original name. + rm -f ${PN}.so + ln -s ${PN}-${ELUA}.so ${PN}.so || die + busted --lua="${ELUA}" -o gtest test.lua || die +} + +src_test() { + lua_foreach_impl lua_src_test +} + +lua_src_install() { + # This time we move the correct library file back in order not to risk + # confusing make with symlinks. + mv ${PN}-${ELUA}.so ${PN}.so || die + + emake \ + DESTDIR="${ED}" \ + USE_SYSTEM_LUA=yes \ + LUA_CMOD_INSTALLDIR="$(lua_get_cmod_dir)" \ + install +} + +src_install() { + lua_foreach_impl lua_src_install + einstalldocs +} |