Updated WiX installer:
- Use FeatureTree GUI - users can select which parts should be installed. - Configured for MSVC10 builds - Use WiX 3.6
This commit is contained in:
parent
01f929a7e2
commit
fbb63dfcb4
|
@ -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'>
|
||||
<ComponentRef Id='cppcheck.exe' />
|
||||
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='GuiExecutable' />
|
||||
<ComponentRef Id='GuiTranslations' />
|
||||
<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='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' />
|
||||
<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' />
|
||||
</Feature>
|
||||
<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):
|
||||
|
|
Loading…
Reference in New Issue