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


索引

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

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