wireshark/packaging/wix
Peter Wu 4c1690ac47 CMake: require at least CMake 3.5
CMake 3.11 with the Ninja generator started complaining about CMP0058
related to ui/qt/CMakeFiles/qtui_autogen.dir/RCCstock_iconsInfo.cmake
amd other files (AUTORCC). While the policy could be set explicitly,
let's try to modernize the CMake configuration:

- Drop CMP0042, if this gives issues with macOS, then it must be solved
  in a different way using non-deprecated methods.
- Drop CMP0054 and ensure that all if("${foo}") and if(${foo}) are
  converted to if(foo).
- Remove string comparison against "-NOTFOUND", it already evaluates to
  false in an if condition.
- Use CXX_STANDARD/CXX_STANDARD_REQUIRED for Qt 5.7 and newer.
- Assume that copy_if_different can accept multiple sources (CMake 3.5).
- Consistency: Out of the 60 CMake 3.11 FindXxx.cmake files that use
  find_library, 34 contain "XXX_LIBRAR" while 16 contain "Xxx_LIBRAR".
  Let's assume uppercase variables (now custom MaxMindDB include dirs
  are correctly used).

CMake 3.5 was chosen as the next version because of its wide support.
Ubuntu 14.04 ships with cmake3 3.5.1, Debian jessie-backports has 3.6.2,
EPEL for CentOS/RHEL6 includes cmake3 3.6.1 and SLES12 SP2 has 3.5.

Change-Id: I2fa7b94bf8cc78411f414987d17bab3a33dfb360
Reviewed-on: https://code.wireshark.org/review/27444
Petri-Dish: Peter Wu <peter@lekensteyn.nl>
Tested-by: Petri Dish Buildbot
Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-05-15 10:28:09 +00:00
..
CMakeLists.txt CMake: require at least CMake 3.5 2018-05-15 10:28:09 +00:00
COPYING.rtf
ComponentGroups.wxi WiX: Remove remaining GTK+ content. 2018-05-11 15:19:40 +00:00
DirectoryStructure.wxi WiX: Remove remaining GTK+ content. 2018-05-11 15:19:40 +00:00
Features.wxi WiX: Remove remaining GTK+ content. 2018-05-11 15:19:40 +00:00
InputPaths.wxi WiX: Remove remaining GTK+ content. 2018-05-11 15:19:40 +00:00
Plugins.wxi WiX: install the other plugin types as well 2018-03-03 10:12:35 +00:00
Prerequisites.wxi Windows: Update target version info 2018-03-02 10:53:29 +00:00
README WiX: Fixup merge module configuration. 2017-06-17 19:32:37 +00:00
StringOverrides.wxl WiX: Add a warning and increase compression. 2016-09-11 04:35:20 +00:00
UserInterface.wxi WiX: Set the "Programs and Features" icon. 2016-07-29 20:19:22 +00:00
Wireshark.wxs WiX: Options dialog updates. 2018-05-03 04:08:40 +00:00
WiresharkOptionsDlg.wxs WiX: Options dialog updates. 2018-05-03 04:08:40 +00:00
WiresharkWixUI.wxs WiX: Options dialog updates. 2018-05-03 04:08:40 +00:00
banner.bmp Remove executable bit, from not executable files. 2017-02-26 17:49:34 +00:00
banner.svg WiX banner and dialog images. 2016-05-12 12:34:56 +00:00
dialog.bmp Remove executable bit, from not executable files. 2017-02-26 17:49:34 +00:00
dialog.svg WiX banner and dialog images. 2016-05-12 12:34:56 +00:00
windeployqt-to-wix.ps1 Remove some references to Qt4. 2018-04-06 03:11:52 +00:00

README

WiX installer for Wireshark

This is currently an experimental feature to provide Wireshark with an .msi installer.
It is intended to replace the NSIS installer, but needs to be a little more complete
before doing so.

(Developer) Differences/notes compared to NSIS installer:
1. You need the WiX toolset to build the installer.  See http://wixtoolset.org/releases/
(v3.10 is recommended)
2. SNMP, Radius, Diameter, and Qt translations files are harvested to be included in
the installer.  Any custom/additional files just need to be written to the appropriate
build output directory and the installer will pick them up.  NSIS required modifying
a file (custom_mibs.txt, etc) for inclusion
3. Plugin DLLs are not automatically harvested.  To include your DLL, modify Plugins.wxi
4. To build the WiX installer run:
> msbuild /m /p:Configuration=RelWithDebInfo wix_package_prep.vcxproj
> msbuild /m /p:Configuration=RelWithDebInfo wix_package.vcxproj


Known issues:
1. It does not include installing WinPcap or USBPcap (the NSIS installer does).  These
currently come as NSIS installers and it seems it would make more sense to "bundle" them
with WiX rather than include them as part of the Wireshark.msi.
2. Needs more flexible handling of VC CRT Merge module (need build script to provide
appropriate macros).  Something like (or modifying existing) FindMSVC_REDIST.cmake.
Currently only VS2013 / CRT120 and VS 2015 / CRT140 are supported.
3. Uninstalling previous versions.  NSIS installer did things more "manually" than Wix does
by default.  Need to merge as best as possible to handle backwards compatibility. The .msi
architecture uses an "UpgradeCode" help facilitate install/uninstall/upgrade and NSIS
installer doesn't have that.  The NSIS installer also removed whole directories instead of
just removing what it installed (still not sure if this is better or worse)


Patches welcome to address any of the issues above or improvements you think can be
made.