Permalink
Browse files

Updated WiX installer:

- Use FeatureTree GUI - users can select which parts should be installed.
- Configured for MSVC10 builds
- Use WiX 3.6
  • Loading branch information...
1 parent 01f929a commit fbb63dfcb49fc0166d3fec14bcbea37b4e1356ba @PKEuS PKEuS committed Nov 3, 2012
Showing with 74 additions and 39 deletions.
  1. +4 −4 win_installer/config.wxi
  2. +22 −15 win_installer/cppcheck.wixproj
  3. +41 −14 win_installer/cppcheck.wxs
  4. +2 −2 win_installer/productInfo.wxi
  5. +5 −4 win_installer/readme.txt
@@ -4,10 +4,10 @@
<?define Platform = "x86" ?>
<?endif ?>
- <?define CliBuildDir = "..\cli\release" ?>
- <?define GuiBuildDir = "..\Build\gui" ?>
+ <?define CliBuildDir = "..\bin" ?>
+ <?define GuiBuildDir = "..\bin" ?>
<?define TranslationsDir = "..\gui" ?>
<?define HelpDir = "..\gui\help" ?>
- <?define QtDllDir = "..\..\runtimes" ?>
- <?define CrtMergeModule = "$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC90_CRT_x86.msm" ?>
+ <?define QtDllDir = "..\bin" ?>
+ <?define CrtMergeModule = "$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC100_CRT_x86.msm" ?>
</Include>
@@ -1,33 +1,40 @@
-<Project DefaultTargets="All" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="All" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<DefineSolutionProperties>false</DefineSolutionProperties>
-
- <WixToolPath Condition="'$(WixToolPath)' == ''">$(PROGRAMFILES)\Windows Installer XML v3.5\bin\</WixToolPath>
+ <WixToolPath Condition="'$(WixToolPath)' == ''">$(PROGRAMFILES)\WiX Toolset v3.6\bin\</WixToolPath>
<WixTargetsPath Condition="'$(WixTargetsPath)' == ''">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<Configuration Condition=" '$(Configuration)' == '' ">Release</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
- <OutputName Condition=" '$(ProductVersion)' != '' ">cppcheck-$(ProductVersion)-$(Platform)-Setup</OutputName>
- <OutputPath>..\Build\</OutputPath>
- <IntermediateOutputPath>..\BuildTmp\Wix\$(Platform)\</IntermediateOutputPath>
+ <OutputName>cppcheck-$(ProductVersion)-$(Platform)-Setup</OutputName>
+ <OutputPath>Build\</OutputPath>
+ <IntermediateOutputPath>BuildTmp\Wix\$(Platform)\</IntermediateOutputPath>
<OutputType>package</OutputType>
+
+ <ProjectGuid>{3b772885-4980-4a76-8407-4dabf8f7757c}</ProjectGuid>
</PropertyGroup>
<ItemGroup>
- <WixExtension Include="$(WixToolPath)WixUIExtension.dll" />
- <Compile Include="cppcheck.wxs"/>
+ <WixExtension Include="WixUIExtension">
+ <HintPath>C:\Programme\WiX Toolset v3.6\bin\WixUIExtension.dll</HintPath>
+ <Name>WixUIExtension</Name>
+ </WixExtension>
+ <Compile Include="cppcheck.wxs" />
</ItemGroup>
-
- <Import Project="$(WixTargetsPath)"/>
-
- <Target Name="All" DependsOnTargets="Clean;Validate;Build"/>
-
+ <ItemGroup>
+ <Content Include="config.wxi" />
+ <Content Include="productInfo.wxi" />
+ <Content Include="readme.txt" />
+ </ItemGroup>
+ <Import Project="$(WixTargetsPath)" />
+ <Target Name="All" DependsOnTargets="Clean;Validate;Build" />
<Target Name="Clean">
- <RemoveDir Directories="..\buildtmp\wix" />
+ <RemoveDir Directories="BuildTmp\Wix" />
</Target>
<Target Name="Validate">
- <Exec Command="..\cli\release\cppcheck --rule=. --version"/>
+ <Exec Command="..\bin\cppcheck --rule=. --version" />
</Target>
</Project>
@@ -2,19 +2,24 @@
<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='300' Languages='1033' Compressed='yes' SummaryCodepage='1252'/>
+ InstallerVersion='300' 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='SystemFolder' FileSource='SystemFolder' />
<Directory Id='ProgramFilesFolder' 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>
@@ -29,18 +34,15 @@
<Shortcut Id='startmenuGui' Directory="ProgramMenuDir" Name='$(var.ProductNameShort)'
WorkingDirectory='INSTALLDIR' Icon="cppcheckgui.exe" IconIndex="0" Advertise="yes" />
</File>
- <File Id='libgcc_s_dw2_1_dll' Name='libgcc_s_dw2-1.dll' Source='libgcc_s_dw2-1.dll' />
- <File Id='mingwm10dll' Name='mingwm10.dll' Source='mingwm10.dll' />
- <File Id='libpcre0dll' Name='libpcre-0.dll' Source='libpcre-0.dll' />
<File Id='qtcore4dll' Name='qtcore4.dll' Source='$(var.QtDllDir)\qtcore4.dll' />
<File Id='qtgui4dll' Name='qtgui4.dll' Source='$(var.QtDllDir)\qtgui4.dll' />
- <File Id='qtxml4dll' Name='qtxml4.dll' Source='$(var.QtDllDir)\qtxml4.dll' />
</Component>
<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' />
@@ -64,17 +66,22 @@
<RemoveFile Id="msvcp90.dll" On="install" Name="msvcp90.dll" />
<RemoveFile Id="msvcr90.dll" On="install" Name="msvcr90.dll" />
<RemoveFile Id="Microsoft.VC90.CRT.manifest" On="install" Name="Microsoft.VC90.CRT.manifest" />
+ <RemoveFile Id='libgcc_s_dw2_1_dll' On='install' Name='libgcc_s_dw2-1.dll' />
+ <RemoveFile Id='mingwm10dll' On='install' Name='mingwm10.dll' />
+ <RemoveFile Id='libpcre0dll' On='install' Name='libpcre-0.dll' />
<RemoveFile Id="gui.exe" On="install" Name="gui.exe" />
<RemoveFile Id="cppcheck_se.qm" On="install" Name="cppcheck_se.qm" />
<RemoveFile Id="cppcheck_en.qm" On="install" Name="cppcheck_en.qm" />
+ <RemoveFile Id="cppcheck_pl.qm" On="install" Name="cppcheck_pl.qm" />
<RemoveFile Id="onlinehelp.qhc" On="install" Name="onlinehelp.qhc" />
<RemoveFile Id="qtclucene4dll" On="install" Name="qtclucene4.dll" />
<RemoveFile Id="qthelp4dll" On="install" Name="qthelp4.dll" />
<RemoveFile Id="qtnetwork4dll" On="install" Name="qtnetwork4.dll" />
<RemoveFile Id="qtsql4dll" On="install" Name="qtsql4.dll" />
+ <RemoveFile Id='qtxml4dll' On='install' Name='qtxml4.dll' />
</Component>
</Directory>
- <!-- <Merge Id="CRT" Language="0" SourceFile="$(var.CrtMergeModule)" DiskId="1" /> -->
+ <Merge Id="CRT" Language="0" SourceFile="$(var.CrtMergeModule)" DiskId="1" />
</Directory>
<Directory Id='ProgramMenuFolder' Name='Programs' >
@@ -88,27 +95,47 @@
</Directory>
<Feature Id='Complete' Title='$(var.ProductName)' Description='The complete package.'
- Display='expand' Level='1' ConfigurableDirectory='INSTALLDIR' >
- <Feature Id='MainProgram' Title='Command line interface' Description='Command line tool' Level='1'>
+ 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='InnoSetupCleanup' />
+ </Feature>
+ <Feature Id='CLI' Title='Command line interface' AllowAdvertise='no' Description='Command line tool' Level='1'>
<ComponentRef Id='cppcheck.exe' />
+ </Feature>
+ <Feature Id='GUI' Title='Graphical interface' AllowAdvertise='no' Description='GUI for cppcheck' Level='1'>
<ComponentRef Id='RegistryEntries' />
<ComponentRef Id='GuiExecutable' />
- <ComponentRef Id='GuiTranslations' />
+ <Feature Id='Translations' Title='GUI Translations' AllowAdvertise='no' Description='Translations for cppcheck GUI' Level='1'>
+ <ComponentRef Id='GuiTranslations' />
+ </Feature>
<ComponentRef Id='BaseDocs' />
<ComponentRef Id='ProgramMenuDir' />
- <ComponentRef Id='InnoSetupCleanup' />
</Feature>
- <!--
- <Feature Id="CRT" AllowAdvertise="no" Display="hidden" Level="1" Title="Microsoft Visual C++ 2008 Runtime Components ">
+ <Feature Id="CRT" AllowAdvertise="no" Display="hidden" Level="1" Title="Microsoft Visual C++ 2010 Runtime Components ">
<MergeRef Id="CRT"/>
</Feature>
- -->
</Feature>
<MajorUpgrade DowngradeErrorMessage='Downgrade is not allowed'/>
+ <!--Remove 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='SystemFolder' ExeCommand="msiexec.exe /X {836AF028-6EE2-457C-B242-19D61701BAA3} /qn" Execute="immediate" Return="asyncNoWait"/>
+ <CustomAction Id='UninstallOld153' Directory='SystemFolder' ExeCommand="msiexec.exe /X {42850B7E-CD5F-449A-B6DA-C423156D2ACF} /qn" Execute="immediate" Return="asyncNoWait"/>
+ <CustomAction Id='UninstallOld154' Directory='SystemFolder' ExeCommand="msiexec.exe /X {7722557B-4B10-4E8F-918A-78FBAEFB09B1} /qn" Execute="immediate" Return="asyncNoWait"/>
+ <CustomAction Id='UninstallOld155' Directory='SystemFolder' ExeCommand="msiexec.exe /X {211B2B89-3FE0-4F49-88CC-27E283BEC010} /qn" Execute="immediate" Return="asyncNoWait"/>
+ <CustomAction Id='UninstallOld156' Directory='SystemFolder' ExeCommand="msiexec.exe /X {1CC8C271-A877-4DF0-B1DE-C1B7D83521BC} /qn" Execute="immediate" Return="asyncNoWait"/>
<Property Id="WIXUI_INSTALLDIR" Value="INSTALLDIR" />
- <UIRef Id="WixUI_InstallDir"/>
+ <UIRef Id="WixUI_FeatureTree"/>
<Icon Id='cppcheckgui.exe' SourceFile='$(var.GuiBuildDir)\cppcheck-gui.exe' />
@@ -2,14 +2,14 @@
<Include>
<?define ProductName = "Cppcheck 1.57.dev" ?>
<?define ProductNameShort = "Cppcheck" ?>
- <?define ProductVersion = "1.57.dev" ?>
+ <?define ProductVersion = "1.56.99" ?>
<?define ProductManufacturer = "The Cppcheck team" ?>
<?define ProductDescription = "Cppcheck is a tool for static analysis of C/C++ code" ?>
- <?define ProductGUID = "7214EC4C-8F10-4E56-8E99-0B9908E68774" ?>
<?define ProductUpgradeCode = "7E94124C-1CD1-433F-9423-4614E52300DD" ?>
<?define cppcheckGUID = "1c31dd76-07fa-4420-b9b5-5463742d6a48" ?>
+ <?define cppcheckcoreGUID = "1c31dd76-07fa-4420-b9b5-5463742d6a49" ?>
<?define guiGUID = "D7D3FF8E-1D82-4215-B59B-4715A748C540" ?>
<?define guiTranslationsGUID = "24738151-890D-4fcc-824C-DA7FF63E0D7F" ?>
<?define basedocsGUID = "9F62B23C-CD2B-4826-A567-6AB6F75A2AEA" ?>
@@ -6,8 +6,8 @@ http://wix.sourceforge.net/
You'll need:
- latest Wix (3.6)
- - MSBuild (coming with Visual Studio, also with VS 2008 express)
- - VS 2008 CRT merge module
+ - MSBuild (coming with Visual Studio (also with Express edition))
+ - VS 2010 CRT merge module
Configuring
-----------
@@ -24,14 +24,15 @@ Building installer
------------------
Before building the installer make sure all the components are build:
+ - LIB dynamic link library (cppcheck-core.dll)
- CLI executable (cppcheck.exe)
- GUI executable (cppcheck-gui.exe)
- GUI translations (*.qm) - generated by the Qt's lrelease -tool
And that runtime files are available:
- Qt runtimes:
- QtCore4.dll, QtGui4.dll and QtXml4.dll
- - MS CRT merge module (Microsoft_VC90_CRT_x86.msm)
+ QtCore4.dll and QtGui4.dll
+ - MS CRT merge module (Microsoft_VC100_CRT_x86.msm)
Build installer by giving this command line in VS command prompt (or run
vcvars32.bat in DOS prompt first to setup environment):

0 comments on commit fbb63df

Please sign in to comment.