1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- # 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)
|