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 <mgorny@gentoo.org>维护者
Michał Górny <mgorny@gentoo.org>报告 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