lpeglabel-9999mva
download
# Copyright 2026 mva
# Distributed under the terms of the Public Domain or CC0 License
EAPI=8
LUA_COMPAT=( lua{5-{1..4},jit} )
inherit lua git-r3 toolchain-funcs
DESCRIPTION="LPeg extension that supports labeled failures"
HOMEPAGE="https://github.com/sqmedeiros/lpeglabel"
EGIT_REPO_URI="https://github.com/sqmedeiros/lpeglabel"
LICENSE="MIT"
SLOT="0"
lua_prepare() {
if [[ "${ELUA}" = "luajit" ]]; then
pushd "${BUILD_DIR}"
sed \
-e '/define luaL_newlib/d' \
-e '/(LUA_VERSION_NUM/a#define LUAI_FUNC __attribute__((visibility("hidden"))) extern' \
-i lpltypes.h || die
popd
fi
}
src_prepare() {
default
lua_copy_sources
lua_foreach_impl lua_prepare
}
lua_compile() {
pushd "${BUILD_DIR}"
local compiler=(
"$(tc-getCC)"
"${CFLAGS}"
"-fPIC"
"${LDFLAGS}"
"$(lua_get_CFLAGS)"
"-shared"
"${LDFLAGS}"
"-o ${PN}-${ELUA}.so"
*.{c,h}
# {lplvm,lplcap,lpltree,lplcode,lplprint}.c
)
einfo "${compiler[@]}"
${compiler[@]} || die
popd
}
lua_install() {
pushd "${BUILD_DIR}"
exeinto "$(lua_get_cmod_dir)"
newexe "${PN}-${ELUA}.so" "${PN}.so"
insinto "$(lua_get_lmod_dir)"
doins relabel.lua
popd
}
src_compile() {
lua_foreach_impl lua_compile
}
src_install() {
lua_foreach_impl lua_install
}