FS-4768 add wix 3.7 support this is a work in progress

This commit is contained in:
Jeff Lenk 2013-01-04 12:18:56 -06:00
parent 9bd9e7cfa6
commit cca667ade4
3 changed files with 209 additions and 0 deletions

View File

@ -0,0 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Platform specific variables -->
<?if $(var.Platform) = x64 ?>
<?define Win64 = "yes" ?>
<?define ProductName = "FreeSWITCH (64 bit)" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define Win64 = "no" ?>
<?define ProductName = "FreeSWITCH" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="b004a325-1272-47e5-a415-a74e9fc99865" Name="$(var.ProductName)" Language="1033" Version="1.0.0.0" Manufacturer="FreeSWITCH" UpgradeCode="3af7020b-1348-45e8-a0cf-80909d4eb421">
<Package InstallerVersion="405" Compressed="yes" />
<Media Id="1" Cabinet="media1.cab" EmbedCab="yes" />
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLLOCATION" Name="FreeSWITCH">
<Directory Id="MODLOCATION" Name="mod">
</Directory>
<Directory Id="CONFLOCATION" Name="conf">
</Directory>
<Directory Id="SOUNDLOCATION" Name="sounds">
</Directory>
<!-- TODO: Remove the comments around this Component element and the ComponentRef below in order to add resources to this installer. -->
<!-- <Component Id="ProductComponent" Guid="6f1498a7-d029-430b-b9d9-fe12e17bdbab"> -->
<!-- TODO: Insert files, registry keys, and other resources here. -->
<!-- </Component> -->
<?if $(var.Platform) != x64 ?>
<Merge Id="CrtFiles_x86"
SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC110_CRT_x86.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
<?if $(var.Platform) = x64 ?>
<Merge Id="CrtFiles_x64"
SourceFile="$(env.CommonProgramFiles)\Merge Modules\Microsoft_VC110_CRT_x64.msm"
DiskId="1"
Language="1033"/>
<?endif ?>
</Directory>
</Directory>
<Directory Id="ProgramMenuFolder">
<Directory Id="ApplicationProgramsFolder" Name="FreeSWITCH"/>
</Directory>
</Directory>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="B554D1D1-C8C6-4d46-A3E7-4BA836EF929B">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="FreeSWITCH"
Description="FreeSWITCH Telephony SoftSwitch"
Target="[INSTALLLOCATION]FreeSwitchConsole.exe"
WorkingDirectory="INSTALLLOCATION"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\FreeSWITCH\FreeSWITCH" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
<Component Id="FSCliShortcut" Guid="D209546C-C728-4d8f-BDB2-29AED8824282">
<Shortcut Id="FSCliStartMenuShortcut"
Name="FS_Cli"
Description="FreeSWITCH Command Line Interface"
Target="[INSTALLLOCATION]fs_cli.exe"
WorkingDirectory="INSTALLLOCATION"/>
<RegistryValue Root="HKCU" Key="Software\FreeSWITCH\FS_CLI" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
<Feature Id="ProductFeature" Title="FreeSWITCH Core" Level="1">
<!-- TODO: Remove the comments around this ComponentRef element and the Component above in order to add resources to this installer. -->
<!-- <ComponentRef Id="ProductComponent" /> -->
<!-- The following Ref pulls in FreeSWITCHconsole.wxs items -->
<ComponentRef Id="cmpBEF12B96A80D45AC32F3B692E94A57C9"/>
<!-- Note: The following ComponentGroupRef is required to pull in generated authoring from project references. -->
<ComponentGroupRef Id="FreeSWITCHBaseFiles" />
<?if $(var.Platform) != x64 ?>
<MergeRef Id="CrtFiles_x86"/>
<?endif ?>
<?if $(var.Platform) = x64 ?>
<MergeRef Id="CrtFiles_x64"/>
<?endif ?>
</Feature>
<Feature Id="ProductFeatureFreeSWITCH" Title="FreeSWITCH" Level="1">
<ComponentRef Id="ApplicationShortcut" />
</Feature>
<Feature Id="ProductFeatureFSCli" Title="FreeSWITCH Command Line Interface" Level="1">
<ComponentRef Id="FSCliShortcut" />
</Feature>
<Feature Id="ProductFeatureConf" Title="FreeSWITCH Configuration Sample" Level="1">
<ComponentGroupRef Id="FreeSWITCHConfFiles" />
</Feature>
<Feature Id="ProductFeatureSounds" Title="FreeSWITCH Sounds 8Khz" Level="1">
<ComponentGroupRef Id="FreeSWITCHSoundFiles8" />
</Feature>
<UIRef Id="WixUI_Mondo" />
</Product>
</Wix>

View File

