Skip to main content
Version: nightly 🚧

端口

本文详细解释了端口的概念、它们的功能以及它们的预期内容。

kmpkg 中的端口是一个版本控制的配方,可生成一组文件。执行端口会通过生成新的头文件或二进制文件来影响安装图。端口可能依赖于其他端口,并且在启用某些功能时可能需要额外的依赖关系。这些依赖关系必须反映在端口元数据中。一个端口至少包含:

  • 有关包的元数据:名称、版本、支持的功能、依赖项等。
  • 获取、构建(如果需要)和安装包的说明。

此外,端口可能包括:

  • 适用于包源代码的补丁
  • 与项目构建系统集成的说明

Portfile (portfile.cmake)

所有端口都必须包含一个端口文件(名为portfile.cmake的文件)。 portfile 是一个脚本,其中包含有关如何在 kmpkg 环境中构建和安装软件包的说明。端口文件执行的一些常见任务是:

  • 下载包的源代码。
  • 使用上游构建系统构建包。
  • 将构建输出复制到 kmpkg 安装树。
  • 安装构建系统集成文件。

kmpkg.json

kmpkg.json 文件描述了有关 kmpkg 端口中包含的包的元数据。该文件定义了包的名称、版本、描述、依赖项、支持的功能和平台等属性。 请参阅 kmpkg.json 文件参考以了解更多信息。

补丁文件

在某些情况下,端口可能包含补丁文件。这些文件对库的源代码进行了修改,这对于解决现有问题或保持与其他组件的兼容性至关重要。在 构建过程开始之前,补丁将作为端口文件执行步骤的一部分应用,从而促进无缝且无错误的库集成。请参考 维护者指南 了解更多信息。

端口类别

端口类别是维护人员用来阐明不同端口在 kmpkg 中所扮演的角色的口语术语。 虽然这些类别有助于描述一般功能,但值得注意的是,根据其功能和用例,任何给定端口都可以属于多个类别,或者可能根本不属于任何类别。

标准端口

标准端口用作从源生成库或为仅限标头的库提供头文件的方案。 它包含获取、生成和安装库所需的说明和元数据。 特选注册表中的绝大多数库都是标准端口。 s

元端口

元端口用于对安装图表施加约束,而无需有自己的生成文件。 这些端口通常用于将一组相关库分组到单个名称下,或用作可替换组件的间接层。 例如,boost 是一个元端口,它以单个名称将各种 Boost 库组合在一起,以便更轻松地进行依赖项管理。

脚本端口

脚本端口包含实用程序脚本,主要用于 kmpkg 内的内部任务或供其他端口使用。这些端口支持实用程序脚本的版本控制,从而保持兼容性和标准化。 例如,kmpkg-cmake 是一个公开 kmpkg_cmake_configure() 的脚本端口辅助功能。

后续步骤

本文档概述了 kmpkg 中的端口,详细介绍了它们的基本元素和各种类别。有关更高级的主题和详细指南,请参阅以下内容: