Wireshark-dev: [Wireshark-dev] First experience with Visual Studio 2019
From: "Maynard, Chris" <Christopher.Maynard@xxxxxxx>
Date: Fri, 6 Dec 2019 19:44:15 +0000
In preparation for Wireshark 3.2.0, I installed Visual Studio 2019 today and tried to build Wireshark (yes, from the “x64 Native Tools Command Prompt for VS 2019”).  The 64-bit build itself succeeded and I was able to run the compiled Wireshark.exe with “Help -> About Wireshark” details as follows:
 
Version 3.3.0 (v3.3.0rc0-86-gb11640513957)
Copyright 1998-2019 Gerald Combs <gerald@xxxxxxxxxxxxx> and contributors. License GPLv2+: GNU GPL version 2 or later <https://www.gnu.org/licenses/gpl-2.0.html> This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Compiled (64-bit) with Qt 5.12.6, with WinPcap SDK (WpdPack) 4.1.2, with GLib 2.52.3, with zlib 1.2.11, with SMI 0.4.8, with c-ares 1.14.0, with Lua 5.2.4, with GnuTLS 3.6.3 and PKCS #11 support, with Gcrypt 1.8.3, with MIT Kerberos, with MaxMind DB resolver, with nghttp2 1.39.2, with brotli, with LZ4, with Zstandard, with Snappy, with libxml2 2.9.9, with QtMultimedia, with AirPcap, with SpeexDSP (using bundled resampler), with SBC, with SpanDSP, with bcg729.
Running on 64-bit Windows 10 (1909), build 18363, with Intel(R) Xeon(R) CPU E3-1505M v5 @ 2.80GHz (with SSE4.2), with 16225 MB of physical memory, with locale English_United States.1252, with light display mode, without HiDPI, with Npcap version 0.9984, based on libpcap version 1.9.1, with GnuTLS 3.6.3, with Gcrypt 1.8.3, with brotli 1.0.2, with AirPcap 4.1.0 build 1622, binary plugins supported (19 loaded). Built using Microsoft Visual Studio 2019 (VC++ 14.24, build 28314).
 
That said, 8 warnings were generated when compiling Wireshark, most related to incremental builds except for the 1 lemon warning, along with other similar warnings when building the various installers and documentation (see attached).  Similar results when compiling for 32-bit (using the “x86 Native Tools Command Prompt for VS 2019”, of course).  Since we’ve explicitly set “/INCREMENTAL:NO”, I don’t think these warnings are necessarily a problem, per se, but it would be nice if they could be eliminated.  I don’t yet know how to do that though.
 
Besides the warnings, I noticed other things that I thought I would mention here.  In no particular order:
 
  • The buildbot is running Cmake 3.14.6 while I’m running 3.15.3.  Should the buildbot be upgraded?
 
  • If you visit “The latest supported Visual C++ downloads[1] and download the Visual Studio redistributable packages, they are downloaded with names as vc_redist.x86.exe and vc_redist.x64.exe, for the 32-bit and 64-bit versions, respectively.  Currently, Wireshark looks for those files as being named vcredist_x86.exe or vcredist_x64.exe, as the case may be.  It would seem that for now this is fine as both files are included in the installation, but I think it would be a good idea to either switch to searching for the new file names or at least search for both in case Microsoft eventually stops including both files.  This would also help find updated versions that might be later downloaded by a developer and placed in the wireshark-win[32|64]-libs directories, as it wouldn’t require the developer to rename the files so Wireshark could find them.
 
  • I noticed that the merge modules could not be found, so it seems I missed something during the installation of VS2019 that doesn’t appear to be documented in the Wireshark Developer Guide[2].
 
Here was my result:
 
-- Using MERGE_MODULE_DIR-NOTFOUND\Microsoft_VC142_CRT_x64.msm for the WiX installer
 
vs. that of the buildbot:
 
-- Using C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Redist\MSVC\14.23.27820\MergeModules\Microsoft_VC142_CRT_x64.msm for the WiX installer
 
After some searching, I found my answer at the Microsoft Developer Community site[3].  After following their advice, I was able to install the merge modules and they were found by Wireshark:
 
-- Using C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.24.28127\MergeModules\Microsoft_VC142_CRT_x64.msm for the WiX installer
 
Perhaps this should be mentioned in the Developer Guide[2] when installing Visual Studio 2019, as well as mentioning about building the Wix installer too?
 
  • Speaking of the Developer Guide[2], Qt 5.12.6 is being deployed now, but there are still 2 older versions referenced in the guide, namely 5.12.1 (1 instance) and 5.12.5 (2 instances).  Maybe it would be good to replace both with 5.12.6 before the 3.2.0 release?
 
  • Lastly, I noticed that my installation of VS Studio 2019 appears to be slightly newer than the one installed on the buildbot, with my installation being C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.24.28127, while the buildbot has C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Redist\MSVC\14.23.27820.  Is it worth upgrading the buildbot before the 3.2.0 release?
 
- Chris
 
 
 
 
 
 
 
 
 
 
 
 
 
