1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

FindMsys: Add a module to find MSYS and some bundled packages

This commit is contained in:
Orgad Shaneh
2021-04-28 14:18:05 +03:00
committed by Brad King
parent 9178861245
commit 990b370401
9 changed files with 55 additions and 0 deletions

View File

@@ -185,6 +185,7 @@ They are normally called through the :command:`find_package` command.
/module/FindMPEG /module/FindMPEG
/module/FindMPEG2 /module/FindMPEG2
/module/FindMPI /module/FindMPI
/module/FindMsys
/module/FindODBC /module/FindODBC
/module/FindOpenACC /module/FindOpenACC
/module/FindOpenAL /module/FindOpenAL

1
Help/module/FindMsys.rst Normal file
View File

@@ -0,0 +1 @@
.. cmake-module:: ../../Modules/FindMsys.cmake

View File

@@ -0,0 +1,6 @@
FindMsys
--------
* The :module:`FindMsys` module was added to find MSYS installations.
Like :module:`FindCygwin`, it is used automatically by some other
find modules to locate UNIX-style tools on Windows.

View File

@@ -23,6 +23,7 @@ GNUPLOT_VERSION_STRING will not work for old versions like 3.7.1.
#]=======================================================================] #]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake)
find_program(GNUPLOT_EXECUTABLE find_program(GNUPLOT_EXECUTABLE
NAMES NAMES
@@ -31,6 +32,7 @@ find_program(GNUPLOT_EXECUTABLE
wgnupl32 wgnupl32
PATHS PATHS
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
if (GNUPLOT_EXECUTABLE) if (GNUPLOT_EXECUTABLE)

31
Modules/FindMsys.cmake Normal file
View File

@@ -0,0 +1,31 @@
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
# file Copyright.txt or https://cmake.org/licensing for details.
#[=======================================================================[.rst:
FindMsys
--------
.. versionadded:: 3.21
Find MSYS, a POSIX-compatible environment that runs natively
on Microsoft Windows
#]=======================================================================]
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
"C:/msys64"
"C:/msys32"
"C:/MSYS"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\MSYS\\setup;rootdir]"
"[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\MSYS\\mounts v2\\/;native]"
)
get_filename_component(MSYS_INSTALL_PATH "${MSYS_CMD}" DIRECTORY)
mark_as_advanced(MSYS_CMD)
endif ()

View File

@@ -17,9 +17,11 @@ this module looks for Perl
#]=======================================================================] #]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake)
set(PERL_POSSIBLE_BIN_PATHS set(PERL_POSSIBLE_BIN_PATHS
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
if(WIN32) if(WIN32)

View File

@@ -17,15 +17,18 @@ executables or shared libs. Examples:
#]=======================================================================] #]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake)
find_program(SELF_PACKER_FOR_EXECUTABLE find_program(SELF_PACKER_FOR_EXECUTABLE
upx upx
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
find_program(SELF_PACKER_FOR_SHARED_LIB find_program(SELF_PACKER_FOR_SHARED_LIB
upx upx
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(

View File

@@ -13,10 +13,12 @@ This module looks for the Unix commands ``bash``, ``cp``, ``gzip``,
#]=======================================================================] #]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake)
find_program(BASH find_program(BASH
bash bash
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
BASH BASH
@@ -25,6 +27,7 @@ mark_as_advanced(
find_program(CP find_program(CP
cp cp
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
CP CP
@@ -33,6 +36,7 @@ mark_as_advanced(
find_program(GZIP find_program(GZIP
gzip gzip
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
GZIP GZIP
@@ -41,6 +45,7 @@ mark_as_advanced(
find_program(MV find_program(MV
mv mv
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
MV MV
@@ -49,6 +54,7 @@ mark_as_advanced(
find_program(RM find_program(RM
rm rm
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
RM RM
@@ -60,6 +66,7 @@ find_program(TAR
gtar gtar
PATH PATH
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
mark_as_advanced( mark_as_advanced(
TAR TAR

View File

@@ -16,10 +16,12 @@ This module looks for wget. This module defines the following values:
#]=======================================================================] #]=======================================================================]
include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)
include(${CMAKE_CURRENT_LIST_DIR}/FindMsys.cmake)
find_program(WGET_EXECUTABLE find_program(WGET_EXECUTABLE
wget wget
${CYGWIN_INSTALL_PATH}/bin ${CYGWIN_INSTALL_PATH}/bin
${MSYS_INSTALL_PATH}/usr/bin
) )
include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake) include(${CMAKE_CURRENT_LIST_DIR}/FindPackageHandleStandardArgs.cmake)