changeset 2448:119588c42772

Generate the WXS files from templated inputs, substituting in the version and redistributable paths; also include OpenSSL libraries in the package, fixing #1895 Windows build fails to open https locations
author Chris Cannam
date Tue, 14 Jan 2020 13:23:04 +0000
parents d7b724db4bd0
children c8fe74afb77d
files deploy/win32/generate-wxs.ps1 deploy/win32/sonic-visualiser.wxs deploy/win32/sonic-visualiser.wxs.in deploy/win64/build-and-package.bat deploy/win64/generate-wxs.ps1 deploy/win64/sonic-visualiser.wxs deploy/win64/sonic-visualiser.wxs.in main/main.cpp
diffstat 8 files changed, 730 insertions(+), 636 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win32/generate-wxs.ps1	Tue Jan 14 13:23:04 2020 +0000
@@ -0,0 +1,22 @@
+
+Set-StrictMode -Version 2.0
+$ErrorActionPreference = "Stop"
+
+$version = (Get-Content version.h) -replace '#define SV_VERSION ','' -replace '"',''
+$wxs = "deploy\win32\sonic-visualiser.wxs"
+
+$in = "$wxs.in"
+
+echo "Generating $wxs..."
+echo " ...for SV version $version"
+echo " ...from $in"
+echo ""
+
+if (!(Test-Path -Path $in -PathType Leaf)) {
+    echo "ERROR: Input file $in not found"
+    exit 1
+}
+
+(Get-Content $in) -replace '@VERSION@', $version -replace '@W@', '<!-- DO NOT EDIT THIS FILE: it is auto-generated -->' | Out-File -encoding ASCII $wxs
+
+echo "Done"
--- a/deploy/win32/sonic-visualiser.wxs	Fri Jan 10 15:06:09 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,272 +0,0 @@
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-
-  <Product
-      Name="Sonic Visualiser" 
-      Id="*"
-      Language="1033"
-      Codepage="1252" 
-      Version="4.0"
-      UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
-      Manufacturer="Queen Mary, University of London">
-    
-    <Package
-        Id="*"
-        Keywords="Installer"
-        Description="Sonic Visualiser 32-bit Installer" 
-        Comments="Copyright (c) 2018 Queen Mary, University of London and others."
-        Manufacturer="Queen Mary, University of London" 
-        InstallerVersion="100" 
-        Languages="1033" 
-        Compressed="yes" 
-        SummaryCodepage="1252"/>
-
-    <MajorUpgrade DowngradeErrorMessage="A later version of Sonic Visualiser is already installed. Setup will now exit."/>
-
-    <Media Id="1" Cabinet="SonicVisualiser.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
-    <Property Id="DiskPrompt" Value="Sonic Visualiser Installation [1]"/>
-
-    <Directory Id="TARGETDIR" Name="SourceDir">
-
-      <Directory Id="ProgramFilesFolder" Name="PFiles">
-        <Directory Id="VampPlugins" Name="Vamp Plugins">
-          <Component
-              Id="VampPlugins"
-              Guid="E68E4E0B-3C63-49bd-AD2D-44431EABDA6A">
-            <File
-                Id="VampREADME"
-                Name="README.txt"
-                Source="..\deploy\win32\README-Vamp.txt"/>
-          </Component>
-        </Directory>
-        <Directory Id="APPLICATIONFOLDER" Name="Sonic Visualiser">
-
-          <Component
-              Id="MainExecutable"
-              Guid="2C02DFB7-3CDF-4F73-B9D1-846326EE417D">
-
-            <File
-                Id="SVExecutable"
-                Name="Sonic Visualiser.exe"
-                Source="release\Sonic Visualiser.exe"
-                KeyPath="yes">
-
-              <Shortcut
-                  Id="SVStartEntry"
-                  Directory="ProgramMenuDir"
-                  Name="Sonic Visualiser"
-                  WorkingDirectory="APPLICATIONFOLDER"
-                  Icon="winicon.ico"
-                  IconIndex="0"
-                  Advertise="yes"/>
-
-              <Shortcut
-                  Id="SVDesktop"
-                  Directory="DesktopFolder"
-                  Name="Sonic Visualiser"
-                  WorkingDirectory="APPLICATIONFOLDER"
-                  Icon="winicon.ico"
-                  IconIndex="0"
-                  Advertise="yes"/>
-            </File>
-
-            <File
-                Id="COPYING"
-                Name="COPYING.txt"
-                Source="..\COPYING"/>
-            <File
-                Id="README"
-                Name="README.txt"
-                Source="..\README.md"/>
-            <File
-                Id="CHANGELOG"
-                Name="CHANGELOG.txt"
-                Source="..\CHANGELOG"/>
-            <File
-                Id="CITATION"
-                Name="CITATION.txt"
-                Source="..\CITATION"/>
-
-            <File
-                Id="winicon.ico"
-                Name="sv-winicon.ico"
-                Source="..\icons/sv-winicon.ico"/>
-          </Component>
-          
-          <Component
-              Id="SVFileAssociation"
-              Guid="DC6B3DD1-46DE-47FC-90FB-D8ACD5D1A88A">
-            
-            <CreateFolder/>
-
-            <ProgId 
-                Id='SonicVisualiser.svfile' 
-                Description='Sonic Visualiser project file'
-                Icon="SVExecutable">
-              <Extension 
-                  Id='sv' 
-                  ContentType='application/sonicvisualiser'>
-                <Verb 
-                    Id='open' 
-                    Command='Open' 
-                    TargetFile='SVExecutable' 
-                    Argument='"%1"' />
-              </Extension>
-            </ProgId>
-            
-          </Component>
-          
-          <Component
-              Id="Qt5"
-              Guid="316341D4-B7B2-411D-BCCE-879A11D5709F">
-            <File
-                Id="QtCore"
-                Name="Qt5Core.dll"
-                Source="release\Qt5Core.dll"
-		KeyPath="yes"/>
-            <File
-                Id="QtGui"
-                Name="Qt5Gui.dll"
-                Source="release\Qt5Gui.dll"/>
-            <File
-                Id="QtNetwork"
-                Name="Qt5Network.dll"
-                Source="release\Qt5Network.dll"/>
-            <File
-                Id="QtWidgets"
-                Name="Qt5Widgets.dll"
-                Source="release\Qt5Widgets.dll"/>
-            <File
-                Id="QtXml"
-                Name="Qt5Xml.dll"
-                Source="release\Qt5Xml.dll"/>
-            <File
-                Id="QtSvg"
-                Name="Qt5Svg.dll"
-                Source="release\Qt5Svg.dll"/>
-            <File
-                Id="libgcc"
-                Name="libgcc_s_dw2-1.dll"
-                Source="release\libgcc_s_dw2-1.dll"/>
-            <File
-                Id="libstdcplusplus"
-                Name="libstdc++-6.dll"
-                Source="release\libstdc++-6.dll"/>
-            <File
-                Id="libwinpthread"
-                Name="libwinpthread-1.dll"
-                Source="release\libwinpthread-1.dll"/>
-          </Component>
-	  
-	  <Directory Id="Platforms" Name="platforms">
-            <Component
-                Id="Qt5PlatformPlugins"
-                Guid="1EDCEA4B-C83F-430B-B09D-CB113DFD4E77">
-	      <File
-                  Id="qminimal"
-                  Name="qminimal.dll"
-                  Source="release\qminimal.dll"/>
-	      <File
-                  Id="qwindows"
-                  Name="qwindows.dll"
-                  Source="release\qwindows.dll"/>
-            </Component>
-	  </Directory>
-	  
-	  <Directory Id="Styles" Name="styles">
-            <Component
-                Id="Qt5StylePlugins"
-                Guid="049AD156-CBC3-457A-980F-3C01FF89C054">
-	      <File
-                  Id="qwindowsvistastyle"
-                  Name="qwindowsvistastyle.dll"
-                  Source="release\qwindowsvistastyle.dll"/>
-            </Component>
-	  </Directory>
-
-	  <Directory Id="Helpers" Name="helpers">
-            <Component Id="Piper"
-                       Guid="17F2AAFF-7B7B-4F20-B345-DEF0A54A84B1">
-	      <File
-		  Id="piperconv"
-		  Name="piper-convert.exe"
-		  Source="release\piper-convert.exe"/>
-	      <File
-		  Id="piper"
-		  Name="piper-vamp-simple-server.exe"
-		  Source="release\piper-vamp-simple-server.exe"/>
-	      <File
-                  Id="libgcc32"
-                  Name="libgcc_s_dw2-1.dll"
-                  Source="release\libgcc_s_dw2-1.dll"/>
-	      <File
-                  Id="libstdcplusplus32"
-                  Name="libstdc++-6.dll"
-                  Source="release\libstdc++-6.dll"/>
-	      <File
-                  Id="libwinpthread32"
-                  Name="libwinpthread-1.dll"
-                  Source="release\libwinpthread-1.dll"/>
-	    </Component>
-            <Component Id="Checker"
-                       Guid="DB09B035-0594-4876-B494-4D25CED43601">
-	      <File
-		  Id="checker"
-		  Name="vamp-plugin-load-checker.exe"
-		  Source="release\vamp-plugin-load-checker.exe"/>
-	    </Component>
-	  </Directory> <!-- helpers -->
-        </Directory> <!-- sv --> 
-      </Directory> <!-- pfiles -->
-      
-      <Directory Id="ProgramMenuFolder" Name="Programs">
-        <Directory Id="ProgramMenuDir" Name="Sonic Visualiser">
-          <Component Id="ProgramMenuDir" Guid="C1980FF3-D135-46F8-8542-F937748721E6">
-            <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
-            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
-          </Component>
-        </Directory>
-      </Directory>
-
-      <Directory Id="DesktopFolder" Name="Desktop"/>
-
-    </Directory>
-
-    <Feature 
-        Id="Complete"
-        Title="Required files"
-        Description="Installs the required files for running Sonic Visualiser."
-        AllowAdvertise="no"
-        Absent="disallow"
-        ConfigurableDirectory="APPLICATIONFOLDER"
-        Level="1">
-      <ComponentRef Id="VampPlugins"/>
-      <ComponentRef Id="MainExecutable"/>
-      <ComponentRef Id="SVFileAssociation"/>
-      <ComponentRef Id="Qt5"/>
-      <ComponentRef Id="Qt5PlatformPlugins"/>
-      <ComponentRef Id="Qt5StylePlugins"/>
-      <ComponentRef Id="Piper"/>
-      <ComponentRef Id="Checker"/>
-      <ComponentRef Id="ProgramMenuDir"/>
-    </Feature>
-
-    <UI>
-      <UIRef Id="WixUI_InstallDir" />
-      <UIRef Id="WixUI_ErrorProgressText" />
-    </UI>
-
-    <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
-    <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
-    <Property Id="ApplicationFolderName" Value="Sonic Visualiser" />
-    <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
-    <WixVariable Id="WixUILicenseRtf" Value="..\deploy\win32\License.rtf" />
-    
-    <Icon Id="winicon.ico" SourceFile="..\icons\sv-winicon.ico"/>
-    <Property Id="ARPPRODUCTICON" Value="winicon.ico" />
-
-    <WixVariable Id="WixUIBannerBmp" Value="..\deploy\win32\top.bmp"/>
-    <WixVariable Id="WixUIDialogBmp" Value="..\deploy\win32\main.bmp"/>
-
-  </Product>
-</Wix>
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win32/sonic-visualiser.wxs.in	Tue Jan 14 13:23:04 2020 +0000
@@ -0,0 +1,288 @@
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+  @W@
+
+  <Product
+      Name="Sonic Visualiser" 
+      Id="*"
+      Language="1033"
+      Codepage="1252" 
+      Version="@VERSION@"
+      UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
+      Manufacturer="Queen Mary, University of London">
+    
+    <Package
+        Id="*"
+        Keywords="Installer"
+        Description="Sonic Visualiser 32-bit Installer" 
+        Comments="Copyright (c) 2020 Queen Mary, University of London and others."
+        Manufacturer="Queen Mary, University of London" 
+        InstallerVersion="100" 
+        Languages="1033" 
+        Compressed="yes" 
+        SummaryCodepage="1252"/>
+
+    <MajorUpgrade DowngradeErrorMessage="A later version of Sonic Visualiser is already installed. Setup will now exit."/>
+
+    <Media Id="1" Cabinet="SonicVisualiser.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
+    <Property Id="DiskPrompt" Value="Sonic Visualiser Installation [1]"/>
+
+    <Directory Id="TARGETDIR" Name="SourceDir">
+
+      <Directory Id="ProgramFilesFolder" Name="PFiles">
+        <Directory Id="VampPlugins" Name="Vamp Plugins">
+          <Component
+              Id="VampPlugins"
+              Guid="E68E4E0B-3C63-49bd-AD2D-44431EABDA6A">
+            <File
+                Id="VampREADME"
+                Name="README.txt"
+                Source="..\deploy\win32\README-Vamp.txt"/>
+          </Component>
+        </Directory>
+        <Directory Id="APPLICATIONFOLDER" Name="Sonic Visualiser">
+
+          <Component
+              Id="MainExecutable"
+              Guid="2C02DFB7-3CDF-4F73-B9D1-846326EE417D">
+
+            <File
+                Id="SVExecutable"
+                Name="Sonic Visualiser.exe"
+                Source="release\Sonic Visualiser.exe"
+                KeyPath="yes">
+
+              <Shortcut
+                  Id="SVStartEntry"
+                  Directory="ProgramMenuDir"
+                  Name="Sonic Visualiser"
+                  WorkingDirectory="APPLICATIONFOLDER"
+                  Icon="winicon.ico"
+                  IconIndex="0"
+                  Advertise="yes"/>
+
+              <Shortcut
+                  Id="SVDesktop"
+                  Directory="DesktopFolder"
+                  Name="Sonic Visualiser"
+                  WorkingDirectory="APPLICATIONFOLDER"
+                  Icon="winicon.ico"
+                  IconIndex="0"
+                  Advertise="yes"/>
+            </File>
+
+            <File
+                Id="COPYING"
+                Name="COPYING.txt"
+                Source="..\COPYING"/>
+            <File
+                Id="README"
+                Name="README.txt"
+                Source="..\README.md"/>
+            <File
+                Id="CHANGELOG"
+                Name="CHANGELOG.txt"
+                Source="..\CHANGELOG"/>
+            <File
+                Id="CITATION"
+                Name="CITATION.txt"
+                Source="..\CITATION"/>
+
+            <File
+                Id="winicon.ico"
+                Name="sv-winicon.ico"
+                Source="..\icons/sv-winicon.ico"/>
+          </Component>
+          
+          <Component
+              Id="SVFileAssociation"
+              Guid="DC6B3DD1-46DE-47FC-90FB-D8ACD5D1A88A">
+            
+            <CreateFolder/>
+
+            <ProgId 
+                Id='SonicVisualiser.svfile' 
+                Description='Sonic Visualiser project file'
+                Icon="SVExecutable">
+              <Extension 
+                  Id='sv' 
+                  ContentType='application/sonicvisualiser'>
+                <Verb 
+                    Id='open' 
+                    Command='Open' 
+                    TargetFile='SVExecutable' 
+                    Argument='"%1"' />
+              </Extension>
+            </ProgId>
+            
+          </Component>
+          
+          <Component
+              Id="Qt5"
+              Guid="316341D4-B7B2-411D-BCCE-879A11D5709F">
+            <File
+                Id="QtCore"
+                Name="Qt5Core.dll"
+                Source="release\Qt5Core.dll"
+		KeyPath="yes"/>
+            <File
+                Id="QtGui"
+                Name="Qt5Gui.dll"
+                Source="release\Qt5Gui.dll"/>
+            <File
+                Id="QtNetwork"
+                Name="Qt5Network.dll"
+                Source="release\Qt5Network.dll"/>
+            <File
+                Id="QtWidgets"
+                Name="Qt5Widgets.dll"
+                Source="release\Qt5Widgets.dll"/>
+            <File
+                Id="QtXml"
+                Name="Qt5Xml.dll"
+                Source="release\Qt5Xml.dll"/>
+            <File
+                Id="QtSvg"
+                Name="Qt5Svg.dll"
+                Source="release\Qt5Svg.dll"/>
+            <File
+                Id="libgcc"
+                Name="libgcc_s_dw2-1.dll"
+                Source="release\libgcc_s_dw2-1.dll"/>
+            <File
+                Id="libstdcplusplus"
+                Name="libstdc++-6.dll"
+                Source="release\libstdc++-6.dll"/>
+            <File
+                Id="libwinpthread"
+                Name="libwinpthread-1.dll"
+                Source="release\libwinpthread-1.dll"/>
+          </Component>
+
+          <Component Id="OpenSSL"
+                     Guid="dd5a0ca6-7b8d-4ecb-ae43-589c6e24b8b7">
+            <File
+                Id="libeay32"
+                Name="libeay32.dll"
+                Source="c:\OpenSSL-Win32\bin\libeay32.dll"
+                KeyPath="yes"/>
+            <File
+                Id="ssleay32"
+                Name="ssleay32.dll"
+                Source="c:\OpenSSL-Win32\bin\ssleay32.dll"/>
+          </Component>
+	  
+	  <Directory Id="Platforms" Name="platforms">
+            <Component
+                Id="Qt5PlatformPlugins"
+                Guid="1EDCEA4B-C83F-430B-B09D-CB113DFD4E77">
+	      <File
+                  Id="qminimal"
+                  Name="qminimal.dll"
+                  Source="release\qminimal.dll"/>
+	      <File
+                  Id="qwindows"
+                  Name="qwindows.dll"
+                  Source="release\qwindows.dll"/>
+            </Component>
+	  </Directory>
+	  
+	  <Directory Id="Styles" Name="styles">
+            <Component
+                Id="Qt5StylePlugins"
+                Guid="049AD156-CBC3-457A-980F-3C01FF89C054">
+	      <File
+                  Id="qwindowsvistastyle"
+                  Name="qwindowsvistastyle.dll"
+                  Source="release\qwindowsvistastyle.dll"/>
+            </Component>
+	  </Directory>
+
+	  <Directory Id="Helpers" Name="helpers">
+            <Component Id="Piper"
+                       Guid="17F2AAFF-7B7B-4F20-B345-DEF0A54A84B1">
+	      <File
+		  Id="piperconv"
+		  Name="piper-convert.exe"
+		  Source="release\piper-convert.exe"/>
+	      <File
+		  Id="piper"
+		  Name="piper-vamp-simple-server.exe"
+		  Source="release\piper-vamp-simple-server.exe"/>
+	      <File
+                  Id="libgcc32"
+                  Name="libgcc_s_dw2-1.dll"
+                  Source="release\libgcc_s_dw2-1.dll"/>
+	      <File
+                  Id="libstdcplusplus32"
+                  Name="libstdc++-6.dll"
+                  Source="release\libstdc++-6.dll"/>
+	      <File
+                  Id="libwinpthread32"
+                  Name="libwinpthread-1.dll"
+                  Source="release\libwinpthread-1.dll"/>
+	    </Component>
+            <Component Id="Checker"
+                       Guid="DB09B035-0594-4876-B494-4D25CED43601">
+	      <File
+		  Id="checker"
+		  Name="vamp-plugin-load-checker.exe"
+		  Source="release\vamp-plugin-load-checker.exe"/>
+	    </Component>
+	  </Directory> <!-- helpers -->
+        </Directory> <!-- sv --> 
+      </Directory> <!-- pfiles -->
+      
+      <Directory Id="ProgramMenuFolder" Name="Programs">
+        <Directory Id="ProgramMenuDir" Name="Sonic Visualiser">
+          <Component Id="ProgramMenuDir" Guid="C1980FF3-D135-46F8-8542-F937748721E6">
+            <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
+            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
+          </Component>
+        </Directory>
+      </Directory>
+
+      <Directory Id="DesktopFolder" Name="Desktop"/>
+
+    </Directory>
+
+    <Feature 
+        Id="Complete"
+        Title="Required files"
+        Description="Installs the required files for running Sonic Visualiser."
+        AllowAdvertise="no"
+        Absent="disallow"
+        ConfigurableDirectory="APPLICATIONFOLDER"
+        Level="1">
+      <ComponentRef Id="VampPlugins"/>
+      <ComponentRef Id="MainExecutable"/>
+      <ComponentRef Id="SVFileAssociation"/>
+      <ComponentRef Id="Qt5"/>
+      <ComponentRef Id="Qt5PlatformPlugins"/>
+      <ComponentRef Id="Qt5StylePlugins"/>
+      <ComponentRef Id="OpenSSL"/>
+      <ComponentRef Id="Piper"/>
+      <ComponentRef Id="Checker"/>
+      <ComponentRef Id="ProgramMenuDir"/>
+    </Feature>
+
+    <UI>
+      <UIRef Id="WixUI_InstallDir" />
+      <UIRef Id="WixUI_ErrorProgressText" />
+    </UI>
+
+    <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
+    <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
+    <Property Id="ApplicationFolderName" Value="Sonic Visualiser" />
+    <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
+    <WixVariable Id="WixUILicenseRtf" Value="..\deploy\win32\License.rtf" />
+    
+    <Icon Id="winicon.ico" SourceFile="..\icons\sv-winicon.ico"/>
+    <Property Id="ARPPRODUCTICON" Value="winicon.ico" />
+
+    <WixVariable Id="WixUIBannerBmp" Value="..\deploy\win32\top.bmp"/>
+    <WixVariable Id="WixUIDialogBmp" Value="..\deploy\win32\main.bmp"/>
+
+  </Product>
+</Wix>
+
--- a/deploy/win64/build-and-package.bat	Fri Jan 10 15:06:09 2020 +0000
+++ b/deploy/win64/build-and-package.bat	Tue Jan 14 13:23:04 2020 +0000
@@ -12,6 +12,9 @@
 @   exit /b 2
 )
 
+powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'deploy\win32\generate-wxs.ps1'"
+powershell -NoProfile -ExecutionPolicy Bypass -Command "& 'deploy\win64\generate-wxs.ps1'"
+
 set ORIGINALPATH=%PATH%
 set PATH=C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Bin;%PATH%
 set NAME=Open Source Developer, Christopher Cannam
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win64/generate-wxs.ps1	Tue Jan 14 13:23:04 2020 +0000
@@ -0,0 +1,31 @@
+
+Set-StrictMode -Version 2.0
+$ErrorActionPreference = "Stop"
+
+$redist_ver = "14.24.28127"
+$version = (Get-Content version.h) -replace '#define SV_VERSION ','' -replace '"',''
+$wxs = "deploy\win64\sonic-visualiser.wxs"
+
+$in = "$wxs.in"
+
+$redist_dir="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\$redist_ver\x64\Microsoft.VC142.CRT"
+
+echo "Generating $wxs..."
+echo " ...for SV version $version"
+echo " ...for redist version $redist_ver"
+echo " ...from $in"
+echo ""
+
+if (!(Test-Path -Path $redist_dir -PathType Container)) {
+    echo "ERROR: Redistributable directory $redist_dir not found"
+    exit 1
+}
+
+if (!(Test-Path -Path $in -PathType Leaf)) {
+    echo "ERROR: Input file $in not found"
+    exit 1
+}
+
+(Get-Content $in) -replace '@VERSION@', $version -replace '@REDIST_VER@', $redist_ver -replace '@W@', '<!-- DO NOT EDIT THIS FILE: it is auto-generated -->' | Out-File -encoding ASCII $wxs
+
+echo "Done"
--- a/deploy/win64/sonic-visualiser.wxs	Fri Jan 10 15:06:09 2020 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,364 +0,0 @@
-<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
-
-  <Product
-      Name="Sonic Visualiser" 
-      Id="*"
-      Language="1033"
-      Codepage="1252" 
-      Version="4.0"
-      UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
-      Manufacturer="Queen Mary, University of London">
-    
-    <Package
-        Id="*"
-        Keywords="Installer"
-        Description="Sonic Visualiser 64-bit Installer" 
-        Comments="Copyright (c) 2018 Queen Mary, University of London and others."
-        Manufacturer="Queen Mary, University of London" 
-        InstallerVersion="200"
-        Languages="1033" 
-        Compressed="yes" 
-        Platform="x64"
-        SummaryCodepage="1252"/>
-
-    <MajorUpgrade DowngradeErrorMessage="A later version of Sonic Visualiser is already installed. Setup will now exit."/>
-
-    <Media Id="1" Cabinet="SonicVisualiser.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
-    <Property Id="DiskPrompt" Value="Sonic Visualiser Installation [1]"/>
-
-    <Directory Id="TARGETDIR" Name="SourceDir">
-
-      <Directory Id="ProgramFiles64Folder" Name="PFiles64">
-        <Directory Id="VampPlugins" Name="Vamp Plugins">
-          <Component Win64="yes"
-              Id="VampPlugins"
-              Guid="528C7D7E-5A06-4E7D-89BB-7C16431DF82F">
-            <File
-                Id="VampREADME"
-                Name="README.txt"
-                Source="..\deploy\win64\README-Vamp.txt"/>
-          </Component>
-        </Directory>
-
-        <Directory Id="APPLICATIONFOLDER" Name="Sonic Visualiser">
-
-          <Component Win64="yes"
-              Id="MainExecutable"
-              Guid="65E1EBDF-4C8F-47B8-BCD6-981667F5946D">
-
-            <File
-                Id="SVExecutable"
-                Name="Sonic Visualiser.exe"
-                Source="release\Sonic Visualiser.exe"
-                KeyPath="yes">
-
-              <Shortcut
-                  Id="SVStartEntry"
-                  Directory="ProgramMenuDir"
-                  Name="Sonic Visualiser"
-                  WorkingDirectory="APPLICATIONFOLDER"
-                  Icon="winicon.ico"
-                  IconIndex="0"
-                  Advertise="yes"/>
-
-              <Shortcut
-                  Id="SVDesktop"
-                  Directory="DesktopFolder"
-                  Name="Sonic Visualiser"
-                  WorkingDirectory="APPLICATIONFOLDER"
-                  Icon="winicon.ico"
-                  IconIndex="0"
-                  Advertise="yes"/>
-            </File>
-
-            <File
-                Id="COPYING"
-                Name="COPYING.txt"
-                Source="..\COPYING"/>
-            <File
-                Id="README"
-                Name="README.txt"
-                Source="..\README.md"/>
-            <File
-                Id="CHANGELOG"
-                Name="CHANGELOG.txt"
-                Source="..\CHANGELOG"/>
-            <File
-                Id="CITATION"
-                Name="CITATION.txt"
-                Source="..\CITATION"/>
-
-            <File
-                Id="winicon.ico"
-                Name="sv-winicon.ico"
-                Source="..\icons\sv-winicon.ico"/>
-          </Component>
-          
-          <Component Win64="yes"
-	      Id="SVFileAssociation"
-	      Guid="F07C5CC1-0209-4C1A-8D52-C40B50A2B964">
-            
-            <CreateFolder/>
-
-            <ProgId 
-                Id='SonicVisualiser.svfile' 
-                Description='Sonic Visualiser project file'
-                Icon="SVExecutable">
-              <Extension 
-                  Id='sv' 
-                  ContentType='application/sonicvisualiser'>
-                <Verb 
-                    Id='open' 
-                    Command='Open' 
-                    TargetFile='SVExecutable' 
-                    Argument='"%1"' />
-              </Extension>
-            </ProgId>
-            
-          </Component>
-          
-          <Component Win64="yes"
-              Id="Qt5"
-              Guid="5495ED5E-939A-4BE8-9000-D55F2A7A2E90">
-            <File
-                Id="QtCore"
-                Name="Qt5Core.dll"
-                Source="release\Qt5Core.dll"
-		KeyPath="yes"/>
-            <File
-                Id="QtGui"
-                Name="Qt5Gui.dll"
-                Source="release\Qt5Gui.dll"/>
-            <File
-                Id="QtNetwork"
-                Name="Qt5Network.dll"
-                Source="release\Qt5Network.dll"/>
-            <File
-                Id="QtWidgets"
-                Name="Qt5Widgets.dll"
-                Source="release\Qt5Widgets.dll"/>
-            <File
-                Id="QtXml"
-                Name="Qt5Xml.dll"
-                Source="release\Qt5Xml.dll"/>
-            <File
-                Id="QtSvg"
-                Name="Qt5Svg.dll"
-                Source="release\Qt5Svg.dll"/>
-          </Component>
-
-          <Component Win64="yes"
-                     Id="Sndfile"
-                     Guid="04533516-6460-4155-A0D4-E9BA4D31E95C">
-            <File
-                Id="libsndfile"
-                Name="libsndfile-1.dll"
-                Source="..\sv-dependency-builds\win64-msvc\lib\libsndfile-1.dll"
-                KeyPath="yes"/>
-          </Component>
-
-          <Component Win64="yes"
-               Id="VCRuntime"
-               Guid="251D9513-BBD2-47CF-BE78-EF79446F7683">
-
-            <!-- Redistributables are handled by the Visual Studio
-                 installer (a separate program from VS itself) and are
-                 installed into C:\Program Files (x86)\Microsoft
-                 Visual Studio\2019\Community\VC\Redist\MSVC\...  NB
-                 this is not the same thing as the Windows SDKs, which
-                 consist of build tools etc - they have their own
-                 installers and get installed by default to C:\Program
-                 Files (x86)\Windows Kits\... -->
-               
-            <File
-                Id="concrt140"
-                Name="concrt140.dll"
-                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\concrt140.DLL"
-                KeyPath="yes"/>
-            <File
-                Id="msvcp140"
-                Name="msvcp140.dll"
-                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\msvcp140.DLL"/>
-            <File
-                Id="vccorlib140"
-                Name="vccorlib140.dll"
-                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vccorlib140.DLL"/>
-            <File
-                Id="vcruntime140"
-                Name="vcruntime140.dll"
-                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vcruntime140.DLL"/>
-            <File
-                Id="vcruntime140_1"
-                Name="vcruntime140_1.dll"
-                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vcruntime140_1.DLL"/>
-          </Component>
-
-	  <Directory Id="Platforms" Name="platforms">
-            <Component Win64="yes"
-                Id="Qt5PlatformPlugins"
-                Guid="1FFB773E-6D6D-4C0E-832B-F0FFEA959CA5">
-	      <File
-                  Id="qminimal"
-                  Name="qminimal.dll"
-                  Source="release\qminimal.dll"/>
-	      <File
-                  Id="qwindows"
-                  Name="qwindows.dll"
-                  Source="release\qwindows.dll"/>
-            </Component>
-	  </Directory>
-
-	  <Directory Id="Styles" Name="styles">
-            <Component Win64="yes"
-                Id="Qt5StylePlugins"
-                Guid="7A676FC1-B139-432C-A7D3-F33984934B79">
-	      <File
-                  Id="qwindowsvistastyle"
-                  Name="qwindowsvistastyle.dll"
-                  Source="release\qwindowsvistastyle.dll"/>
-            </Component>
-	  </Directory>
-
-	  <Directory Id="Helpers" Name="helpers">
-            <Component Win64="yes"
-                Id="Piper64"
-                Guid="6385BD86-A5D3-4C77-AD41-B2DCA5B34E48">
-	      <File
-		  Id="piperconv64"
-		  Name="piper-convert.exe"
-		  Source="release\piper-convert.exe"/>
-	      <File
-		  Id="piper64"
-		  Name="piper-vamp-simple-server.exe"
-		  Source="release\piper-vamp-simple-server.exe"/>
-              <File
-                  Id="concrt140h"
-                  Name="concrt140.dll"
-                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\concrt140.DLL"
-                  KeyPath="yes"/>
-              <File
-                  Id="msvcp140h"
-                  Name="msvcp140.dll"
-                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\msvcp140.DLL"/>
-              <File
-                  Id="vccorlib140h"
-                  Name="vccorlib140.dll"
-                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vccorlib140.DLL"/>
-              <File
-                  Id="vcruntime140h"
-                  Name="vcruntime140.dll"
-                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vcruntime140.DLL"/>
-              <File
-                  Id="vcruntime140_1h"
-                  Name="vcruntime140_1.dll"
-                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\14.23.27820\x64\Microsoft.VC142.CRT\vcruntime140_1.DLL"/>
-	    </Component>
-            <Component Win64="yes"
-                Id="Piper32"
-                Guid="F27A00A8-DD03-45B0-A13C-8CD8CC6F7386">
-	      <File
-		  Id="piper32"
-		  Name="piper-vamp-simple-server-32.exe"
-		  Source="..\build_win32\release\piper-vamp-simple-server.exe"/>
-	      <File
-                  Id="libgcc32"
-                  Name="libgcc_s_dw2-1.dll"
-                  Source="..\build_win32\release\libgcc_s_dw2-1.dll"/>
-	      <File
-                  Id="libstdcplusplus32"
-                  Name="libstdc++-6.dll"
-                  Source="..\build_win32\release\libstdc++-6.dll"/>
-	      <File
-                  Id="libwinpthread32"
-                  Name="libwinpthread-1.dll"
-                  Source="..\build_win32\release\libwinpthread-1.dll"/>
-	    </Component>
-            <Component Win64="yes"
-                Id="Checker64"
-                Guid="19A400D9-D5B2-4CB5-AF84-7C1DEA11D7B5">
-	      <File
-		  Id="checker64"
-		  Name="vamp-plugin-load-checker.exe"
-		  Source="release\vamp-plugin-load-checker.exe"/>
-	    </Component>
-            <Component Win64="yes"
-                Id="Checker32"
-                Guid="4F3FDFEC-23BD-4F2F-9B8F-9C8387FDEC21">
-	      <File
-		  Id="checker32"
-		  Name="vamp-plugin-load-checker-32.exe"
-		  Source="..\build_win32\release\vamp-plugin-load-checker.exe"/>
-	    </Component>
-	    
-	  </Directory> <!-- helpers -->
-	</Directory> <!-- sv -->
-      </Directory> <!-- pfiles64 -->
-
-      <Directory Id="ProgramFilesFolder" Name="PFiles">
-        <Directory Id="Vamp32Plugins" Name="Vamp Plugins">
-          <Component
-              Id="Vamp32Plugins"
-              Guid="62d23999-63ed-4937-b904-ec8e47a776d1">
-            <File
-                Id="Vamp32README"
-                Name="README.txt"
-                Source="..\deploy\win64\README-Vamp32.txt"/>
-          </Component>
-        </Directory>
-      </Directory>
-
-      <Directory Id="ProgramMenuFolder" Name="Programs">
-        <Directory Id="ProgramMenuDir" Name="Sonic Visualiser">
-          <Component Id="ProgramMenuDir" Guid="C1980FF3-D135-46F8-8542-F937748721E6">
-            <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
-            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
-          </Component>
-        </Directory>
-      </Directory>
-
-      <Directory Id="DesktopFolder" Name="Desktop"/>
-
-    </Directory>
-
-    <Feature 
-	Id="Complete"
-	Title="Required files"
-	Description="Installs the required files for running Sonic Visualiser."
-	AllowAdvertise="no"
-	Absent="disallow"
-	ConfigurableDirectory="APPLICATIONFOLDER"
-	Level="1">
-      <ComponentRef Id="VampPlugins"/>
-      <ComponentRef Id="MainExecutable"/>
-      <ComponentRef Id="SVFileAssociation"/>
-      <ComponentRef Id="Sndfile"/>
-      <ComponentRef Id="Qt5"/>
-      <ComponentRef Id="VCRuntime"/>
-      <ComponentRef Id="Qt5PlatformPlugins"/>
-      <ComponentRef Id="Qt5StylePlugins"/>
-      <ComponentRef Id="Piper64"/>
-      <ComponentRef Id="Piper32"/>
-      <ComponentRef Id="Checker64"/>
-      <ComponentRef Id="Checker32"/>
-      <ComponentRef Id="Vamp32Plugins"/>
-      <ComponentRef Id="ProgramMenuDir"/>
-    </Feature>
-
-    <UI>
-      <UIRef Id="WixUI_InstallDir" />
-      <UIRef Id="WixUI_ErrorProgressText" />
-    </UI>
-
-    <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
-    <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
-    <Property Id="ApplicationFolderName" Value="Sonic Visualiser" />
-    <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
-    <WixVariable Id="WixUILicenseRtf" Value="..\deploy\win64\License.rtf" />
-    
-    <Icon Id="winicon.ico" SourceFile="..\icons\sv-winicon.ico"/>
-    <Property Id="ARPPRODUCTICON" Value="winicon.ico" />
-
-    <WixVariable Id="WixUIBannerBmp" Value="..\deploy\win32\top.bmp"/>
-    <WixVariable Id="WixUIDialogBmp" Value="..\deploy\win32\main.bmp"/>
-
-  </Product> </Wix>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deploy/win64/sonic-visualiser.wxs.in	Tue Jan 14 13:23:04 2020 +0000
@@ -0,0 +1,381 @@
+<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
+
+  @W@
+
+  <Product
+      Name="Sonic Visualiser" 
+      Id="*"
+      Language="1033"
+      Codepage="1252" 
+      Version="@VERSION@"
+      UpgradeCode="D476941E-65F3-4962-9E72-B40FAAE5DBD0"
+      Manufacturer="Queen Mary, University of London">
+    
+    <Package
+        Id="*"
+        Keywords="Installer"
+        Description="Sonic Visualiser 64-bit Installer" 
+        Comments="Copyright (c) 2020 Queen Mary, University of London and others."
+        Manufacturer="Queen Mary, University of London" 
+        InstallerVersion="200"
+        Languages="1033" 
+        Compressed="yes" 
+        Platform="x64"
+        SummaryCodepage="1252"/>
+
+    <MajorUpgrade DowngradeErrorMessage="A later version of Sonic Visualiser is already installed. Setup will now exit."/>
+
+    <Media Id="1" Cabinet="SonicVisualiser.cab" EmbedCab="yes" DiskPrompt="CD-ROM #1"/>
+    <Property Id="DiskPrompt" Value="Sonic Visualiser Installation [1]"/>
+
+    <Directory Id="TARGETDIR" Name="SourceDir">
+
+      <Directory Id="ProgramFiles64Folder" Name="PFiles64">
+        <Directory Id="VampPlugins" Name="Vamp Plugins">
+          <Component Win64="yes"
+              Id="VampPlugins"
+              Guid="528C7D7E-5A06-4E7D-89BB-7C16431DF82F">
+            <File
+                Id="VampREADME"
+                Name="README.txt"
+                Source="..\deploy\win64\README-Vamp.txt"/>
+          </Component>
+        </Directory>
+
+        <Directory Id="APPLICATIONFOLDER" Name="Sonic Visualiser">
+
+          <Component Win64="yes"
+              Id="MainExecutable"
+              Guid="65E1EBDF-4C8F-47B8-BCD6-981667F5946D">
+
+            <File
+                Id="SVExecutable"
+                Name="Sonic Visualiser.exe"
+                Source="release\Sonic Visualiser.exe"
+                KeyPath="yes">
+
+              <Shortcut
+                  Id="SVStartEntry"
+                  Directory="ProgramMenuDir"
+                  Name="Sonic Visualiser"
+                  WorkingDirectory="APPLICATIONFOLDER"
+                  Icon="winicon.ico"
+                  IconIndex="0"
+                  Advertise="yes"/>
+
+              <Shortcut
+                  Id="SVDesktop"
+                  Directory="DesktopFolder"
+                  Name="Sonic Visualiser"
+                  WorkingDirectory="APPLICATIONFOLDER"
+                  Icon="winicon.ico"
+                  IconIndex="0"
+                  Advertise="yes"/>
+            </File>
+
+            <File
+                Id="COPYING"
+                Name="COPYING.txt"
+                Source="..\COPYING"/>
+            <File
+                Id="README"
+                Name="README.txt"
+                Source="..\README.md"/>
+            <File
+                Id="CHANGELOG"
+                Name="CHANGELOG.txt"
+                Source="..\CHANGELOG"/>
+            <File
+                Id="CITATION"
+                Name="CITATION.txt"
+                Source="..\CITATION"/>
+
+            <File
+                Id="winicon.ico"
+                Name="sv-winicon.ico"
+                Source="..\icons\sv-winicon.ico"/>
+          </Component>
+          
+          <Component Win64="yes"
+	      Id="SVFileAssociation"
+	      Guid="F07C5CC1-0209-4C1A-8D52-C40B50A2B964">
+            
+            <CreateFolder/>
+
+            <ProgId 
+                Id='SonicVisualiser.svfile' 
+                Description='Sonic Visualiser project file'
+                Icon="SVExecutable">
+              <Extension 
+                  Id='sv' 
+                  ContentType='application/sonicvisualiser'>
+                <Verb 
+                    Id='open' 
+                    Command='Open' 
+                    TargetFile='SVExecutable' 
+                    Argument='"%1"' />
+              </Extension>
+            </ProgId>
+            
+          </Component>
+          
+          <Component Win64="yes"
+              Id="Qt5"
+              Guid="5495ED5E-939A-4BE8-9000-D55F2A7A2E90">
+            <File
+                Id="QtCore"
+                Name="Qt5Core.dll"
+                Source="release\Qt5Core.dll"
+		KeyPath="yes"/>
+            <File
+                Id="QtGui"
+                Name="Qt5Gui.dll"
+                Source="release\Qt5Gui.dll"/>
+            <File
+                Id="QtNetwork"
+                Name="Qt5Network.dll"
+                Source="release\Qt5Network.dll"/>
+            <File
+                Id="QtWidgets"
+                Name="Qt5Widgets.dll"
+                Source="release\Qt5Widgets.dll"/>
+            <File
+                Id="QtXml"
+                Name="Qt5Xml.dll"
+                Source="release\Qt5Xml.dll"/>
+            <File
+                Id="QtSvg"
+                Name="Qt5Svg.dll"
+                Source="release\Qt5Svg.dll"/>
+          </Component>
+
+          <Component Win64="yes"
+                     Id="Sndfile"
+                     Guid="04533516-6460-4155-A0D4-E9BA4D31E95C">
+            <File
+                Id="libsndfile"
+                Name="libsndfile-1.dll"
+                Source="..\sv-dependency-builds\win64-msvc\lib\libsndfile-1.dll"
+                KeyPath="yes"/>
+          </Component>
+
+          <Component Win64="yes"
+                     Id="OpenSSL"
+                     Guid="d015dbb1-df5f-49da-a30a-1c46f3e58915">
+            <File
+                Id="libssl"
+                Name="libssl-1_1-x64.dll"
+                Source="C:\OpenSSL-v111-Win64\bin\libssl-1_1-x64.dll"
+                KeyPath="yes"/>
+            <File
+                Id="libcrypto"
+                Name="libcrypto-1_1-x64.dll"
+                Source="c:\OpenSSL-v111-Win64\bin\libcrypto-1_1-x64.dll"/>
+          </Component>
+
+          <Component Win64="yes"
+               Id="VCRuntime"
+               Guid="251D9513-BBD2-47CF-BE78-EF79446F7683">
+
+            <!-- Redistributables are handled by the Visual Studio
+                 installer (a separate program from VS itself) and are
+                 installed into C:\Program Files (x86)\Microsoft
+                 Visual Studio\2019\Community\VC\Redist\MSVC\...  NB
+                 this is not the same thing as the Windows SDKs, which
+                 consist of build tools etc - they have their own
+                 installers and get installed by default to C:\Program
+                 Files (x86)\Windows Kits\... -->
+               
+            <File
+                Id="concrt140"
+                Name="concrt140.dll"
+                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\concrt140.DLL"
+                KeyPath="yes"/>
+            <File
+                Id="msvcp140"
+                Name="msvcp140.dll"
+                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\msvcp140.DLL"/>
+            <File
+                Id="vccorlib140"
+                Name="vccorlib140.dll"
+                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vccorlib140.DLL"/>
+            <File
+                Id="vcruntime140"
+                Name="vcruntime140.dll"
+                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vcruntime140.DLL"/>
+            <File
+                Id="vcruntime140_1"
+                Name="vcruntime140_1.dll"
+                Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vcruntime140_1.DLL"/>
+          </Component>
+
+	  <Directory Id="Platforms" Name="platforms">
+            <Component Win64="yes"
+                Id="Qt5PlatformPlugins"
+                Guid="1FFB773E-6D6D-4C0E-832B-F0FFEA959CA5">
+	      <File
+                  Id="qminimal"
+                  Name="qminimal.dll"
+                  Source="release\qminimal.dll"/>
+	      <File
+                  Id="qwindows"
+                  Name="qwindows.dll"
+                  Source="release\qwindows.dll"/>
+            </Component>
+	  </Directory>
+
+	  <Directory Id="Styles" Name="styles">
+            <Component Win64="yes"
+                Id="Qt5StylePlugins"
+                Guid="7A676FC1-B139-432C-A7D3-F33984934B79">
+	      <File
+                  Id="qwindowsvistastyle"
+                  Name="qwindowsvistastyle.dll"
+                  Source="release\qwindowsvistastyle.dll"/>
+            </Component>
+	  </Directory>
+
+	  <Directory Id="Helpers" Name="helpers">
+            <Component Win64="yes"
+                Id="Piper64"
+                Guid="6385BD86-A5D3-4C77-AD41-B2DCA5B34E48">
+	      <File
+		  Id="piperconv64"
+		  Name="piper-convert.exe"
+		  Source="release\piper-convert.exe"/>
+	      <File
+		  Id="piper64"
+		  Name="piper-vamp-simple-server.exe"
+		  Source="release\piper-vamp-simple-server.exe"/>
+              <File
+                  Id="concrt140h"
+                  Name="concrt140.dll"
+                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\concrt140.DLL"
+                  KeyPath="yes"/>
+              <File
+                  Id="msvcp140h"
+                  Name="msvcp140.dll"
+                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\msvcp140.DLL"/>
+              <File
+                  Id="vccorlib140h"
+                  Name="vccorlib140.dll"
+                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vccorlib140.DLL"/>
+              <File
+                  Id="vcruntime140h"
+                  Name="vcruntime140.dll"
+                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vcruntime140.DLL"/>
+              <File
+                  Id="vcruntime140_1h"
+                  Name="vcruntime140_1.dll"
+                  Source="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\@REDIST_VER@\x64\Microsoft.VC142.CRT\vcruntime140_1.DLL"/>
+	    </Component>
+            <Component Win64="yes"
+                Id="Piper32"
+                Guid="F27A00A8-DD03-45B0-A13C-8CD8CC6F7386">
+	      <File
+		  Id="piper32"
+		  Name="piper-vamp-simple-server-32.exe"
+		  Source="..\build_win32\release\piper-vamp-simple-server.exe"/>
+	      <File
+                  Id="libgcc32"
+                  Name="libgcc_s_dw2-1.dll"
+                  Source="..\build_win32\release\libgcc_s_dw2-1.dll"/>
+	      <File
+                  Id="libstdcplusplus32"
+                  Name="libstdc++-6.dll"
+                  Source="..\build_win32\release\libstdc++-6.dll"/>
+	      <File
+                  Id="libwinpthread32"
+                  Name="libwinpthread-1.dll"
+                  Source="..\build_win32\release\libwinpthread-1.dll"/>
+	    </Component>
+            <Component Win64="yes"
+                Id="Checker64"
+                Guid="19A400D9-D5B2-4CB5-AF84-7C1DEA11D7B5">
+	      <File
+		  Id="checker64"
+		  Name="vamp-plugin-load-checker.exe"
+		  Source="release\vamp-plugin-load-checker.exe"/>
+	    </Component>
+            <Component Win64="yes"
+                Id="Checker32"
+                Guid="4F3FDFEC-23BD-4F2F-9B8F-9C8387FDEC21">
+	      <File
+		  Id="checker32"
+		  Name="vamp-plugin-load-checker-32.exe"
+		  Source="..\build_win32\release\vamp-plugin-load-checker.exe"/>
+	    </Component>
+	    
+	  </Directory> <!-- helpers -->
+	</Directory> <!-- sv -->
+      </Directory> <!-- pfiles64 -->
+
+      <Directory Id="ProgramFilesFolder" Name="PFiles">
+        <Directory Id="Vamp32Plugins" Name="Vamp Plugins">
+          <Component
+              Id="Vamp32Plugins"
+              Guid="62d23999-63ed-4937-b904-ec8e47a776d1">
+            <File
+                Id="Vamp32README"
+                Name="README.txt"
+                Source="..\deploy\win64\README-Vamp32.txt"/>
+          </Component>
+        </Directory>
+      </Directory>
+
+      <Directory Id="ProgramMenuFolder" Name="Programs">
+        <Directory Id="ProgramMenuDir" Name="Sonic Visualiser">
+          <Component Id="ProgramMenuDir" Guid="C1980FF3-D135-46F8-8542-F937748721E6">
+            <RemoveFolder Id="ProgramMenuDir" On="uninstall"/>
+            <RegistryValue Root="HKMU" Key="Software\[Manufacturer]\[ProductName]" Type="string" Value="" KeyPath="yes"/>
+          </Component>
+        </Directory>
+      </Directory>
+
+      <Directory Id="DesktopFolder" Name="Desktop"/>
+
+    </Directory>
+
+    <Feature 
+	Id="Complete"
+	Title="Required files"
+	Description="Installs the required files for running Sonic Visualiser."
+	AllowAdvertise="no"
+	Absent="disallow"
+	ConfigurableDirectory="APPLICATIONFOLDER"
+	Level="1">
+      <ComponentRef Id="VampPlugins"/>
+      <ComponentRef Id="MainExecutable"/>
+      <ComponentRef Id="SVFileAssociation"/>
+      <ComponentRef Id="Sndfile"/>
+      <ComponentRef Id="OpenSSL"/>
+      <ComponentRef Id="Qt5"/>
+      <ComponentRef Id="VCRuntime"/>
+      <ComponentRef Id="Qt5PlatformPlugins"/>
+      <ComponentRef Id="Qt5StylePlugins"/>
+      <ComponentRef Id="Piper64"/>
+      <ComponentRef Id="Piper32"/>
+      <ComponentRef Id="Checker64"/>
+      <ComponentRef Id="Checker32"/>
+      <ComponentRef Id="Vamp32Plugins"/>
+      <ComponentRef Id="ProgramMenuDir"/>
+    </Feature>
+
+    <UI>
+      <UIRef Id="WixUI_InstallDir" />
+      <UIRef Id="WixUI_ErrorProgressText" />
+    </UI>
+
+    <Property Id="WIXUI_INSTALLDIR" Value="APPLICATIONFOLDER" />
+    <Property Id="WIXUI_DONTVALIDATEPATH" Value="1" />
+    <Property Id="ApplicationFolderName" Value="Sonic Visualiser" />
+    <Property Id="WixAppFolder" Value="WixPerMachineFolder" />
+    <WixVariable Id="WixUILicenseRtf" Value="..\deploy\win64\License.rtf" />
+    
+    <Icon Id="winicon.ico" SourceFile="..\icons\sv-winicon.ico"/>
+    <Property Id="ARPPRODUCTICON" Value="winicon.ico" />
+
+    <WixVariable Id="WixUIBannerBmp" Value="..\deploy\win32\top.bmp"/>
+    <WixVariable Id="WixUIDialogBmp" Value="..\deploy\win32\main.bmp"/>
+
+  </Product> </Wix>
--- a/main/main.cpp	Fri Jan 10 15:06:09 2020 +0000
+++ b/main/main.cpp	Tue Jan 14 13:23:04 2020 +0000
@@ -43,6 +43,7 @@
 #include <QPainter>
 #include <QFileOpenEvent>
 #include <QCommandLineParser>
+#include <QSslSocket>
 
 #include <iostream>
 #include <signal.h>
@@ -389,6 +390,10 @@
 
     StoreStartupLocale();
 
+    SVDEBUG << "Note: SSL library build version is: "
+            << QSslSocket::sslLibraryBuildVersionString()
+            << endl;
+    
     // Make known-plugins query as early as possible after showing
     // splash screen.
     PluginScan::getInstance()->scan();