<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi" xmlns:fire="http://schemas.microsoft.com/wix/FirewallExtension" xmlns:util="http://schemas.microsoft.com/wix/UtilExtension">
	<?include Include.wxi?>
	<Product Id="*" Language="1033" Manufacturer="$(var.Author)" Name="$(var.Name) ($(var.PlatformSimpleName))" UpgradeCode="$(var.UpgradeGuid)" Version="$(var.Version)">
		<Package Compressed="yes" InstallScope="perMachine" InstallerVersion="301"/>
		<MajorUpgrade DowngradeErrorMessage="A newer version of $(var.Name) is already installed."/>
		<MediaTemplate EmbedCab="yes"/>
		<UIRef Id="WixUI_InstallDir"/>
		<!-- causes ICE61 warning, but stops user from installing many instances from nightly builds. -->
		<Upgrade Id="$(var.UpgradeGuid)">
			<UpgradeVersion Minimum="0.0.0.0" Property="UPGRADE"/>
		</Upgrade>
		<Feature Id="ProductFeature" Title="$(var.Name)">
			<ComponentGroupRef Id="ProductComponents"/>
			<ComponentGroupRef Id="ProductQtPluginComponents"/>
			<ComponentRef Id="RegistryEntries"/>
		</Feature>
		<DirectoryRef Id="TARGETDIR">
			<Component Guid="7CF3564D-1F8E-4D3D-9781-E1EE22D5BD67" Id="RegistryEntries">
				<RegistryKey ForceCreateOnInstall="yes" ForceDeleteOnUninstall="yes" Key="Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers" Root="HKLM">
					<RegistryValue Name="[INSTALLFOLDER]barriers.exe" Type="string" Value="~ HIGHDPIAWARE WIN7RTM"/>
				</RegistryKey>
				<!-- Windows 8 and later only -->
				<Condition><![CDATA[Installed OR (VersionNT >= 602)]]></Condition>
			</Component>
		</DirectoryRef>
		<Icon Id="barrier.ico" SourceFile="$(var.ResPath)/barrier.ico"/>
		<WixVariable Id="WixUILicenseRtf" Value="$(var.ResPath)\License.rtf"/>
		<WixVariable Id="WixUIBannerBmp" Value="$(var.ResPath)\banner.bmp"/>
		<WixVariable Id="WixUIDialogBmp" Value="$(var.ResPath)\dialog.bmp"/>
		<Property Id="ARPPRODUCTICON" Value="barrier.ico"/>
		<Property Id="WIXUI_INSTALLDIR" Value="INSTALLFOLDER"/>
		<Property Id="MSIRESTARTMANAGERCONTROL" Value="Disable"/>
		<CustomAction ExeCommand="" FileKey="GuiProgram" Id="StartGui" Return="asyncNoWait"/>
		<UI>
			<Publish Control="Finish" Dialog="ExitDialog" Event="DoAction" Value="StartGui">NOT Installed</Publish>
		</UI>
	</Product>
	<Fragment>
		<Directory Id="TARGETDIR" Name="SourceDir">
			<Directory Id="$(var.ProgramFilesFolder)">
				<Directory Id="INSTALLFOLDER" Name="$(var.Name)">
					<Directory Id="OpenSSLDir" Name="OpenSSL"/>
					<Directory Id="PlatformsDir" Name="Platforms"/>
				</Directory>
			</Directory>
			<Directory Id="ProgramMenuFolder"/>
		</Directory>
	</Fragment>
	<Fragment>
		<ComponentGroup Directory="INSTALLFOLDER" Id="ProductComponents">
			<Component Guid="EC9AD3B0-277C-4157-B5C8-5FD5B6A5F4AD" Id="Core">
				<File KeyPath="yes" Source="$(var.BinPath)/barrierd.exe"/>
				<ServiceInstall Description="Controls the $(var.Name) foreground processes." DisplayName="$(var.Name)" ErrorControl="normal" Id="ServiceInstall" Name="Barrier" Start="auto" Type="ownProcess">
					<util:ServiceConfig FirstFailureActionType="restart" ResetPeriodInDays="1" RestartServiceDelayInSeconds="1" SecondFailureActionType="restart" ThirdFailureActionType="restart"/>
				</ServiceInstall>
				<ServiceControl Id="ServiceControl" Name="Barrier" Remove="uninstall" Start="install" Stop="both"/>
				<File Source="$(var.BinPath)/barriers.exe">
					<fire:FirewallException Id="ServerFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
				</File>
				<File Source="$(var.BinPath)/barrierc.exe"/>
				<File Source="$(var.OpenSSLBinPath)/libeay32.dll"/>
				<File Source="$(var.OpenSSLBinPath)/ssleay32.dll"/>
				<File Source="$(var.OpenSSLBinPath)/openssl.exe"/>
				<File Source="$(var.ResPath)/openssl/barrier.conf"/>
			</Component>
			<Component Guid="BAC8149B-6287-45BF-9C27-43D71ED40214" Id="Gui">
				<File Id="GuiProgram" KeyPath="yes" Source="$(var.BinPath)/barrier.exe">
					<Shortcut Advertise="yes" Directory="ProgramMenuFolder" Icon="barrier.ico" Id="GuiShortcut" Name="$(var.Name)"/>
					<fire:FirewallException Id="GuiFirewallException" IgnoreFailure="yes" Name="$(var.Name)" Scope="any"/>
				</File>
				<?if $(var.Configuration) = "Debug" ?>
				<File Source="$(var.QtBinPath)\Qt5Cored.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Guid.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Networkd.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Svgd.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Widgetsd.dll"/>
				<File Source="$(var.QtBinPath)\libGLESv2d.dll"/>
				<File Source="$(var.QtBinPath)\libEGLd.dll"/>
				<!-- Hacky -->
				<File Source="C:\Program Files (x86)\Windows Kits\10\bin\$(var.Platform)\ucrt\ucrtbased.dll"/>
				<?else ?>
				<File Source="$(var.QtBinPath)\Qt5Core.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Gui.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Network.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Svg.dll"/>
				<File Source="$(var.QtBinPath)\Qt5Widgets.dll"/>
				<File Source="$(var.QtBinPath)\libGLESv2.dll"/>
				<File Source="$(var.QtBinPath)\libEGL.dll"/>
				<?endif ?>
			</Component>
		</ComponentGroup>
		<ComponentGroup Directory="PlatformsDir" Id="ProductQtPluginComponents">
			<Component Guid="684EFA14-856B-440E-A5E6-E90E04E36B41" Id="QtPlatformPlugin">
				<?if $(var.Configuration) = "Debug" ?>
				<File Source="$(var.QtPlatformPath)\qwindowsd.dll"/>
				<?else ?>
				<File Source="$(var.QtPlatformPath)\qwindows.dll"/>
				<?endif ?>
			</Component>
		</ComponentGroup>
	</Fragment>
</Wix>
