FindCygwin: Use find_program instead of find_path

Cygwin's installation directory is mainly needed to use some programs
of it, irrespectively of the target architecture. However, find_path
does not consider cygwin with architecture different than the target
architecture. This is because cygwin's installation path is retrieved
from the registry. WOW64 view is not used by find_path if generating
for 32-bit architecture and vice versa, so cygwin is not found then.
find_program tries both views, this way a 64-bit cygwin may be used
for 32 bit build and vice versa.
This commit is contained in:
Tibor Szabo 2017-05-18 11:46:47 +02:00
parent ae5f98a5e3
commit d303465448

View File

@ -8,13 +8,13 @@
# this module looks for Cygwin # this module looks for Cygwin
if (WIN32) if (WIN32)
find_path(CYGWIN_INSTALL_PATH find_program(CYGWIN_INSTALL_PATH
cygwin.bat cygwin.bat
"C:/Cygwin" "C:/Cygwin"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygwin\\setup;rootdir]" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygwin\\setup;rootdir]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/;native]" "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/;native]"
) )
get_filename_component(CYGWIN_INSTALL_PATH "${CYGWIN_INSTALL_PATH}" DIRECTORY)
mark_as_advanced( mark_as_advanced(
CYGWIN_INSTALL_PATH CYGWIN_INSTALL_PATH
) )