cppcheck/win_installer/cppcheck.wxs

213 lines
14 KiB
XML

<?xml version='1.0' encoding='utf-8'?>
<Wix xmlns='http://schemas.microsoft.com/wix/2006/wi'>
<?include productInfo.wxi ?>
<?include config.wxi ?>
<Product Name='$(var.ProductName)' Id='*' UpgradeCode='$(var.ProductUpgradeCode)'
Language='1033' Codepage='1252' Version='$(var.ProductVersion)' Manufacturer='$(var.ProductManufacturer)'>
<Package Id='*' Keywords='Installer' Description="$(var.ProductName) Setup"
Comments='$(var.ProductDescription)' Manufacturer='$(var.ProductManufacturer)'
InstallerVersion='405' Languages='1033' Compressed='yes' SummaryCodepage='1252' InstallScope='perMachine'/>
<Media Id='1' Cabinet='Cppcheck.cab' EmbedCab='yes' CompressionLevel='high' DiskPrompt='CD-ROM 1' />
<Property Id='DiskPrompt' Value='Cppcheck installation [1]' />
<Directory Id='TARGETDIR' Name='SourceDir'>
<Directory Id='System32' FileSource='SystemFolder' />
<Directory Id='$(var.PlatformProgramFilesFolder)' Name='PFiles'>
<Directory Id='INSTALLDIR' Name='$(var.ProductNameShort)'>
<Component Id='cppcheckcore.dll' Guid='$(var.cppcheckcoreGUID)'>
<File Id='cppcheckcore.dll' Name='cppcheck-core.dll' DiskId='1' Source='$(var.CliBuildDir)\cppcheck-core.dll' KeyPath='yes' />
</Component>
<Component Id='cppcheck.exe' Guid='$(var.cppcheckGUID)'>
<File Id='cppcheck.exe' Name='cppcheck.exe' DiskId='1' Source='$(var.CliBuildDir)\cppcheck.exe' KeyPath='yes' />
</Component>
<Component Id='RegistryEntries' Guid='$(var.registrykeysGUID)'>
<RegistryKey Root="HKCU" Key="SOFTWARE\$(var.ProductNameShort)" ForceDeleteOnUninstall="yes">
<RegistryValue Name="InstallationPath" Value="[INSTALLDIR]" Type="string" KeyPath="yes" />
<RegistryValue Name="Version" Value="$(var.ProductVersion)" Type="string" />
</RegistryKey>
</Component>
<Component Id='GuiExecutable' DiskId='1' Guid='$(var.guiGUID)'>
<File Id='cppcheckguiexe' Name='cppcheckgui.exe' Source='$(var.GuiBuildDir)\cppcheck-gui.exe' KeyPath='yes'>
<Shortcut Id='startmenuGui' Directory="ProgramMenuDir" Name='$(var.ProductNameShort)'
WorkingDirectory='INSTALLDIR' Icon="cppcheckgui.exe" IconIndex="0" Advertise="yes" />
</File>
<File Id='Qt5Coredll' Name='Qt5Core.dll' Source='$(var.QtDllDir)\Qt5Core.dll' />
<File Id='Qt5Guidll' Name='Qt5Gui.dll' Source='$(var.QtDllDir)\Qt5Gui.dll' />
<File Id='Qt5Widgetsdll' Name='Qt5Widgets.dll' Source='$(var.QtDllDir)\Qt5Widgets.dll' />
<File Id='Qt5PrintSupportdll' Name='Qt5PrintSupport.dll' Source='$(var.QtDllDir)\Qt5PrintSupport.dll' />
</Component>
<Directory Id='QtPlatformsFolder' Name='platforms'>
<Component Id='QtPlatforms' DiskId='1' Guid='$(var.qtplatformsGUID)'>
<File Id='qwindowsdll' Name='qwindows.dll' Source='$(var.QtDllDir)\platforms\qwindows.dll' />
</Component>
</Directory>
<Directory Id='TranslationsFolder' Name='lang'>
<Component Id='GuiTranslations' Guid='$(var.guiTranslationsGUID)'>
<File Id='cppcheck_de.qm' Name='cppcheck_de.qm' Source='$(var.TranslationsDir)\cppcheck_de.qm' />
<File Id='cppcheck_es.qm' Name='cppcheck_es.qm' Source='$(var.TranslationsDir)\cppcheck_es.qm' />
<File Id='cppcheck_fi.qm' Name='cppcheck_fi.qm' Source='$(var.TranslationsDir)\cppcheck_fi.qm' />
<File Id='cppcheck_fr.qm' Name='cppcheck_fr.qm' Source='$(var.TranslationsDir)\cppcheck_fr.qm' />
<File Id='cppcheck_it.qm' Name='cppcheck_it.qm' Source='$(var.TranslationsDir)\cppcheck_it.qm' />
<File Id='cppcheck_ja.qm' Name='cppcheck_ja.qm' Source='$(var.TranslationsDir)\cppcheck_ja.qm' />
<File Id='cppcheck_ko.qm' Name='cppcheck_ko.qm' Source='$(var.TranslationsDir)\cppcheck_ko.qm' />
<File Id='cppcheck_nl.qm' Name='cppcheck_nl.qm' Source='$(var.TranslationsDir)\cppcheck_nl.qm' />
<File Id='cppcheck_ru.qm' Name='cppcheck_ru.qm' Source='$(var.TranslationsDir)\cppcheck_ru.qm' />
<File Id='cppcheck_sv.qm' Name='cppcheck_sv.qm' Source='$(var.TranslationsDir)\cppcheck_sv.qm' />
<File Id='cppcheck_sr.qm' Name='cppcheck_sr.qm' Source='$(var.TranslationsDir)\cppcheck_sr.qm' />
<File Id='cppcheck_zh_CN.qm' Name='cppcheck_zh_CN.qm' Source='$(var.TranslationsDir)\cppcheck_zh_CN.qm' />
</Component>
</Directory>
<Directory Id='CfgsFolder' Name='cfg'>
<Component Id='MandatoryCfgs' Guid='$(var.mandatoryCfgsGUID)'>
<File Id='std.cfg' Name='std.cfg' Source='$(var.CfgsDir)\std.cfg' />
</Component>
<Component Id='OptionalCfgs' Guid='$(var.optionalCfgsGUID)'>
<File Id='avr.cfg' Name='avr.cfg' Source='$(var.CfgsDir)\avr.cfg' />
<File Id='gnu.cfg' Name='gnu.cfg' Source='$(var.CfgsDir)\gnu.cfg' />
<File Id='gtk.cfg' Name='gtk.cfg' Source='$(var.CfgsDir)\gtk.cfg' />
<File Id='microsoft_sal.cfg' Name='microsoft_sal.cfg' Source='$(var.CfgsDir)\microsoft_sal.cfg' />
<File Id='posix.cfg' Name='posix.cfg' Source='$(var.CfgsDir)\posix.cfg' />
<File Id='qt.cfg' Name='qt.cfg' Source='$(var.CfgsDir)\qt.cfg' />
<File Id='sdl.cfg' Name='sdl.cfg' Source='$(var.CfgsDir)\sdl.cfg' />
<File Id='sfml.cfg' Name='sfml.cfg' Source='$(var.CfgsDir)\sfml.cfg' />
<File Id='windows.cfg' Name='windows.cfg' Source='$(var.CfgsDir)\windows.cfg' />
<File Id='wxwidgets.cfg' Name='wxwidgets.cfg' Source='$(var.CfgsDir)\wxwidgets.cfg' />
</Component>
</Directory>
<Directory Id='PtfsFolder' Name='platforms'>
<Component Id='OptionalPtfs' Guid='$(var.optionalPtfsGUID)'>
<File Id='unix32unsigned.xml' Name='unix32-unsigned.xml' Source='$(var.PtfsDir)\unix32-unsigned.xml' />
<File Id='unix64unsigned.xml' Name='unix64-unsigned.xml' Source='$(var.PtfsDir)\unix64-unsigned.xml' />
</Component>
</Directory>
<Directory Id='AddonsFolder' Name='addons'>
<Component Id='Addons' Guid='$(var.addonsGUID)'>
<File Id='cppcheckdata.py' Name='cppcheckdata.py' Source='$(var.AddonsDir)\cppcheckdata.py' />
<File Id='cert.py' Name='cert.py' Source='$(var.AddonsDir)\cert.py' />
<File Id='findcasts.py' Name='findcasts.py' Source='$(var.AddonsDir)\findcasts.py' />
<File Id='misra.py' Name='misra.py' Source='$(var.AddonsDir)\misra.py' />
<File Id='naming.py' Name='naming.py' Source='$(var.AddonsDir)\naming.py' />
<File Id='threadsafety.py' Name='threadsafety.py' Source='$(var.AddonsDir)\threadsafety.py' />
<File Id='y2038.py' Name='y2038.py' Source='$(var.AddonsDir)\y2038\y2038.py' />
</Component>
</Directory>
<Component Id='BaseDocs' Guid='$(var.basedocsGUID)'>
<File Id='authors.txt' Name='authors.txt' DiskId='1' Source='..\authors' />
<File Id='readme.txt' Name='readme.txt' DiskId='1' Source='..\readme.txt' />
<File Id='GPLv3.txt' Name='GPLv3.txt' DiskId='1' Source='GPLv3.txt' />
</Component>
</Directory>
<Merge Id="CRT" Language="0" SourceFile="$(var.CrtMergeModule)" DiskId="1" />
</Directory>
<Directory Id='ProgramMenuFolder' Name='Programs' >
<Directory Id='ProgramMenuDir' Name='$(var.ProductName)'>
<Component Id='ProgramMenuDir' Guid='*'>
<RemoveFolder Id='ProgramMenuDir' On='uninstall' />
<RegistryValue Root='HKCU' Key='Software\Cppcheck\$(var.ProductName)' Type='string' Value='' KeyPath='yes' />
</Component>
</Directory>
</Directory>
</Directory>
<Property Id="INSTALLLEVEL" Value="1" />
<Feature Id='Complete' Title='$(var.ProductName)' Description='The complete package.'
Display='expand' Level='1' AllowAdvertise='no' ConfigurableDirectory='INSTALLDIR' >
<Feature Id='CppcheckCore' Display='hidden' AllowAdvertise='no' Title='Cppcheck-Core' Description='Cppcheck core components' Level='1'>
<ComponentRef Id='cppcheckcore.dll' />
<ComponentRef Id='RegistryEntries' />
<ComponentRef Id='BaseDocs' />
<ComponentRef Id='MandatoryCfgs' />
</Feature>
<Feature Id='CLI' Title='Command line interface' AllowAdvertise='no' Description='Cppcheck as a command line tool' Level='1'>
<ComponentRef Id='cppcheck.exe' />
</Feature>
<Feature Id='GUI' Title='Graphical interface' AllowAdvertise='no' Description='Cppcheck with a graphical user interface' Level='1'>
<ComponentRef Id='RegistryEntries' />
<ComponentRef Id='GuiExecutable' />
<ComponentRef Id='QtPlatforms' />
<Feature Id='Translations' Title='GUI Translations' AllowAdvertise='no' Description='Translations for graphical user interface' Level='1'>
<ComponentRef Id='GuiTranslations' />
</Feature>
<ComponentRef Id='ProgramMenuDir' />
</Feature>
<Feature Id='ConfigFiles' Title='Additional configurations' AllowAdvertise='no' Description='Provide additional configuration files, for example for WinAPI, GTK and SDL' Level='1'>
<ComponentRef Id='OptionalCfgs' />
</Feature>
<Feature Id='PlatformFiles' Title='Additional platforms' AllowAdvertise='no' Description='Provide additional platform files, for example unix platforms with unsigned types as default' Level='1'>
<ComponentRef Id='OptionalPtfs' />
</Feature>
<Feature Id='PythonAddons' Title='Python addons' AllowAdvertise='no' Description='Contains several addons requiring python' Level='2'>
<ComponentRef Id='Addons' />
</Feature>
<Feature Id="CRT" AllowAdvertise="no" Display="hidden" Level="1" Title="Microsoft Visual C++ 2015 Runtime Components">
<MergeRef Id="CRT"/>
</Feature>
</Feature>
<MajorUpgrade DowngradeErrorMessage='Downgrade is not allowed'/>
<!--Remove some pre 1.57 versions which can't be upgraded with MajorUpgrade-->
<InstallExecuteSequence>
<Custom Action='UninstallOld152' After='InstallFinalize'>NOT Installed</Custom>
<Custom Action='UninstallOld153' After='InstallFinalize'>NOT Installed</Custom>
<Custom Action='UninstallOld154' After='InstallFinalize'>NOT Installed</Custom>
<Custom Action='UninstallOld155' After='InstallFinalize'>NOT Installed</Custom>
<Custom Action='UninstallOld156' After='InstallFinalize'>NOT Installed</Custom>
</InstallExecuteSequence>
<CustomAction Id='UninstallOld152' Directory='System32' ExeCommand="msiexec.exe /X {836AF028-6EE2-457C-B242-19D61701BAA3} /qn" Execute="immediate" Return="asyncNoWait"/>
<CustomAction Id='UninstallOld153' Directory='System32' ExeCommand="msiexec.exe /X {42850B7E-CD5F-449A-B6DA-C423156D2ACF} /qn" Execute="immediate" Return="asyncNoWait"/>
<CustomAction Id='UninstallOld154' Directory='System32' ExeCommand="msiexec.exe /X {7722557B-4B10-4E8F-918A-78FBAEFB09B1} /qn" Execute="immediate" Return="asyncNoWait"/>
<CustomAction Id='UninstallOld155' Directory='System32' ExeCommand="msiexec.exe /X {211B2B89-3FE0-4F49-88CC-27E283BEC010} /qn" Execute="immediate" Return="asyncNoWait"/>
<CustomAction Id='UninstallOld156' Directory='System32' ExeCommand="msiexec.exe /X {1CC8C271-A877-4DF0-B1DE-C1B7D83521BC} /qn" Execute="immediate" Return="asyncNoWait"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
<UI>
<TextStyle Id="WixUI_Font_Normal" FaceName="Tahoma" Size="8" />
<TextStyle Id="WixUI_Font_Bigger" FaceName="Tahoma" Size="12" />
<TextStyle Id="WixUI_Font_Title" FaceName="Tahoma" Size="9" Bold="yes" />
<Property Id="DefaultUIFont" Value="WixUI_Font_Normal" />
<Property Id="WixUI_Mode" Value="FeatureTree" />
<DialogRef Id="ErrorDlg" />
<DialogRef Id="FatalError" />
<DialogRef Id="FilesInUse" />
<DialogRef Id="MsiRMFilesInUse" />
<DialogRef Id="PrepareDlg" />
<DialogRef Id="ProgressDlg" />
<DialogRef Id="ResumeDlg" />
<DialogRef Id="UserExit" />
<Publish Dialog="ExitDialog" Control="Finish" Event="EndDialog" Value="Return" Order="999">1</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="CustomizeDlg">NOT Installed</Publish>
<Publish Dialog="WelcomeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">Installed AND PATCH</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="1">Installed</Publish>
<Publish Dialog="CustomizeDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="2">NOT Installed</Publish>
<Publish Dialog="CustomizeDlg" Control="Next" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="CustomizeDlg" Order="1">NOT Installed OR WixUI_InstallMode = "Change"</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="MaintenanceTypeDlg" Order="2">Installed AND NOT PATCH</Publish>
<Publish Dialog="VerifyReadyDlg" Control="Back" Event="NewDialog" Value="WelcomeDlg" Order="3">Installed AND PATCH</Publish>
<Publish Dialog="MaintenanceWelcomeDlg" Control="Next" Event="NewDialog" Value="MaintenanceTypeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="ChangeButton" Event="NewDialog" Value="CustomizeDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RepairButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="RemoveButton" Event="NewDialog" Value="VerifyReadyDlg">1</Publish>
<Publish Dialog="MaintenanceTypeDlg" Control="Back" Event="NewDialog" Value="MaintenanceWelcomeDlg">1</Publish>
</UI>
<UIRef Id="WixUI_Common" />
<Icon Id='cppcheckgui.exe' SourceFile='$(var.GuiBuildDir)\cppcheck-gui.exe' />
<Property Id="ARPPRODUCTICON" Value="cppcheckgui.exe" />
<WixVariable Id="WixUIBannerBmp" Value="images\banner.jpg" />
<WixVariable Id="WixUIDialogBmp" Value="images\dialog.jpg" />
</Product>
</Wix>