diff options
author | Tibor Szabo <szabootibor@gmail.com> | 2017-08-11 09:30:35 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2017-08-15 17:53:10 (GMT) |
commit | 62930253a3d3eb983f846a3cf20f36e34c71cb9e (patch) | |
tree | fa121e1e56c188b460c7b11b1e90dd0359a9dc63 /Modules/FindCygwin.cmake | |
parent | fca4423786ba2c4a5ab0ec6c1a1cbac8cd8600b4 (diff) | |
download | CMake-62930253a3d3eb983f846a3cf20f36e34c71cb9e.zip CMake-62930253a3d3eb983f846a3cf20f36e34c71cb9e.tar.gz CMake-62930253a3d3eb983f846a3cf20f36e34c71cb9e.tar.bz2 |
FindCygwin: Fix regression when CYGWIN_INSTALL_PATH is already set
The change in commit v3.9.0-rc1~54^2 (FindCygwin: Use find_program
instead of find_path, 2017-05-18) broke cases when `CYGWIN_INSTALL_PATH`
is already set, e.g. on the command-line or by an earlier call to
`find_package(Cygwin)`. Since `find_program` now finds the actual
`cygwin.bat` file, use a separate cache entry to save the location
and then compute `CYGWIN_INSTALL_PATH`. If `CYGWIN_INSTALL_PATH`
is already set, use that to avoid `find_program` having to search.
Diffstat (limited to 'Modules/FindCygwin.cmake')
-rw-r--r-- | Modules/FindCygwin.cmake | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/Modules/FindCygwin.cmake b/Modules/FindCygwin.cmake index b2ed703..c6913da 100644 --- a/Modules/FindCygwin.cmake +++ b/Modules/FindCygwin.cmake @@ -8,14 +8,17 @@ # this module looks for Cygwin if (WIN32) - find_program(CYGWIN_INSTALL_PATH + if(CYGWIN_INSTALL_PATH) + set(CYGWIN_BAT "${CYGWIN_INSTALL_PATH}/cygwin.bat") + endif() + + find_program(CYGWIN_BAT cygwin.bat "C:/Cygwin" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygwin\\setup;rootdir]" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/;native]" ) - get_filename_component(CYGWIN_INSTALL_PATH "${CYGWIN_INSTALL_PATH}" DIRECTORY) - mark_as_advanced( - CYGWIN_INSTALL_PATH - ) + get_filename_component(CYGWIN_INSTALL_PATH "${CYGWIN_BAT}" DIRECTORY) + mark_as_advanced(CYGWIN_BAT) + endif () |