z_kmpkg_apply_patches
注意
这是 kmpkg内部用于实现核心逻辑的辅助函数。 其行为和参数可能会以不兼容的方式突发变更,且无任何通知。 请勿在自定义端口中使用该函数。
为指定的源码树批量应用补丁文件。
用法
z_kmpkg_apply_patches(
SOURCE_PATH <path-to-source>
[QUIET]
PATCHES <patch>...
)
参数说明
SOURCE_PATH
必填参数,指定要应用补丁的源码根目录路径(补丁会被应用到该目录下的文件/目录)。
PATCHES
必填参数,指定需要应用的补丁文件列表(可传入多个补丁路径)。
- 若传入相对路径:会以端口目录(port directory)的根目录为基准解析;
- 若传入绝对路径:直接使用该路径指向的补丁文件。
QUIET
可选参数,启用“静默模式”:
- 不打印补丁应用过程中的任何日志信息;
- 即使补丁应用失败(如补丁无法适配源码),也不会触发 CMake 致命错误(fatal error),构建流程不会中断。
注意事项
对于体积较大的补丁文件,kmpkg 内部的常见用法是:
- 通过
kmpkg_download_distfile从远程地址下载补丁文件; - 将下载后的补丁文件绝对路径传入
PATCHES参数,而非直接将大补丁文件放在端口目录中(减少端口包体积)。
示例(仅作内部逻辑参考)
# 下载大补丁文件
kmpkg_download_distfile(
PATCH_FILE
URLS "https://example.com/large-patch.patch"
FILENAME "large-patch.patch"
SHA512 1234567890abcdef...
)
# 应用补丁(内部用法示例,禁止自定义端口使用)
z_kmpkg_apply_patches(
SOURCE_PATH ${SOURCE_PATH}
PATCHES "${PATCH_FILE}" "${CMAKE_CURRENT_LIST_DIR}/small-patch.patch"
)