FindPatch¶
3.10 版本新增。
查找用于将 diff 补丁应用于原始文件的 patch 命令行可执行文件。
find_package(Patch [...])
导入的目标¶
此模块提供以下 导入目标
Patch::patch封装
patch命令行可执行文件的目标,仅在找到patch时可用。在 4.0 版本中已更改: 此导入的目标仅在
CMAKE_ROLE为PROJECT时定义。
结果变量¶
此模块定义了以下变量
Patch_FOUND一个布尔值,指示是否找到了
patch命令行可执行文件。
缓存变量¶
以下缓存变量也可以设置
Patch_EXECUTABLE指向
patch命令行可执行文件的路径。
示例¶
查找 patch 命令并在进程中执行它
find_package(Patch)
if(Patch_FOUND)
execute_process(
COMMAND ${Patch_EXECUTABLE} -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/src.patch
)
endif()
例如,该导入的目标可以在 add_custom_command() 命令中使用,该命令会在某个构建规则依赖于其输出时修补指定的文件。
find_package(Patch)
if(TARGET Patch::patch)
# Executed when some build rule depends on the src.c file.
add_custom_command(
OUTPUT src.c
COMMAND Patch::patch -p1 -i ${CMAKE_CURRENT_SOURCE_DIR}/src.patch
# ...
)
endif()