# Copyright 2026 mva
# Distributed under the terms of the Public Domain or CC0 License
EAPI=8
LUA_COMPAT=( lua{5-{2..4},jit} )
inherit lua git-r3 toolchain-funcs
DESCRIPTION="a utf-8 support module for Lua and LuaJIT"
HOMEPAGE="https://github.com/starwing/luautf8"
EGIT_REPO_URI="https://github.com/starwing/luautf8"
LICENSE="MIT"
SLOT="0"
IUSE="+system-unicode-data test"
DOCS=(README.md)
REQUIRED_USE="${LUA_REQUIRED_USE}"
RESTRICT="!test? ( test )"
RDEPEND="${LUA_DEPS}"
DEPEND="${RDEPEND}"
BDEPEND="
${LUA_DEPS}
lua_targets_luajit? ( dev-lang/luajit[lua52compat] )
system-unicode-data? ( >=app-i18n/unicode-data-14.0.0 )
virtual/pkgconfig
"
src_prepare() {
local ucd="/usr/share/unicode-data" # currently, gentoo have it there
# N.B.: recheck on bumps. I'd like to make PR with moving it to /usr/share/unicode someday
sed -i \
-e "s@UCD/@${ucd}/@" \
parseucd.lua
default
}
lua_src_compile() {
if use system-unicode-data; then
einfo "Performing regeneration unicode data header against app-i18n/unicode-data with ${ELUA}"
"${ELUA}" parseucd.lua
fi
local compiler=(
"$(tc-getCC)"
"${CFLAGS}"
"-fPIC"
"${LDFLAGS}"
"$(lua_get_CFLAGS)"
"-c lutf8lib.c"
"-o lutf8lib-${ELUA}.o"
)
einfo "${compiler[@]}"
${compiler[@]} || die
local linker=(
"$(tc-getCC)"
"-shared"
"${LDFLAGS}"
"-o lutf8lib-${ELUA}.so"
"lutf8lib-${ELUA}.o"
)
einfo "${linker[@]}"
${linker[@]} || die
}
src_compile() {
lua_foreach_impl lua_src_compile
}
lua_src_test() {
local mytests=(
"test.lua"
"test_compat.lua"
"test_pm.lua"
)
for mytest in ${mytests[@]}; do
LUA_CPATH="${S}/lutf8lib-${ELUA}.so" ${ELUA} ${mytest} || die
done
}
src_test() {
lua_foreach_impl lua_src_test
}
lua_src_install() {
exeinto "$(lua_get_cmod_dir)"
newexe "lutf8lib-${ELUA}.so" "lua-utf8.so"
}
src_install() {
lua_foreach_impl lua_src_install
einstalldocs
}