Files
renderdoc/util/installer/Installer32.wxs
T
baldurk bffeb08a86 Try to do a version check on installed VC redist. Refs #2359
* Unfortunately there isn't an easy registry key to check to see if the
  2015-2019 redist that we need is installed. Instead we need to check the
  major/minor version to see if it's at least 14.20.
* This is complicated by the fact that windows installer returns DWORD registry
  values with an extra # but provides no built-in way to strip it so it can be
  compared numerically. The solution we've used here is a custom vbscript
  action, but apparently they are problematic. Worst case I believe this will
  try to install the runtime when not necessary, which might require an
  unnecessary reboot. Or alternatively it may misdetect the runtime as installed
  but the large majority of people have a compatible redist so this isn't too
  bad either.
2021-09-17 13:20:46 +01:00

418 lines
23 KiB
XML

<?xml version='1.0' encoding='windows-1252'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<Product Name='RenderDoc' Id='*' UpgradeCode='D320753C-4B18-4905-A752-E68959943E7D'
Language='1033' Codepage='1252' Version='$(env.RENDERDOC_VERSION).0' Manufacturer='Baldur Karlsson'>
<Package Id='*' Keywords='Installer' Description="Installer for RenderDoc"
Comments='RenderDoc Homepage is http://renderdoc.org/' Manufacturer='Baldur Karlsson'
InstallerVersion='301' Languages='1033' Compressed='yes' SummaryCodepage='1252' />
<UI>
<Error Id="25000">Please use the 64-bit installer - the 64-bit version of RenderDoc fully supports capturing 32-bit programs.</Error>
</UI>
<Property Id="MajorMinorVersion">$(env.RENDERDOC_VERSION)</Property>
<Property Id="REINSTALLMODE" Value="amus"/>
<CustomAction Id="Need64BitVersion" Error="25000" />
<InstallUISequence>
<Custom Action="Need64BitVersion" Before="AppSearch">VersionNT64</Custom>
</InstallUISequence>
<InstallExecuteSequence>
<RemoveExistingProducts After="InstallInitialize"/>
</InstallExecuteSequence>
<Upgrade Id="D320753C-4B18-4905-A752-E68959943E7D">
<UpgradeVersion Minimum="0.18.0"
IncludeMinimum="yes"
IncludeMaximum="yes"
Maximum="$(env.RENDERDOC_VERSION).0"
Property="OLDERVERSIONBEINGUPGRADED" />
<UpgradeVersion OnlyDetect="yes" Property="NEWERVERSIONDETECTED" Minimum="$(env.RENDERDOC_VERSION).0" IncludeMinimum="no" />
</Upgrade>
<Condition Message="A later version of [ProductName] is already installed">
NOT NEWERVERSIONDETECTED
</Condition>
<Media Id='1' Cabinet='renderdoc.cab' EmbedCab='yes' CompressionLevel='high' DiskPrompt="CD-ROM #1" />
<Property Id='DiskPrompt' Value="RenderDoc Installation [1]" />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='ProgramFilesFolder' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='RenderDoc'>
<Component Id='QRenderDoc' Guid='0DB375D5-7712-4853-AA75-536DF863C827'>
<File Id='qrenderdocEXE' Name='qrenderdoc.exe' DiskId='1' Source='dist/Release32/qrenderdoc.exe' KeyPath='yes'>
<Shortcut Id="startmenuRenderDoc" Directory="ProgramMenuDir" Name="RenderDoc" WorkingDirectory='INSTALLDIR' Icon="icon.ico" IconIndex="0" Advertise="yes" />
</File>
<RegistryValue Root="HKLM" Id="VerbRDC" Action="write"
Key="Software\Classes\RenderDoc.RDCCapture.1\shell\open\command"
Value='"[#qrenderdocEXE]" "%1"'
Type="expandable" />
<RegistryValue Root="HKLM" Id="VerbDescRDC" Action="write"
Key="Software\Classes\RenderDoc.RDCCapture.1"
Value='RenderDoc Capture Log (.rdc)'
Type="expandable" />
<RegistryValue Root="HKLM" Id="VerbIconRDC" Action="write"
Key="Software\Classes\RenderDoc.RDCCapture.1\DefaultIcon"
Value='[#qrenderdocEXE]'
Type="expandable" />
<RegistryValue Root="HKLM" Id="RDCProgIDCLSID" Action="write"
Key="Software\Classes\RenderDoc.RDCCapture.1\CLSID"
Value='{5D6BF029-A6BA-417A-8523-120492B1DCE3}'
Type="expandable" />
<RegistryValue Root="HKLM" Id="VerbCAP" Action="write"
Key="Software\Classes\RenderDoc.RDCSettings.1\shell\open\command"
Value='"[#qrenderdocEXE]" "%1"'
Type="expandable" />
<RegistryValue Root="HKLM" Id="VerbDescCAP" Action="write"
Key="Software\Classes\RenderDoc.RDCSettings.1"
Value='RenderDoc Capture Settings (.cap)'
Type="expandable" />
<RegistryValue Root="HKLM" Id="VerbIconCAP" Action="write"
Key="Software\Classes\RenderDoc.RDCSettings.1\DefaultIcon"
Value='[#qrenderdocEXE]'
Type="expandable" />
</Component>
<Component Id='RenderDocCPP' Guid='2E6F718F-8BCC-4D41-9688-E99CF2F6B303'>
<File Id='RenderDocCPP' Name='renderdoc.dll' DiskId='1' Source='dist/Release32/renderdoc.dll' KeyPath='yes' />
<File Id='RenderDocJSON' Name='renderdoc.json' DiskId='1' Source='dist/Release32/renderdoc.json' />
<File Id='D3DCompiler47' Name='d3dcompiler_47.dll' DiskId='1' Source='dist/Release32/d3dcompiler_47.dll' />
<File Id='RenderDocSHIM' Name='renderdocshim32.dll' DiskId='1' Source='dist/Release32/renderdocshim32.dll' />
<File Id='dbghelpDLL' Name='dbghelp.dll' DiskId='1' Source='dist/Release32/dbghelp.dll' />
<File Id='symsrvDLL' Name='symsrv.dll' DiskId='1' Source='dist/Release32/symsrv.dll' />
<File Id='symsrvYES' Name='symsrv.yes' DiskId='1' Source='dist/Release32/symsrv.yes' />
<File Id='RenderDocAPIheader' Name='renderdoc_app.h' DiskId='1' Source='dist/Release32/renderdoc_app.h' />
<RegistryValue Root="HKLM" Id="RDCCLSID" Action="write"
Key="Software\Classes\CLSID\{5D6BF029-A6BA-417A-8523-120492B1DCE3}"
Value='RenderDoc Thumbnail Handler'
Type="expandable" />
<RegistryValue Root="HKLM" Id="RDCCLSIDServer" Action="write"
Key="Software\Classes\CLSID\{5D6BF029-A6BA-417A-8523-120492B1DCE3}\InprocServer32"
Value='[#RenderDocCPP]'
Type="expandable" />
<RegistryValue Root="HKLM" Id="RDCVulkanImplicitLayer" Action="write"
Key="Software\Khronos\Vulkan\ImplicitLayers"
Name='[#RenderDocJSON]'
Value='0'
Type="integer" />
</Component>
<Component Id='LICENSE' Guid='107AD4E6-D64F-4284-A1F6-D8AAAA6CFC42'>
<File Id='LICENSE' Name='LICENSE.rtf' DiskId='1' Source='util/installer/LICENSE.rtf' KeyPath='yes' />
</Component>
<Component Id='RenderDocCMD' Guid='97338A5D-8FDB-4DF5-AEC7-14B36F234F29'>
<File Id='RenderDocCMD' Name='renderdoccmd.exe' DiskId='1' Source='dist/Release32/renderdoccmd.exe' KeyPath='yes' />
</Component>
<Component Id='Qt' Guid='63C1C176-5B7C-4D29-9382-8E0FA75C5B80'>
<File Id='Qt5Core' Name='Qt5Core.dll' DiskId='1' Source='dist/Release32/Qt5Core.dll' KeyPath='yes' />
<File Id='Qt5Gui' Name='Qt5Gui.dll' DiskId='1' Source='dist/Release32/Qt5Gui.dll' />
<File Id='Qt5Network' Name='Qt5Network.dll' DiskId='1' Source='dist/Release32/Qt5Network.dll' />
<File Id='Qt5Svg' Name='Qt5Svg.dll' DiskId='1' Source='dist/Release32/Qt5Svg.dll' />
<File Id='Qt5Widgets' Name='Qt5Widgets.dll' DiskId='1' Source='dist/Release32/Qt5Widgets.dll' />
<File Id='libcrypto' Name='libcrypto-1_1.dll' DiskId='1' Source='dist/Release32/libcrypto-1_1.dll' />
<File Id='libssl' Name='libssl-1_1.dll' DiskId='1' Source='dist/Release32/libssl-1_1.dll' />
</Component>
<Component Id='Python' Guid='63C5667D-38DA-464B-8E2F-B2857B8EAEC8'>
<File Id='Python36' Name='python36.dll' DiskId='1' Source='dist/Release32/python36.dll' KeyPath='yes' />
<File Id='PythonLibsZIP' Name='python36.zip' DiskId='1' Source='dist/Release32/python36.zip' />
<File Id='CTypes' Name='_ctypes.pyd' DiskId='1' Source='dist/Release32/_ctypes.pyd' />
<File Id='Shiboken2' Name='shiboken2.dll' DiskId='1' Source='dist/Release32/shiboken2.dll' />
</Component>
<Component Id='Documentation' Guid='CD32B446-6DC1-49E4-8FE9-509E1AFB126D'>
<File Id='Documentation' Name='renderdoc.chm' DiskId='1' Source='dist/Release32/renderdoc.chm' KeyPath='yes'>
<Shortcut Id="startmenuDocs" Directory="ProgramMenuDir" Name="RenderDoc Documentation" Icon='chm.ico' Advertise="yes" />
</File>
</Component>
<Directory Id='qtplugins' Name='qtplugins'>
<Directory Id='qtplugins_imageformats' Name='imageformats'>
<Component Id='qt_imgplugin' Guid='6D852A69-D99E-4085-9899-5FA799FF72EA'>
<File Id='qsvg' Name='qsvg.dll' DiskId='1' Source='dist/Release32/qtplugins/imageformats/qsvg.dll' KeyPath='yes' />
</Component>
</Directory>
<Directory Id='qtplugins_platform' Name='platforms'>
<Component Id='qt_platplugin' Guid='24A1B9B9-A207-4C46-8CDD-BBD38588F985'>
<File Id='qwindows' Name='qwindows.dll' DiskId='1' Source='dist/Release32/qtplugins/platforms/qwindows.dll' KeyPath='yes' />
</Component>
</Directory>
</Directory>
<Directory Id='PySide2' Name='PySide2'>
<Component Id='PySide2Deps' Guid='C5ECF5CC-2424-48D9-8194-F8E0348882A8'>
<File Id='pyside2dll' Name='pyside2.dll' DiskId='1' Source='dist/Release32/PySide2/pyside2.dll' KeyPath='yes' />
<File Id='PS2QtCore' Name='QtCore.pyd' DiskId='1' Source='dist/Release32/PySide2/QtCore.pyd' />
<File Id='PS2QtGui' Name='QtGui.pyd' DiskId='1' Source='dist/Release32/PySide2/QtGui.pyd' />
<File Id='PS2QtWidgets' Name='QtWidgets.pyd' DiskId='1' Source='dist/Release32/PySide2/QtWidgets.pyd' />
<File Id='PS2utils' Name='_utils.py' DiskId='1' Source='dist/Release32/PySide2/_utils.py' />
<File Id='PS2init' Name='__init__.py' DiskId='1' Source='dist/Release32/PySide2/__init__.py' />
</Component>
</Directory>
<Directory Id='plugins' Name='plugins'>
<Directory Id='plugins_amd' Name='amd'>
<Directory Id='plugins_amd_rgp' Name='rgp'>
<Component Id='rgp_plugin' Guid='A5766AE0-EF2E-4584-B529-3760F476B613'>
<File Id='amdrgpDLL' Name='DevDriverAPI.dll' DiskId='1' Source='dist/Release32/plugins/amd/rgp/DevDriverAPI.dll' KeyPath='yes' />
</Component>
</Directory>
<Directory Id='plugins_amd_ags' Name='ags'>
<Component Id='ags_plugin' Guid='1F42FA40-EC82-4E9C-9A6F-67CCF0251DB0'>
<File Id='amdagsDLL' Name='amd_ags_x86.dll' DiskId='1' Source='dist/Release32/plugins/amd/ags/amd_ags_x86.dll' KeyPath='yes' />
</Component>
</Directory>
<Directory Id='plugins_amd_counters' Name='counters'>
<Component Id='gpa_plugin' Guid='16CFF53A-CB61-49A1-8FE8-CDBB02DE29A4'>
<File Id='GPUPerfAPICounters' Name='GPUPerfAPICounters.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPICounters.dll' KeyPath='yes' />
<File Id='GPUPerfAPIDX11' Name='GPUPerfAPIDX11.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPIDX11.dll' />
<File Id='GPUPerfAPIDX12' Name='GPUPerfAPIDX12.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPIDX12.dll' />
<File Id='GPUPerfAPIDXGetAMDDeviceInfo' Name='GPUPerfAPIDXGetAMDDeviceInfo.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPIDXGetAMDDeviceInfo.dll' />
<File Id='GPUPerfAPIGL' Name='GPUPerfAPIGL.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPIGL.dll' />
<File Id='GPUPerfAPIVK' Name='GPUPerfAPIVK.dll' DiskId='1' Source='dist/Release32/plugins/amd/counters/GPUPerfAPIVK.dll' />
</Component>
</Directory>
</Directory>
<Directory Id='plugins_android' Name='android'>
<Component Id='android_plugin' Guid='D469744A-7915-46B8-88B4-4B76223EE8CB'>
<File Id='APKarm32' Name='org.renderdoc.renderdoccmd.arm32.apk' DiskId='1' Source='dist/Release32/plugins/android/org.renderdoc.renderdoccmd.arm32.apk' KeyPath='yes' />
<File Id='APKarm64' Name='org.renderdoc.renderdoccmd.arm64.apk' DiskId='1' Source='dist/Release32/plugins/android/org.renderdoc.renderdoccmd.arm64.apk' />
<File Id='aapt' Name='aapt.exe' DiskId='1' Source='dist/Release32/plugins/android/aapt.exe' />
<File Id='adb' Name='adb.exe' DiskId='1' Source='dist/Release32/plugins/android/adb.exe' />
<File Id='AdbWinApi' Name='AdbWinApi.dll' DiskId='1' Source='dist/Release32/plugins/android/AdbWinApi.dll' />
<File Id='AdbWinUsbApi' Name='AdbWinUsbApi.dll' DiskId='1' Source='dist/Release32/plugins/android/AdbWinUsbApi.dll' />
<File Id='apksigner' Name='apksigner.jar' DiskId='1' Source='dist/Release32/plugins/android/apksigner.jar' />
<File Id='keystore' Name='renderdoc.keystore' DiskId='1' Source='dist/Release32/plugins/android/renderdoc.keystore' />
<File Id='zipalign' Name='zipalign.exe' DiskId='1' Source='dist/Release32/plugins/android/zipalign.exe' />
</Component>
</Directory>
<Directory Id='plugins_spirv' Name='spirv'>
<Component Id='spirv_plugin' Guid='749539F5-0AAA-4A26-B8F4-B2ABD1F7754E'>
<File Id='spirvcross' Name='spirv-cross.exe' DiskId='1' Source='dist/Release32/plugins/spirv/spirv-cross.exe' KeyPath='yes' />
<File Id='spirvdis' Name='spirv-dis.exe' DiskId='1' Source='dist/Release32/plugins/spirv/spirv-dis.exe' />
<File Id='spirvas' Name='spirv-as.exe' DiskId='1' Source='dist/Release32/plugins/spirv/spirv-as.exe' />
<File Id='glslang' Name='glslangValidator.exe' DiskId='1' Source='dist/Release32/plugins/spirv/glslangValidator.exe' />
</Component>
</Directory>
</Directory>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder" Name="Programs">
<Directory Id="ProgramMenuDir" Name="RenderDoc">
<Component Id="ProgramMenuDir" Guid="30CCCAB1-49D5-45B3-952C-53E3B581E691">
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\[Manufacturer]\[ProductName]' Type='string' Value='' KeyPath='yes' />
</Component>
</Directory>
</Directory>
<Component Id="ImageOpenWith" Guid="1F56AF06-3E83-4D7E-85A2-6A309A55FF4F">
<RegistryValue Root="HKLM" Id="RDCOpenWithCommand" Action="write" KeyPath='yes'
Key="Software\Classes\Applications\qrenderdoc.exe\shell\open\command"
Value='"[#qrenderdocEXE]" "%1"'
Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithDDS" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.dds' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithHDR" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.hdr' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithJPG" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.jpg' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithJPEG" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.jpeg' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithPNG" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.png' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithEXR" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.exr' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithTGA" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.tga' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithBMP" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.bmp' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithGIF" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.gif' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithPSD" Action="write"
Key="Software\Classes\Applications\qrenderdoc.exe\SupportedTypes"
Name='.psd' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidDDS" Action="write"
Key="Software\Classes\.dds\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidHDR" Action="write"
Key="Software\Classes\.hdr\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidJPG" Action="write"
Key="Software\Classes\.jpg\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidJPEG" Action="write"
Key="Software\Classes\.jpeg\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidPNG" Action="write"
Key="Software\Classes\.png\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidEXR" Action="write"
Key="Software\Classes\.exr\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidTGA" Action="write"
Key="Software\Classes\.tga\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidBMP" Action="write"
Key="Software\Classes\.bmp\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidGIF" Action="write"
Key="Software\Classes\.gif\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
<RegistryValue Root="HKLM" Id="RDCOpenWithProgidPSD" Action="write"
Key="Software\Classes\.psd\OpenWithProgids" Name='RenderDoc.RDCCapture.1' Value='' Type="string" />
</Component>
<Component Id="ImageThumbnailProvider" Guid="51E29C24-61F0-4F40-AB17-D66A97B3D543">
<RegistryValue Root="HKLM" Id="RDCProvider" Action="write" KeyPath='yes'
Key="Software\Classes\RenderDoc.RDCCapture.1\ShellEx\{e357fccd-a995-4576-b01f-234630154e96}"
Value='{5D6BF029-A6BA-417A-8523-120492B1DCE3}'
Type="expandable" />
</Component>
<Component Id="FileExtensionRDC" Guid="5F21081F-59A8-43EE-8E95-170335FC3EF4">
<ProgId Id='RenderDoc.RDCCapture.1' Description='RenderDoc Capture Log (.rdc)'>
<Extension Id='rdc' />
</ProgId>
</Component>
<Component Id="FileExtensionCAP" Guid="3A373912-99D7-4A1C-B81C-6C69BA6B8733">
<ProgId Id='RenderDoc.RDCSettings.1' Description='RenderDoc Capture Settings (.cap)'>
<Extension Id='cap' />
</ProgId>
</Component>
</Directory>
<DirectoryRef Id="TARGETDIR">
<Merge Id="VCRedist32" DiskId="1" Language="0" SourceFile="C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Redist\MSVC\v142\MergeModules\Microsoft_VC142_CRT_x86.msm"/>
</DirectoryRef>
<!-- check if the runtime is installed -->
<Property Id="VCRT32INSTALLED" Value="0">
<RegistrySearch Id="VCRT32Key"
Root="HKLM"
Key="Software\Microsoft\VisualStudio\14.0\VC\Runtimes\x86"
Name="Installed"
Type="raw" />
</Property>
<!-- grab the major/minor version numbers, as we need to check if 2019 is installed or only an older version -->
<Property Id="VCRT32MAJOR" Value="0">
<RegistrySearch Id="VCRT32MajorKey"
Root="HKLM"
Key="Software\Microsoft\VisualStudio\14.0\VC\Runtimes\x86"
Name="Major"
Type="raw" />
</Property>
<Property Id="VCRT32MINOR" Value="0">
<RegistrySearch Id="VCRT32MinorKey"
Root="HKLM"
Key="Software\Microsoft\VisualStudio\14.0\VC\Runtimes\x86"
Name="Minor"
Type="raw" />
</Property>
<!-- the versions are stored in DWORDs which windows installer returns as #14 etc. We need to strip the # to actually compare :( -->
<CustomAction Id="RemoveHash" Script="vbscript">
<![CDATA[
Session.Property("VCRT32MAJOR") = Replace(Session.Property("VCRT32MAJOR"),"#","")
Session.Property("VCRT32MINOR") = Replace(Session.Property("VCRT32MINOR"),"#","")
]]>
</CustomAction>
<InstallExecuteSequence>
<Custom Action="RemoveHash" Before="LaunchConditions"/>
</InstallExecuteSequence>
<InstallUISequence>
<Custom Action="RemoveHash" Before="LaunchConditions"/>
</InstallUISequence>
<Feature Id='Complete' Title='RenderDoc' Description='Everything included.' AllowAdvertise='no' Absent='disallow' Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR'>
<Feature Id='MainProgram' Title='Program' Description='The main executable with everything needed to capture and replay.' AllowAdvertise='no' Absent='disallow' Level='1'>
<ComponentRef Id='QRenderDoc' />
<ComponentRef Id='RenderDocCPP' />
<ComponentRef Id='RenderDocCMD' />
<ComponentRef Id='Qt' />
<ComponentRef Id='Python' />
<ComponentRef Id='qt_imgplugin' />
<ComponentRef Id='qt_platplugin' />
<ComponentRef Id='PySide2Deps' />
<ComponentRef Id='LICENSE' />
<ComponentRef Id='rgp_plugin' />
<ComponentRef Id='ags_plugin' />
<ComponentRef Id='gpa_plugin' />
<ComponentRef Id='android_plugin' />
<ComponentRef Id='spirv_plugin' />
<ComponentRef Id='ProgramMenuDir' />
<ComponentRef Id='ImageOpenWith' />
</Feature>
<Feature Id="VCRedist32" Title="Visual C++ 2019 Runtime" AllowAdvertise="no" Display="hidden" Level="1">
<!-- install the redist either if it's not installed at all, or if it's too old (14.20 is the first VS2019 redist) -->
<Condition Level='0'>
<![CDATA[Installed OR (VCRT32INSTALLED <> "0" AND VCRT32MAJOR >= "14" AND VCRT32MINOR >= "20")]]>
</Condition>
<MergeRef Id="VCRedist32"/>
</Feature>
<Feature Id='Docs' Title='Documentation' Description='CHM file with local help.' Level='1'>
<ComponentRef Id='Documentation' />
</Feature>
<Feature Id='FileExts' Title='File Associations' Description='Associate .rdc (Capture logs) and .cap (Capture settings) files with RenderDoc.' Level='1'>
<ComponentRef Id='ImageThumbnailProvider' />
<ComponentRef Id='FileExtensionRDC' />
<ComponentRef Id='FileExtensionCAP' />
</Feature>
</Feature>
<UIRef Id="WixUI_Mondo" />
<UIRef Id="WixUI_ErrorProgressText" />
<WixVariable Id="WixUILicenseRtf" Value="util/installer/LICENSE.rtf" />
<WixVariable Id="WixUIBannerBmp" Value="util/installer/bannrbmp.bmp" />
<WixVariable Id="WixUIDialogBmp" Value="util/installer/dlgbmp.bmp" />
<Icon Id="chm.ico" SourceFile="util/installer/chm.ico" />
<Icon Id="icon.ico" SourceFile="qrenderdoc/Resources/icon.ico" />
<Property Id="ARPPRODUCTICON" Value="icon.ico" />
<Property Id="ARPHELPLINK" Value="http://renderdoc.org/" />
</Product>
</Wix>