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>]
)

参数

OUT_SOURCE_PATH

指定将包含提取位置的输出变量。

此项应按约定设置为 SOURCE_PATH

存储库

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

REF

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

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

如果指定了 REF,则也必须指定 SHA512

SHA512

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

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

HEAD_REF

用于拉取 --head 构建的不稳定 git commit-ish(理想情况下为分支)。

对于大多数项目,此项应为 master。 所选分支应为预期在所有支持的平台上始终可构建的分支。

PATCHES

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

相对路径基于端口目录。

GITHUB_HOST

企业 GitHub 实例的替换主机。

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

AUTHORIZATION_TOKEN

通过授权 HTTP 头传递作为 "token ${AUTHORIZATION_TOKEN}" 的令牌。

FILE_DISAMBIGUATOR

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

说明

必须至少指定 REFHEAD_REF 之一,但最好两者同时存在。

这会在头部构建期间导出 VCPKG_HEAD_VERSION 变量。

示例

Source

scripts/cmake/vcpkg_from_github.cmake