跳到主要内容

kmpkg_from_sourceforge

从 SourceForge 平台的项目中下载并提取归档文件。

该函数会自动检查一组 SourceForge 官方镜像源;可通过三元组(triplet)中的 KMPKG_SOURCEFORGE_EXTRA_MIRRORS 列表变量,注入额外的自定义镜像源。

用法

kmpkg_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

REPO

SourceForge 平台上的组织/用户名称,以及可选的仓库子路径(格式:<组织/用户>/<仓库(可选)>)。

REF

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

FILENAME

文件的本地命名。文件会在不同端口间共享,因此可能需要重命名文件,以明确归属此端口并避免命名冲突。

示例说明(通过下载链接解析参数):

  • 下载链接:https://sourceforge.net/settings/mirror_choices?projectname=mad&filename=libmad/0.15.1b/libmad-0.15.1b.tar.gz&selected=nchc 对应参数:REPOmad/libmadREF0.15.1bFILENAMElibmad-0.15.1b.tar.gz
  • 特殊链接(无版本子目录):https://sourceforge.net/settings/mirror_choices?projectname=soxr&filename=soxr-0.1.3-Source.tar.xz&selected=nchc 对应参数:REPOsoxrREF 无需设置,FILENAMEsoxr-0.1.3-Source.tar.xz

SHA512

需与归档文件匹配的 SHA512 哈希值。

获取该值最便捷的方式:先将此参数设为 0,然后尝试构建该端口;构建失败时的报错信息会包含文件完整的 SHA512 哈希值,直接复制该值回填到端口文件即可。

WORKING_DIRECTORY

若指定该参数,归档文件会被提取到该目录,而非默认的 ${CURRENT_BUILDTREES_DIR}/src/。 归档文件仍会被提取到该目录下的子文件夹(路径格式:${WORKING_DIRECTORY}/${REF}-${HASH}/)。

PATCHES

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

NO_REMOVE_ONE_LEVEL

指定不执行默认的“移除归档文件顶层文件夹”操作。

示例

源码

scripts/cmake/kmpkg_from_sourceforge.cmake