# Distributed under the OSI-approved BSD 3-Clause License. See accompanying # file Copyright.txt or https://cmake.org/licensing for details. #.rst: # FindPatch # --------- # # The module defines the following variables: # # ``Patch_EXECUTABLE`` # Path to patch command-line executable. # ``Patch_FOUND`` # True if the patch command-line executable was found. # # The following :prop_tgt:`IMPORTED` targets are also defined: # # ``Patch::patch`` # The command-line executable. # # Example usage: # # .. code-block:: cmake # # find_package(Patch) # if(Patch_FOUND) # message("Patch found: ${Patch_EXECUTABLE}") # endif() set(_doc "Patch command line executable") set(_patch_path ) if(CMAKE_HOST_WIN32) set(_patch_path "$ENV{LOCALAPPDATA}/Programs/Git/bin" "$ENV{LOCALAPPDATA}/Programs/Git/usr/bin" "$ENV{APPDATA}/Programs/Git/bin" "$ENV{APPDATA}/Programs/Git/usr/bin" ) endif() # First search the PATH find_program(Patch_EXECUTABLE NAME patch PATHS ${_patch_path} DOC ${_doc} ) if(CMAKE_HOST_WIN32) # Now look for installations in Git/ directories under typical installation # prefixes on Windows. find_program(Patch_EXECUTABLE NAMES patch PATH_SUFFIXES Git/usr/bin Git/bin GnuWin32/bin DOC ${_doc} ) endif() if(Patch_EXECUTABLE AND NOT TARGET Patch::patch) add_executable(Patch::patch IMPORTED) set_property(TARGET Patch::patch PROPERTY IMPORTED_LOCATION ${Patch_EXECUTABLE}) endif() unset(_patch_path) unset(_doc) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) find_package_handle_standard_args(Patch REQUIRED_VARS Patch_EXECUTABLE)