kmpkg_download_distfile
下载并缓存此端口所需的分发文件。
此辅助函数应始终替代 CMake 内置的 file(DOWNLOAD) 命令使用,因为它
支持资产缓存(Asset Caching)等特性。
如果可能,应优先使用各类 kmpkg_from_* 系列函数,而非直接调用此函数,
例如以下这些:
用法
kmpkg_download_distfile(
<out-var>
URLS <http://mainUrl> <http://mirror1>...
FILENAME <output.zip>
SHA512 <5981de...>
[ALWAYS_REDOWNLOAD]
)
参数
out-var
用于存储已下载文件完整路径的输出变量名称。
该变量随后可直接传递给 kmpkg_extract_source_archive
来提取源码包。
按照惯例,通常使用 ARCHIVE 作为输出变量名。
kmpkg_download_distfile(
ARCHIVE # 这是输出变量(out-var)
URLS "https://downloads.apache.org/apr/apr-${VERSION}.tar.bz2"
FILENAME "apr-${VERSION}.tar.bz2"
SHA512 629b60680d1244641828019db903a1b199e8a19c8f27a5132b93faacb381ce561f88463345ab019258f1f1e8cfdf8aa986ac815153a8e7e04a22b3932f9fedd2
)
URLS
待尝试的 URL 列表。这些 URL 会按顺序逐个尝试,直到其中一个下载的文件与指定的 SHA512 哈希值匹配成功。
FILENAME
文件的本地命名。文件会在不同端口间共享,因此可能需要重命名文件,以明确归属此端口并避免命名冲突。
SHA512
文件的预期哈希值。
如果下载文件的哈希值与该值不匹配,构建流程会终止,并输出描述哈希值不匹配的提示信息。
QUIET
命中缓存时抑制输出日志。
SKIP_SHA512
跳过文件的 SHA512 哈希值校验。
此开关仅在通过 --head 命令行标志构建时有效。
ALWAYS_REDOWNLOAD
禁用缓存机制;适用于 REST 接口调用或其他下载内容不稳定的场景。
使用此选项时必须同时指定 SKIP_SHA512。
HEADERS
要附加到下载请求中的请求头列表。可用于下载时的身份验证。
请求头需按 "请求头名称: 请求头值" 的格式指定。