LUA.ECLASS
章节: eclass-manpages (5)更新时间: 2024年11月
索引 返回主内容
名称
lua.eclass - Lua 软件包的通用 eclass描述
一个通用的 eclass,提供辅助函数来构建和安装支持为多个 Lua 实现安装的软件包。此 eclass 设置正确的 IUSE。REQUIRED_USE 的修改必须由 ebuild 的作者完成(但为了方便起见提供了 LUA_REQUIRED_USE,请参见下文)。eclass 导出 LUA_DEPS 和 LUA_USEDEP,以便您可以轻松地为您的软件包创建正确的依赖关系。它还提供了一种方法,可以轻松地为每个启用的 Lua 实现运行命令并为它们复制源代码。
请注意,由于此 eclass 始终也继承 lua-utils,因此在使用前者的 ebuild 中,无需显式继承后者即可使用诸如 lua_get_CFLAGS 之类的辅助函数。
支持的 EAPIS
7 8传递提供的 ECLASSES
lua-utils示例
EAPI=8 LUA_COMPAT=( lua5-{3..4} ) inherit lua [...] REQUIRED_USE="${LUA_REQUIRED_USE}" DEPEND="${LUA_DEPS}" RDEPEND="${DEPEND} dev-lua/foo[${LUA_USEDEP}]" BDEPEND="virtual/pkgconfig" lua_src_install() { emake LUA_VERSION="$(lua_get_version)" install } src_install() { lua_foreach_impl lua_src_install }
函数
- lua_copy_sources
- 为每个启用的 Lua 实现创建软件包源代码的单个副本。
源代码始终从初始 BUILD_DIR(如果未设置则为 S)复制到与 lua_foreach_abi() 使用的 BUILD_DIR 匹配的特定于实现的构建目录。
- lua_foreach_impl <command> [<args>...]
- 为每个启用的 Lua 实现运行给定的命令。如果传递了其他参数,它们将传递到命令中。
如果所有调用都成功,则该函数将返回 0 状态。否则,将返回第一个失败调用的返回代码。
对于每个正在运行的命令,ELUA、LUA 和 BUILD_DIR 在本地设置,前两个导出到命令环境。
ECLASS 变量
- LUA_COMPAT (必需) (在继承之前设置)
- 此变量包含软件包支持的 Lua 实现列表。它必须在`inherit`调用之前设置。它必须是一个数组。
示例
LUA_COMPAT=( lua5-1 lua5-3 lua5-4 )
请注意,如果您愿意,也可以使用 bash 花括号扩展。
LUA_COMPAT=( lua5-{1..3} )
- LUA_COMPAT_OVERRIDE (用户变量)
- 在处理 ebuild 时,可以使用此变量覆盖 ebuild 中的 LUA_COMPAT。它是一个字符串,列出了将为其构建软件包的所有实现。它需要在调用环境中指定,而不是在 ebuild 中。
需要注意的是,为了保持元数据不变性,LUA_COMPAT_OVERRIDE 不会影响 IUSE 或依赖项。LUA_TARGETS 的状态被忽略,并且构建 LUA_COMPAT_OVERRIDE 中的所有实现。需要手动满足依赖项。
示例
LUA_COMPAT_OVERRIDE='luajit' emerge -1v dev-lua/foo
- LUA_REQ_USE (在继承之前设置)
- 在所选 Lua 实现上需要启用的 USE 标志列表,以 USE 依赖项字符串的形式形成。它应该对 LUA_COMPAT 中的所有实现有效,因此可能需要使用 USE 默认值。这必须在调用`inherit`之前设置。
示例
LUA_REQ_USE="deprecated"
它将导致 Lua 依赖项看起来像
lua_targets_luaX-Y? ( dev-lang/lua:X.Y[deprecated] )
- BUILD_DIR (由 ECLASS 生成)
- 当前构建目录。在全局范围内,它应该包含一个初始构建目录;如果未设置,则默认为 ${S}。
在 lua_foreach_impl() 运行的函数中,BUILD_DIR 在本地设置为特定于实现的构建目录。该路径是通过将连字符和实现名称附加到初始 BUILD_DIR 的最后一个组件来创建的。
示例值
${WORKDIR}/foo-1.3-lua5-1
- LUA_DEPS (由 ECLASS 生成)
- 这是 LUA_COMPAT 中列出的所有实现的 eclass 生成的 Lua 依赖项字符串。
示例用法
RDEPEND="${LUA_DEPS} dev-foo/mydep" DEPEND="${RDEPEND}"
示例值
lua_targets_lua5-1? ( dev-lang/lua:5.1 ) lua_targets_lua5-3? ( dev-lang/lua:5.3 )
- LUA_REQUIRED_USE (由 ECLASS 生成)
- 这是一个 eclass 生成的 required-use 表达式,它确保至少启用了 Lua 实现。
此表达式应通过将其包含在 REQUIRED_USE 中(可选地在 use 标志后面)来在 ebuild 中使用。
示例用法
REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )"
示例值
|| ( lua_targets_lua5-1 lua_targets_lua5-3 )
- LUA_USEDEP (由 ECLASS 生成)
- 这是一个 eclass 生成的 USE 依赖项字符串,可用于依赖于为相同 Lua 实现构建的另一个 Lua 软件包。
示例用法
RDEPEND="dev-lua/foo[${LUA_USEDEP}]"
示例值
lua_targets_lua5-1(-)?,lua_targets_lua5-3(-)?
作者
Marek Szuba <[email protected]>基于 Michał Górny <[email protected]> 等人的 python-r1.eclass。
维护者
William Hubbs <[email protected]>报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug。文件
lua.eclass另请参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/lua.eclass
索引
此文档由 man2html 使用手册页创建。
时间: 2024年11月12日 格林尼治标准时间03:27:01