CONFIDENTIALITY NOTICE: This message is the property of International Game Technology PLC and/or its subsidiaries and may contain proprietary, confidential or trade secret information. This message is intended solely for the use of the addressee. If you are not the intended recipient and have received this message in error, please delete this message from your system. Any unauthorized reading, distribution, copying, or other use of this message or its attachments is strictly prohibited.
Build succeeded.

       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\epan\wslua\wsluaauxiliary.vcxproj.meta
       proj" (default target) (72) ->
       "D:\wireshark\builds\win64\master\epan\wslua\wsluaauxiliary.vcxproj" (de
       fault target) (76) ->
       (CustomBuild target) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\1cdbcb
       2996fa01f6c9232c1737da35c0\wsluaauxiliary.rule" succeeded, but specified
        output "d:\wireshark\builds\win64\master\epan\wslua\cmakefiles\wsluaaux
       iliary" has not been created. This may cause incremental build to work i
       ncorrectly. [D:\wireshark\builds\win64\master\epan\wslua\wsluaauxiliary.
       vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\docbook\copy_ws.css.vcxproj.metaproj"
       (default target) (15) ->
       "D:\wireshark\builds\win64\master\docbook\copy_ws.css.vcxproj" (default
       target) (86) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\40d50d
       ca93c5a0e3404e92d80cab2938\copy_ws.css.rule" succeeded, but specified ou
       tput "d:\wireshark\builds\win64\master\docbook\cmakefiles\copy_ws.css" h
       as not been created. This may cause incremental build to work incorrectl
       y. [D:\wireshark\builds\win64\master\docbook\copy_ws.css.vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\version.vcxproj.metaproj" (default tar
       get) (63) ->
       "D:\wireshark\builds\win64\master\version.vcxproj" (default target) (77)
        ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\a4d430
       58baeebe7dbada7cc0ddc0c4f2\version.rule" succeeded, but specified output
        "d:\wireshark\builds\win64\master\cmakefiles\version" has not been crea
       ted. This may cause incremental build to work incorrectly. [D:\wireshark
       \builds\win64\master\version.vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\tools\lemon\lemon.vcxproj.metaproj" (d
       efault target) (36) ->
       "D:\wireshark\builds\win64\master\tools\lemon\lemon.vcxproj" (default ta
       rget) (93) ->
       (ClCompile target) ->
         D:\wireshark\src\master\tools\lemon\lemon.c(1630,14): warning C4100: '
       argc': unreferenced formal parameter [D:\wireshark\builds\win64\master\t
       ools\lemon\lemon.vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\doc\docs.vcxproj.metaproj" (default ta
       rget) (21) ->
       "D:\wireshark\builds\win64\master\doc\docs.vcxproj" (default target) (90
       ) ->
       (CustomBuild target) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\9a0633
       0ee773ec704e798cb010751d57\docs.rule" succeeded, but specified output "d
       :\wireshark\builds\win64\master\doc\cmakefiles\docs" has not been create
       d. This may cause incremental build to work incorrectly. [D:\wireshark\b
       uilds\win64\master\doc\docs.vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\ui\qt\qtui_autogen.vcxproj.metaproj" (
       default target) (43) ->
       "D:\wireshark\builds\win64\master\ui\qt\qtui_autogen.vcxproj" (default t
       arget) (95) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\2bb1c0
       df4c89b41c233d9b10e4ca3e1f\qtui_autogen.rule" succeeded, but specified o
       utput "d:\wireshark\builds\win64\master\ui\qt\cmakefiles\qtui_autogen" h
       as not been created. This may cause incremental build to work incorrectl
       y. [D:\wireshark\builds\win64\master\ui\qt\qtui_autogen.vcxproj]


       "D:\wireshark\builds\win64\master\Wireshark.sln" (default target) (1) ->
       "D:\wireshark\builds\win64\master\copy_data_files.vcxproj.metaproj" (def
       ault target) (13) ->
       "D:\wireshark\builds\win64\master\copy_data_files.vcxproj" (default targ
       et) (106) ->
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8064: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\958c62
       674a345f652ba86caaad889a63\README.txt.rule" succeeded, but specified dep
       endency "d:\wireshark\src\master\readme.txt" does not exist. This may ca
       use incremental build to work incorrectly. [D:\wireshark\builds\win64\ma
       ster\copy_data_files.vcxproj]
         C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\
       Microsoft\VC\v160\Microsoft.CppCommon.targets(231,5): warning MSB8065: C
       ustom build for item "D:\wireshark\builds\win64\master\CMakeFiles\a4d430
       58baeebe7dbada7cc0ddc0c4f2\copy_data_files.rule" succeeded, but specifie
       d output "d:\wireshark\builds\win64\master\cmakefiles\copy_data_files" h
       as not been created. This may cause incremental build to work incorrectl
       y. [D:\wireshark\builds\win64\master\copy_data_files.vcxproj]

    8 Warning(s)
    0 Error(s)

Time Elapsed 00:05:03.84