FindPatch

3.10 版本新增。

查找用于将diff补丁应用于原始文件的 patch 命令行可执行文件。

导入的目标

此模块提供以下 导入目标

Patch::patch

封装 patch 命令行可执行文件的目标,仅当找到 patch 时才可用。

4.0 版本更改: 此导入目标仅在 CMAKE_ROLEPROJECT 时定义。

结果变量

此模块定义了以下变量

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()