| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130 | 
							- # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
 
- # file Copyright.txt or https://cmake.org/licensing for details.
 
- #[=======================================================================[.rst:
 
- FindGit
 
- -------
 
- The module defines the following variables:
 
- ``GIT_EXECUTABLE``
 
-   Path to Git command-line client.
 
- ``Git_FOUND``, ``GIT_FOUND``
 
-   True if the Git command-line client was found.
 
- ``GIT_VERSION_STRING``
 
-   The version of Git found.
 
- .. versionadded:: 3.14
 
-   The module defines the following ``IMPORTED`` targets (when
 
-   :prop_gbl:`CMAKE_ROLE` is ``PROJECT``):
 
- ``Git::Git``
 
-   Executable of the Git command-line client.
 
- Example usage:
 
- .. code-block:: cmake
 
-    find_package(Git)
 
-    if(Git_FOUND)
 
-      message("Git found: ${GIT_EXECUTABLE}")
 
-    endif()
 
- #]=======================================================================]
 
- # Look for 'git'
 
- #
 
- set(git_names git)
 
- # Prefer .cmd variants on Windows unless running in a Makefile
 
- # in the MSYS shell.
 
- #
 
- if(CMAKE_HOST_WIN32)
 
-   if(NOT CMAKE_GENERATOR MATCHES "MSYS")
 
-     set(git_names git.cmd git)
 
-     # GitHub search path for Windows
 
-     file(GLOB github_path
 
-       "$ENV{LOCALAPPDATA}/Github/PortableGit*/cmd"
 
-       "$ENV{LOCALAPPDATA}/Github/PortableGit*/bin"
 
-       )
 
-     # SourceTree search path for Windows
 
-     set(_git_sourcetree_path "$ENV{LOCALAPPDATA}/Atlassian/SourceTree/git_local/bin")
 
-   endif()
 
- endif()
 
- # First search the PATH and specific locations.
 
- find_program(GIT_EXECUTABLE
 
-   NAMES ${git_names}
 
-   PATHS ${github_path} ${_git_sourcetree_path}
 
-   DOC "Git command line client"
 
-   )
 
- if(CMAKE_HOST_WIN32)
 
-   # Now look for installations in Git/ directories under typical installation
 
-   # prefixes on Windows.  Exclude PATH from this search because VS 2017's
 
-   # command prompt happens to have a PATH entry with a Git/ subdirectory
 
-   # containing a minimal git not meant for general use.
 
-   find_program(GIT_EXECUTABLE
 
-     NAMES ${git_names}
 
-     PATH_SUFFIXES Git/cmd Git/bin
 
-     NO_SYSTEM_ENVIRONMENT_PATH
 
-     DOC "Git command line client"
 
-     )
 
- endif()
 
- mark_as_advanced(GIT_EXECUTABLE)
 
- unset(git_names)
 
- unset(_git_sourcetree_path)
 
- if(GIT_EXECUTABLE)
 
-   # Avoid querying the version if we've already done that this run. For
 
-   # projects that use things like ExternalProject or FetchContent heavily,
 
-   # this saving can be measurable on some platforms.
 
-   #
 
-   # This is an internal property, projects must not try to use it.
 
-   # We don't want this stored in the cache because it might still change
 
-   # between CMake runs, but it shouldn't change during a run for a given
 
-   # git executable location.
 
-   set(__doGitVersionCheck TRUE)
 
-   get_property(__gitVersionProp GLOBAL
 
-     PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION
 
-   )
 
-   if(__gitVersionProp)
 
-     list(GET __gitVersionProp 0 __gitExe)
 
-     list(GET __gitVersionProp 1 __gitVersion)
 
-     if(__gitExe STREQUAL GIT_EXECUTABLE AND NOT __gitVersion STREQUAL "")
 
-       set(GIT_VERSION_STRING "${__gitVersion}")
 
-       set(__doGitVersionCheck FALSE)
 
-     endif()
 
-     unset(__gitExe)
 
-     unset(__gitVersion)
 
-   endif()
 
-   unset(__gitVersionProp)
 
-   if(__doGitVersionCheck)
 
-     execute_process(COMMAND ${GIT_EXECUTABLE} --version
 
-                     OUTPUT_VARIABLE git_version
 
-                     ERROR_QUIET
 
-                     OUTPUT_STRIP_TRAILING_WHITESPACE)
 
-     if (git_version MATCHES "^git version [0-9]")
 
-       string(REPLACE "git version " "" GIT_VERSION_STRING "${git_version}")
 
-       set_property(GLOBAL PROPERTY _CMAKE_FindGit_GIT_EXECUTABLE_VERSION
 
-         "${GIT_EXECUTABLE};${GIT_VERSION_STRING}"
 
-       )
 
-     endif()
 
-     unset(git_version)
 
-   endif()
 
-   unset(__doGitVersionCheck)
 
-   get_property(_findgit_role GLOBAL PROPERTY CMAKE_ROLE)
 
-   if(_findgit_role STREQUAL "PROJECT" AND NOT TARGET Git::Git)
 
-     add_executable(Git::Git IMPORTED)
 
-     set_property(TARGET Git::Git PROPERTY IMPORTED_LOCATION "${GIT_EXECUTABLE}")
 
-   endif()
 
-   unset(_findgit_role)
 
- endif()
 
- include(FindPackageHandleStandardArgs)
 
- find_package_handle_standard_args(Git
 
-                                   REQUIRED_VARS GIT_EXECUTABLE
 
-                                   VERSION_VAR GIT_VERSION_STRING)
 
 
  |