跳到主要内容

kmpkg_from_git

从 Git 仓库下载并提取项目源码。

该辅助函数会复用 git 命令行工具的凭据。如需为私有 Git 主机配置凭据,请参见身份验证文档。

若 Git 仓库托管在 BitBucket、GitHub 或 GitLab 平台,应优先使用各平台专属的函数,而非此通用函数:

用法

kmpkg_from_git(
OUT_SOURCE_PATH <SOURCE_PATH>
URL <https://android.googlesource.com/platform/external/fdlibm>
REF <59f7335e4d...>
[HEAD_REF <ref>]
[PATCHES <patch1.patch> <patch2.patch>...]
[LFS [<url>]]
)

参数

OUT_SOURCE_PATH

指定用于存储提取后源码路径的输出变量。 按照惯例,应将该变量名设为 SOURCE_PATH

URL

Git 仓库的远程访问地址(URL)。

REF

要下载的提交对应的 Git SHA 哈希值(完整哈希或短哈希均可)。

FETCH_REF

--head 模式下需要先拉取的 Git 分支。拉取该分支后,会检出(checkout)REF 指定的提交。 此参数适用于 Git 服务器禁止检出“非公开对象(non-advertised objects)”的场景。

HEAD_REF

当包需要从最新源码构建(--head 模式)时使用的 Git 分支。 示例值:maindevelopHEAD

PATCHES

要应用到提取后源码上的补丁文件列表。 补丁文件的相对路径以当前端口目录为基准。

LFS

在 kmpkg 版本 2022.11.14 中新增

启用对 Git LFS(大文件存储)托管文件的拉取功能。 仅会拉取 REF 提交指向的 LFS 文件。

此参数会将 Git LFS 设为该端口的强制依赖项:若未安装 Git LFS 扩展,会触发致命错误。

在 kmpkg 版本 2023.01.23 中新增

若指定了 <url>,则会使用该地址替代原始 Git URL 进行 LFS 文件拉取。

说明

OUT_SOURCE_PATHREFURL 为必填参数。

示例

源码

scripts/cmake/kmpkg_from_git.cmake