From 654d4abf71ea2fd69eacce57dd970f93e2deab46 Mon Sep 17 00:00:00 2001 From: Pascal Quantin Date: Thu, 12 Nov 2015 17:50:18 +0100 Subject: CMake: add our own FindCygwin module The one from official CMake (3.3.2) does not look for the default 64bits installation path. Let's add it. Also add a WIRESHARK_CYGWIN_INSTALL_PATH environment variable allowing to force it. For reference, registry based detection fails to detect a 64bits installation because it gets redirected to the Wow6432 node. Change-Id: If3172494e3ab232e094389b493e6b67023662ae5 Reviewed-on: https://code.wireshark.org/review/11769 Reviewed-by: Pascal Quantin Reviewed-by: Graham Bloice --- cmake/modules/FindCygwin.cmake | 65 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 cmake/modules/FindCygwin.cmake (limited to 'cmake') diff --git a/cmake/modules/FindCygwin.cmake b/cmake/modules/FindCygwin.cmake new file mode 100644 index 0000000000..e568615ae2 --- /dev/null +++ b/cmake/modules/FindCygwin.cmake @@ -0,0 +1,65 @@ +#.rst: +# FindCygwin +# ---------- +# +# this module looks for Cygwin + +# This code was copied from +# http://cmake.org/gitweb?p=cmake.git;a=blob_plain;f=Modules/FindCygwin.cmake;hb=HEAD +# and modified so as to check C:\Cygwin64 and the WIRESHARK_CYGWIN_INSTALL_PATH +# environment variable + +#============================================================================= +#CMake - Cross Platform Makefile Generator +#Copyright 2000-2015 Kitware, Inc. +#Copyright 2000-2011 Insight Software Consortium +#All rights reserved. +# +#Redistribution and use in source and binary forms, with or without +#modification, are permitted provided that the following conditions +#are met: +# +#* Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +#* Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# +#* Neither the names of Kitware, Inc., the Insight Software Consortium, +# nor the names of their contributors may be used to endorse or promote +# products derived from this software without specific prior written +# permission. +# +#THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +#"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +#LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +#A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +#HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +#SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +#LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +#DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +#THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +#(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +#OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +#============================================================================= + +if (WIN32) + find_path(CYGWIN_INSTALL_PATH + cygwin.bat + PATH ENV WIRESHARK_CYGWIN_INSTALL_PATH + "C:/Cygwin" + "C:/Cygwin64" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygwin\\setup;rootdir]" + "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Cygnus Solutions\\Cygwin\\mounts v2\\/;native]" + ) + + if(${CYGWIN_INSTALL_PATH} STREQUAL "CYGWIN_INSTALL_PATH-NOTFOUND") + message(FATAL_ERROR "Cygwin installation path was not detected. You can set it with WIRESHARK_CYGWIN_INSTALL_PATH environment variable.") + else() + mark_as_advanced( + CYGWIN_INSTALL_PATH + ) + endif() + +endif () -- cgit v1.2.3