vcpkg_from_github

从 GitHub 下载并提取项目。 启用对 install --head.

这还适用于 Gitea,方法是使用 GITHUB_HOST 选项指定 Gitea 服务器。

用法

vcpkg_from_github(
    OUT_SOURCE_PATH <SOURCE_PATH>
    REPO <Microsoft/cpprestsdk>
    [REF <v2.0.0>]
    [SHA512 <45d0d7f8cc350...>]
    [HEAD_REF <master>]
    [PATCHES <patch1.patch> <patch2.patch>...]
    [GITHUB_HOST <https://github.com>]
    [AUTHORIZATION_TOKEN <${SECRET_FROM_FILE}>]
    [FILE_DISAMBIGUATOR <N>]
    [USE_TARBALL_API]
)

参数

OUT_SOURCE_PATH

指定将包含提取位置的 out-variable。

这应按约定进行 SOURCE_PATH 设置。

回购

GitHub 上的组织或用户和存储库。

裁判

稳定的 git commit-ish(理想情况下是标记或提交),不会更改内容。 这不应是分支。

对于没有官方版本的存储库,这可以设置为当前最新主控形状的完整提交 ID。

如果 REF 已指定, SHA512 还必须指定。

SHA512

应与存档匹配的 SHA512 哈希(https://github.com/${REPO}/archive/${REF}.tar.gz)。

这是最简单的确定,方法是先将其 0设置为该端口,然后尝试生成端口。 错误消息将包含可以复制回 portfile 的完整哈希。

HEAD_REF

要拉取 --head 生成的不稳定 git commit-ish(理想情况下是分支)。

对于大多数项目,这应该是 master。 所选的分支应该是在所有受支持的平台上始终可构建的分支。

补丁

要应用于提取源的修补程序列表。

相对路径基于端口目录。

GITHUB_HOST

企业 GitHub 实例的替换主机。

此字段应包含所需 URL 的方案、主机和端口,而无需尾部斜杠。

AUTHORIZATION_TOKEN

要通过授权 HTTP 标头传递为“token ${AUTHORIZATION_TOKEN}”的令牌。 如果是AUTHORIZATION_TOKEN细化访问令牌,则还必须使用USE_TARBALL_API

FILE_DISAMBIGUATOR

如果 SHA512 更改(即使 git ref 未更改)来唯一标识生成的文件名的令牌,以避免单步执行相同的文件名。

USE_TARBALL_API

指定后,vcpkg 将使用 GitHub REST API 中记录的 tarball API,而不是存档 API 来下载源。

此选项存在,而不是全局控制的设置,因为 tarball API 返回的源的 SHA512 不同于常规存档 API。

注释

至少必须指定其中一个 REFHEAD_REF 必须指定,但最好同时存在这两者。

这会在 VCPKG_HEAD_VERSION 头生成期间导出变量。

例子

来源

scripts/cmake/vcpkg_from_github.cmake