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


索引

名称
描述
支持的 EAPIS
传递提供的 ECLASSES
示例
函数
ECLASS 变量
作者
维护者
报告 Bug
文件
另请参见

此文档由 man2html 使用手册页创建。
时间: 2024年11月12日 格林尼治标准时间03:27:01