I’ve found a bug in the CMake (build file generation) process on Win64 targets, 
which causes the redefinition of the CYGWIN_INSTALL_PATH variable partway 
through the build file generation. This bug originally manifested when CMake 
was unable to locate the SH_EXECUTABLE file in the C:\Cygwin64 directory.

“The bash executable (SH_EXECUTABLE-NOTFOUND) isn’t from Cygwin. Check your 
path”
“wireshark could not find SH (missing: SH EXECUTABLE)"

The root cause is that CMake's stock FindPerl.cmake file is called containing 
the following directive:

include(${CMAKE_CURRENT_LIST_DIR}/FindCygwin.cmake)

This points to the stock copy of FindCygwin.cmake instead of the modified 
version (wireshark\cmake\modules\FindCygwin.cmake) included in the wireshark 
source that adds the C:\Cygwin64 and WIRESHARK_CYGWIN_INSTALL_PATH search 
paths. Thus when the FindPerl module is executed it redefines the existing 
CYGWIN_INSTALL_PATH with an invalid search location, unless Cygwin has been 
installed at C:\Cygwin. Neither C:\Cygwin64 or WIRESHARK_CYGWIN_INSTALL_PATH 
will be checked. (These changes were added in commit 25ec91a on 2015-11-13, and 
affects 2.0.0 and later versions )

The easiest fix is to simply add the stock copy the FindPerl.cmake file to the 
wireshark\cmake\modules\ directory, which forces the correct version of the 
FindCygwin.cmake to be used.

I’ve created a bug in the Wireshark bug tracker and am sending this e-mail to 
the wireshark-dev e-mail list since it has greater prominence in google search 
results and may be useful to anybody attempting to build Wireshark 2.0.0+ in a 
Windows 64 bit environment.
___________________________________________________________________________
Sent via:    Wireshark-dev mailing list <wireshark-dev@wireshark.org>
Archives:    https://www.wireshark.org/lists/wireshark-dev
Unsubscribe: https://www.wireshark.org/mailman/options/wireshark-dev
             mailto:wireshark-dev-requ...@wireshark.org?subject=unsubscribe

Reply via email to