@ -0,0 +1,76 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ProductVersion>3.5</ProductVersion>
<ProjectGuid>{47213370-b933-487d-9f45-bca26d7e2b6f}</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>FreeSWITCH</OutputName>
<OutputType>Package</OutputType>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' AND '$(MSBuildExtensionsPath32)' != '' ">$(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
<WixTargetsPath Condition=" '$(WixTargetsPath)' == '' ">$(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets</WixTargetsPath>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x86' ">
<OutputPath>bin\x86\Debug\</OutputPath>
<IntermediateOutputPath>obj\X86\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\debug\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\x86\release\</OutputPath>
<IntermediateOutputPath>obj\X86\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\Win32\release\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<OutputPath>bin\x64\Debug\</OutputPath>
<IntermediateOutputPath>obj\X64\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\debug\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
<WixVariables>
</WixVariables>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\x64\Release\</OutputPath>
<IntermediateOutputPath>obj\X64\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug;FreeSWITCHConfFilesDir=$(ProjectDir)..\..\conf\vanilla;FreeSWITCHSoundFilesDir=$(ProjectDir)..\..\x64\release\sounds;FreeSWITCHBaseDir=$(SolutionDir)$(Platform)\$(Configuration);</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Compile Include="Fragments\FreeSWITCHConfFiles.wxs" />
<Compile Include="Fragments\FreeSWITCHSoundFiles8.wxs" />
<Compile Include="Fragments\FreeSWITCHBaseFiles.wxs" />
<Compile Include="FreeSWITCHConsole.wxs" />
<Compile Include="Product.2012.wxs" />
</ItemGroup>
<ItemGroup>
<WixExtension Include="WixUIExtension">
<HintPath>$(WixExtDir)\WixUIExtension.dll</HintPath>
<Name>WixUIExtension</Name>
</WixExtension>
</ItemGroup>
<ItemGroup>
<Folder Include="Fragments" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Console\FreeSwitchConsole.2012.vcxproj">
<Name>FreeSwitchConsole</Name>
<Project>{1af3a893-f7be-43dd-b697-8ab2397c0d67}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<PropertyGroup>
<PreBuildEvent>"$(WixToolPath)\heat.exe" dir "$(ProjectDir)..\..\conf\vanilla" -cg FreeSWITCHConfFiles -gg -scom -sreg -sfrag -srd -dr CONFLOCATION -var var.FreeSWITCHConfFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHConfFiles.wxs"
"$(WixToolPath)\heat.exe" dir "$(SolutionDir)$(Platform)\$(Configuration)\sounds" -cg FreeSWITCHSoundFiles8 -gg -scom -sreg -sfrag -srd -dr SOUNDLOCATION -var var.FreeSWITCHSoundFilesDir -out "$(ProjectDir)Fragments\FreeSWITCHSoundFiles8.wxs"
"$(WixToolPath)\heat.exe" dir "$(SolutionDir)$(Platform)\$(Configuration)" -t $(ProjectDir)filter.xslt -cg FreeSWITCHBaseFiles -gg -scom -sreg -sfrag -srd -dr INSTALLLOCATION -var var.FreeSWITCHBaseDir -out "$(ProjectDir)Fragments\FreeSWITCHBaseFiles.wxs"</PreBuildEvent>
</PropertyGroup>
<!--
To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Wix.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

35
w32/Setup/filter.xslt Normal file
View File

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns="http://schemas.microsoft.com/wix/2006/wi"
xmlns:wix="http://schemas.microsoft.com/wix/2006/wi">
<!-- <xsl:key name="unusedcomponent-search" match="wix:Component[not (contains(wix:File/@Source, '.dll')) or contains(wix:File/@Source, 'mod')]" use="@Id"/> -->
<xsl:key name="unusedcomponent-search" match="wix:Component[not (contains(wix:File/@Source, '.dll'))]" use="@Id"/>
<!-- strip all extraneous whitespace -->
<xsl:strip-space elements="*"/>
<!-- Copy all attributes and elements to the output. -->
<xsl:template match="@*|*">
<xsl:copy>
<xsl:apply-templates select="@*" />
<xsl:apply-templates select="*" />
</xsl:copy>
</xsl:template>
<!-- Exclude all File elements that are not a .dll file -->
<xsl:template match="wix:Component[not(contains(wix:File/@Source,
'.dll'))]" />
<!-- Exclude Directory elements -->
<!--<xsl:template match="wix:Directory[not(contains(*/@Source, '.pdb'))]"/>-->
<xsl:template match="wix:Directory[@Name='conf']"/>
<xsl:template match="wix:Directory[@Name='sounds']"/>
<xsl:template match="wix:Directory[@Name='grammar']"/>
<!-- Remove ComponentRefs. -->
<xsl:template match="wix:ComponentRef[key('unusedcomponent-search', @Id)]"/>
</xsl:stylesheet>