vcpkg_from_sourceforge

从 SourceForge 的项目中下载并提取存档。

此函数会自动检查一组 SourceForge 镜像。 可通过三联密码中的 VCPKG_SOURCEFORGE_EXTRA_MIRRORS 列表变量注入其他镜像。

使用情况

vcpkg_from_sourceforge(
    OUT_SOURCE_PATH SOURCE_PATH
    REPO <cunit/CUnit>
    [REF <2.1-3>]
    SHA512 <547b417109332...>
    FILENAME <CUnit-2.1-3.tar.bz2>
    [NO_REMOVE_ONE_LEVEL]
    [PATCHES <patch1.patch> <patch2.patch>...]
)

参数

OUT_SOURCE_PATH

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

此项应按约定设置为 SOURCE_PATH

存储库

SourceForge 上的组织或用户和存储库(可选)。

REF

不会更改内容的稳定版本号。

FILENAME

文件的本地名称。 文件在端口之间共享,因此可能需要重命名该文件,使其清楚地归因于此端口并避免发生冲突。

例如,我们可以获取下载链接:https://sourceforge.net/settings/mirror_choices?projectname=mad&filename=libmad/0.15.1b/libmad-0.15.1b.tar.gz&selected=nchc,其中 REPO 是 mad/libmad,REF 是 0.15.1b,FILENAME 是 libmad-0.15.1b.tar.gz

在某些特殊链接中:https://sourceforge.net/settings/mirror_choices?projectname=soxr&filename=soxr-0.1.3-Source.tar.xz&selected=nchc,REPO 是 soxr,REF 不存在,而 FILENAME 是 soxr-0.1.3-Source.tar.xz

SHA512

应与存档匹配的 SHA512 哈希。

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

WORKING_DIRECTORY

如果指定,存档将提取到工作目录而不是 ${CURRENT_BUILDTREES_DIR}/src/

仍然会将存储提取到该目录 (${WORKING_DIRECTORY}/${REF}-${HASH}/) 下的子文件夹中。

修补程序

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

相对路径基于端口目录。

NO_REMOVE_ONE_LEVEL

指定不应出现的顶级文件夹的默认移除。

示例

Source

scripts/cmake/vcpkg_from_sourceforge.cmake