|  | # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying | 
|  | # file LICENSE.rst or https://cmake.org/licensing for details. | 
|  |  | 
|  | #[=======================================================================[.rst: | 
|  | FindMsys | 
|  | -------- | 
|  |  | 
|  | .. versionadded:: 3.21 | 
|  |  | 
|  | Finds MSYS, a POSIX-compatible environment that runs natively on Microsoft | 
|  | Windows. | 
|  |  | 
|  | .. note:: | 
|  |  | 
|  | This module is primarily intended for use in other :ref:`Find Modules` to help | 
|  | locate programs when using the ``find_*()`` commands, such as | 
|  | :command:`find_program`.  In most cases, direct use of those commands is | 
|  | sufficient.  Use this module only if a specific program is known to be | 
|  | installed via MSYS and is usable from Windows. | 
|  |  | 
|  | Result Variables | 
|  | ^^^^^^^^^^^^^^^^ | 
|  |  | 
|  | This module defines the following variables: | 
|  |  | 
|  | ``MSYS_INSTALL_PATH`` | 
|  | The path to the MSYS root installation directory. | 
|  |  | 
|  | Examples | 
|  | ^^^^^^^^ | 
|  |  | 
|  | Finding the MSYS installation and using its path in a custom find module: | 
|  |  | 
|  | .. code-block:: cmake | 
|  | :caption: FindFoo.cmake | 
|  |  | 
|  | find_package(Msys) | 
|  | find_program(Foo_EXECUTABLE NAMES foo PATHS ${MSYS_INSTALL_PATH}/usr/bin) | 
|  |  | 
|  | include(FindPackageHandleStandardArgs) | 
|  | find_package_handle_standard_args(Foo REQUIRED_VARS Foo_EXECUTABLE) | 
|  |  | 
|  | See Also | 
|  | ^^^^^^^^ | 
|  |  | 
|  | * The :module:`FindCygwin` module to find Cygwin path in a similar way. | 
|  | #]=======================================================================] | 
|  |  | 
|  | if (WIN32) | 
|  | if(MSYS_INSTALL_PATH) | 
|  | set(MSYS_CMD "${MSYS_INSTALL_PATH}/msys2_shell.cmd") | 
|  | endif() | 
|  |  | 
|  | find_program(MSYS_CMD | 
|  | NAMES msys2_shell.cmd | 
|  | PATHS | 
|  | # Typical install path for MSYS2 (https://repo.msys2.org/distrib/msys2-i686-latest.sfx.exe) | 
|  | "C:/msys32" | 
|  | # Typical install path for MSYS2 (https://repo.msys2.org/distrib/msys2-x86_64-latest.sfx.exe) | 
|  | "C:/msys64" | 
|  | # Git for Windows (https://gitforwindows.org/) | 
|  | "[HKEY_LOCAL_MACHINE\\SOFTWARE\\GitForWindows;InstallPath]" | 
|  | ) | 
|  | get_filename_component(MSYS_INSTALL_PATH "${MSYS_CMD}" DIRECTORY) | 
|  | mark_as_advanced(MSYS_CMD) | 
|  |  | 
|  | endif () |