LLVM.ECLASS
章节: eclass-manpages (5)更新: 2024年11月
索引 返回主目录
名称
llvm.eclass - 用于构建针对分槽 LLVM 的实用函数已弃用
替换: llvm-r1.eclass描述
llvm.eclass 提供了可用于构建针对特定版本的分槽 LLVM 的实用函数(对于旧版本,回退到 :0)。此 eclass 不会生成依赖项字符串。您需要自己编写正确的依赖项字符串,以确保安装了适当版本的 LLVM。
支持 LLVM 9 到 11 的软件包的示例用法
inherit cmake llvm RDEPEND=" <sys-devel/llvm-11:= || ( sys-devel/llvm:9 sys-devel/llvm:10 sys-devel/llvm:11 ) " DEPEND=${RDEPEND} LLVM_MAX_SLOT=11 # only if you need to define one explicitly pkg_setup() { llvm_pkg_setup do-something-else }
需要带有特定目标的 LLVM+clang 的软件包的示例
inherit cmake llvm # note: do not use := on both clang and llvm, it can match different # slots then. clang pulls llvm in, so we can skip the latter. RDEPEND=" >=sys-devel/clang-9:=[llvm_targets_AMDGPU(+)] " DEPEND=${RDEPEND} llvm_check_deps() { has_version -d "sys-devel/clang:${LLVM_SLOT}[llvm_targets_AMDGPU(+)]" }
支持的 EAPIS
7 8传递提供的 ECLASSES
llvm-utils函数
- get_llvm_slot [-b|-d] [<max_slot>]
- 查找对软件包可接受的最新 LLVM 安装,并打印其主版本号(即槽位)。
如果指定了 -b,则检查将相对于 BROOT 执行,并返回 BROOT 路径。当您的软件包调用 llvm-config 可执行文件时,这很合适。
如果指定了 -d,则检查将相对于 ESYSROOT 执行,并返回 ESYSROOT 路径。当您的软件包使用 CMake find_package(LLVM) 时,这很合适。-d 是默认值。
如果指定了 <max_slot>,则只会考虑不晚于 <max_slot> 的 LLVM 版本。否则,所有 LLVM 版本都将被认为是可接受的。该函数不支持指定最小支持版本 - 开发人员必须通过提供适当的依赖项来确保安装了足够新的版本。
如果在 ebuild 中定义了 llvm_check_deps() 函数,则将调用它以验证特定槽位是否可接受。在函数范围内,LLVM_SLOT 将被定义为 SLOT 值(0、4、5...)。如果槽位可接受,则该函数应返回 true 状态,否则返回 false。如果未定义 llvm_check_deps(),则该函数默认为检查 sys-devel/llvm:${LLVM_SLOT} 是否已安装。
- get_llvm_prefix [-b|-d] [<max_slot>]
- 查找对软件包可接受的最新 LLVM 安装,并打印其绝对路径。
选项和行为与 get_llvm_slot 相同。
- llvm_pkg_setup
- 将对最新可接受 LLVM 槽位适当的可执行文件目录添加到 PATH 的开头。有关路径确定逻辑,请参阅 get_llvm_prefix 文档。
最高可接受的 LLVM 槽位可以在 LLVM_MAX_SLOT 变量中设置。如果未设置或为空,则任何槽位都是可接受的。
PATH 操作仅对源代码构建执行。安装二进制软件包时,该函数为无操作。
如果需要任何其他行为,则应将函数的内容内联到 ebuild 中并根据需要进行修改。
ECLASS 变量
- LLVM_MAX_SLOT
- 软件包支持的最高 LLVM 槽位。需要在调用 llvm_pkg_setup 之前设置。如果未设置,则不假设上限。
作者
Michał Górny <[email protected]>维护者
Michał Górny <[email protected]>报告 Bug
请通过 https://bugs.gentoo.org/ 报告 Bug文件
llvm.eclass参见
ebuild(5)https://gitweb.gentoo.org/repo/gentoo.git/log/eclass/llvm.eclass
索引
此文档由 man2html 使用手册页创建。
时间: 2024年11月12日 格林威治标准时间 03:27:00