mirror of
https://github.com/Kitware/CMake.git
synced 2026-02-23 07:28:51 -06:00
FindGit: Avoid finding VS 2017 non-general Git installation
At a VS 2017 command prompt the `PATH` contains a directory that happens to have a `Git/cmd/git.exe` inside it. However, this executable is not meant for general use. Revise our use of `Git/` path suffixes to be more specific to its original purpose of searching in the typical `c:/Program Files*/Git/` installation directories. Avoid using the suffixes on `PATH` entries. Fixes: #16706
This commit is contained in:
@@ -43,12 +43,26 @@ if(CMAKE_HOST_WIN32)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# First search the PATH and specific locations.
|
||||
find_program(GIT_EXECUTABLE
|
||||
NAMES ${git_names}
|
||||
PATHS ${github_path} ${_git_sourcetree_path}
|
||||
PATH_SUFFIXES Git/cmd Git/bin
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user