为kmpkg打包GitHub仓库示例:libogg
创建清单文件
清单文件(命名为kmpkg.json)是一个 JSON 文件,用于描述包的元数据。
对于 libogg,我们需要在 ports/libogg/ 目录下创建 kmpkg.json 文件,内容如下:
{
"name": "libogg",
"version-string": "1.3.3",
"description": "Ogg 是一种多媒体容器格式,也是 Xiph.org 多媒体编解码器的原生文件和流格式。",
"homepage": "https://www.xiph.org/ogg/"
}
你可以执行 kmpkg format-manifest ports/libogg/kmpkg.json 命令,按照 kmpkg 的规范格式化该清单文件。
创建端口文件
portfile.cmake 文件用于描述如何构建和安装包。首先,我们通过 kmpkg_from_github 函数从 GitHub 下载项目源码:
kmpkg_from_github(
OUT_SOURCE_PATH SOURCE_PATH
REPO xiph/ogg
REF v1.3.3
SHA512 0bd6095d647530d4cb1f509eb5e99965a25cc3dd9b8125b93abd6b248255c890cf20710154bdec40568478eb5c4cde724abfb2eff1f3a04e63acef0fbbc9799b
HEAD_REF master
)
需重点更新的参数说明:
REPO:填写 GitHub 仓库路径(格式为「用户名/仓库名」);REF:指定要使用的稳定标签/提交记录;SHA512:填写下载文件的校验和(快速获取方式:先将其设为0,尝试安装该包,然后从报错信息中复制正确的校验和)。
最后,通过 CMake 配置项目、安装包,并复制许可证文件:
kmpkg_cmake_configure(SOURCE_PATH ${SOURCE_PATH})
kmpkg_cmake_install()
kmpkg_install_copyright("${SOURCE_PATH}/COPYING")
如果你的包需要额外配置项,请参考 kmpkg_cmake_configure 和 kmpkg_cmake_install 的官方文档。
完成上述步骤后,即可运行 kmpkg install libogg 命令构建并安装该包。
推荐的示例端口文件
kmpkg 官方仓库的 ports/ 目录 中包含大量可参考的端口文件示例,涵盖了非 CMake 构建的库:
- 仅头文件库
- rapidjson
- range-v3
- 基于 MSBuild 的库
- chakracore
- 非 CMake(自定义构建系统)的库
- openssl
- ffmpeg