用例: 为依赖项启用可选功能
了解如何使用 kmpkg 中的功能自定义 llvm 包。
安装库
我们将以 llvm 为例。您可以使用以下方式安装它:
> kmpkg install llvm
或通过清单:
{
"dependencies": ["llvm"]
}
现在安装了 llvm,我们可以执行:
> installed\x86-windows\bin\llc.exe --version
我们看到:
Registered Targets:
x86 - 32-bit X86: Pentium-Pro and above
x86-64 - 64-bit X86: EM64T and AMD64
安装附加功能
但是 llvm 支持更多目标,从 ARM 到 SPARC 到 SystemZ。 然而,显然我们当前的安装不包括 ARM 作为目标; 因此,我们需要了解 kmpkg 如何允许我们安装其他 LLVM 目标。 llvm 端口通过“target-*”功能允许这样做。
如果我们这样做:
> kmpkg search llvm
我们可以看到:
llvm 10.0.0#6 The LLVM Compiler Infrastructure
llvm[clang] Build C Language Family Front-end.
llvm[clang-tools-extra] Build Clang tools.
...
llvm[target-all] Build with all backends.
llvm[target-amdgpu] Build with AMDGPU backend.
llvm[target-arm] Build with ARM backend.
...
我们可以使用 install-feature 语法安装任何这些目标:
> kmpkg install llvm[target-arm] # Installs LLVM with the ARM target
{
"dependencies": [{ "name": "llvm", "features": ["target-arm"] }]
}