liba 0.1.15

An algorithm library based on C/C++
Documentation
# .rst:
# FindPatch
# ----------
#
# Find patch executable.
#
# Result Variables
# ^^^^^^^^^^^^^^^^
#
# This module defines the following variables:
#
# ``Patch_FOUND``
#
# ``Patch_EXECUTABLE``
#
# ``Patch_VERSION``
#
include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake)

if(CMAKE_HOST_WIN32)
  find_program(Patch_EXECUTABLE NAMES patch
    PATHS
      "$ENV{LOCALAPPDATA}/Programs/Git/bin"
      "$ENV{LOCALAPPDATA}/Programs/Git/usr/bin"
      "$ENV{APPDATA}/Programs/Git/bin"
      "$ENV{APPDATA}/Programs/Git/usr/bin"
  )
  mark_as_advanced(Patch_EXECUTABLE)
else()
  find_program(Patch_EXECUTABLE NAMES patch)
  mark_as_advanced(Patch_EXECUTABLE)
endif()

if(EXISTS "${Patch_EXECUTABLE}")
  execute_process(COMMAND ${Patch_EXECUTABLE} --version ERROR_QUIET OUTPUT_VARIABLE Patch_VERSION)
  string(REGEX REPLACE ".*patch ([^\n ]+).*" "\\1" Patch_VERSION "${Patch_VERSION}")
endif()

find_package_handle_standard_args(Patch
  FOUND_VAR
    Patch_FOUND
  REQUIRED_VARS
    Patch_EXECUTABLE
  VERSION_VAR
    Patch_VERSION
)