Browse Source

Initial WiX based installer for Windows to install libespeak-ng.dll and espeak-ng.exe.

master
Reece H. Dunn 9 years ago
parent
commit
f850179478
5 changed files with 136 additions and 3 deletions
  1. 6
    0
      .gitignore
  2. 5
    3
      README.md
  3. 9
    0
      src/windows/espeak-ng.sln
  4. 46
    0
      src/windows/installer/Product.wxs
  5. 70
    0
      src/windows/installer/installer.wixproj

+ 6
- 0
.gitignore View File

@@ -62,6 +62,7 @@ espeak-ng.pc
*.lib
*.dll
*.exe
*.msi

*.exp
*.idb
@@ -78,6 +79,11 @@ espeak-ng.pc
*.cache
*.user

*.txt
*.wixobj
*.wixpdb
*.cab

# Linux/Source distribution files

praat-mod/

+ 5
- 3
README.md View File

@@ -165,9 +165,11 @@ dictionary size.
__NOTE:__ This is currently experimental. It does not build the voice data, and
may contain runtime errors and missing functionality.

To build eSpeak NG on Windows, you will need a copy of Visual Studio, such as
the Microsoft Visual Studio Community 2015 edition. Additionally, you will need
the Windows 8.1 SDK.
To build eSpeak NG on Windows, you will need:

1. a copy of Visual Studio 2015, such as the Community Edition;
2. the Windows 8.1 SDK;
3. the [WiX installer](http://wixtoolset.org) plugin.

You can then open and build the `src/windows/espeak-ng.sln` solution in Visual
Studio.

+ 9
- 0
src/windows/espeak-ng.sln View File

@@ -12,6 +12,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "data", "data.vcxproj", "{8C
{A745D521-5B19-49DB-89D3-D0A3BE64D97B} = {A745D521-5B19-49DB-89D3-D0A3BE64D97B}
EndProjectSection
EndProject
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "installer", "installer\installer.wixproj", "{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|x64 = Debug|x64
@@ -44,6 +46,13 @@ Global
{8C406BE8-2F85-426B-8009-A2DD540DF7CD}.Release|x64.Build.0 = Release|x64
{8C406BE8-2F85-426B-8009-A2DD540DF7CD}.Release|x86.ActiveCfg = Release|Win32
{8C406BE8-2F85-426B-8009-A2DD540DF7CD}.Release|x86.Build.0 = Release|Win32
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Debug|x64.ActiveCfg = Debug|x64
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Debug|x64.Build.0 = Debug|x64
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Debug|x86.ActiveCfg = Debug|x86
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Debug|x86.Build.0 = Debug|x86
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Release|x64.ActiveCfg = Release|x86
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Release|x86.ActiveCfg = Release|x86
{B67CE3B2-D1D7-45B9-98DA-164E3837D7BC}.Release|x86.Build.0 = Release|x86
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

+ 46
- 0
src/windows/installer/Product.wxs View File

@@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<?define ProductName = "eSpeak NG Text-to-Speech" ?>
<?if $(var.Platform) = x64 ?>
<?define ProductDisplayName = "$(var.ProductName) 64-bit" ?>
<?define ProductId = "3DA6DF03-E5CD-4A93-B06F-707484742BAB" ?>
<?define ProductUpgradeCode = "B4F779EB-AC6C-49D2-A12D-4871E4520C0F" ?>
<?define Win64 = "yes" ?>
<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?else ?>
<?define ProductDisplayName = "$(var.ProductName)" ?>
<?define ProductId = "4B445D11-6C40-474A-AF7C-CBF5CC8D8F62" ?>
<?define ProductUpgradeCode = "53330FEC-30DA-438A-B4B7-E43EAA62F43F" ?>
<?define Win64 = "no" ?>
<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?endif ?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
<Product Id="$(var.ProductId)" Name="$(var.ProductDisplayName)" Language="1033" Version="1.48.15.0" Manufacturer="Cainteoir Technologies" UpgradeCode="$(var.ProductUpgradeCode)">
<Package InstallerVersion="200" Compressed="yes" InstallScope="perMachine" Platform="$(var.Platform)" />

<MajorUpgrade DowngradeErrorMessage="A newer version of [ProductName] is already installed." />
<MediaTemplate />

<Feature Id="Core" Title="eSpeak NG" Level="1">
<ComponentGroupRef Id="CoreComponents" />
</Feature>
</Product>

<Fragment>
<Directory Id="TARGETDIR" Name="SourceDir">
<Directory Id="$(var.PlatformProgramFilesFolder)">
<Directory Id="INSTALLFOLDER" Name="eSpeak NG" />
</Directory>
</Directory>
</Fragment>

<Fragment>
<ComponentGroup Id="CoreComponents" Directory="INSTALLFOLDER">
<Component Id="espeak_ng" Win64="$(var.Win64)">
<File Id="espeak_ng_exe" Name="$(var.espeak-ng.TargetFileName)" Source="$(var.espeak-ng.TargetPath)" KeyPath="yes"/>
</Component>
<Component Id="libespeak_ng" Win64="$(var.Win64)">
<File Id="libespeak_ng_dll" Name="$(var.libespeak-ng.TargetFileName)" Source="$(var.libespeak-ng.TargetPath)" KeyPath="yes"/>
</Component>
</ComponentGroup>
</Fragment>
</Wix>

+ 70
- 0
src/windows/installer/installer.wixproj View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">x86</Platform>
<ProductVersion>3.10</ProductVersion>
<ProjectGuid>b67ce3b2-d1d7-45b9-98da-164e3837d7bc</ProjectGuid>
<SchemaVersion>2.0</SchemaVersion>
<OutputName>espeak-ng</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\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<DefineConstants>Debug</DefineConstants>
<SuppressAllWarnings>False</SuppressAllWarnings>
<Pedantic>True</Pedantic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x86' ">
<OutputPath>bin\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Configuration)\</IntermediateOutputPath>
<SuppressAllWarnings>False</SuppressAllWarnings>
<Pedantic>True</Pedantic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|x64' ">
<DefineConstants>Debug</DefineConstants>
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
<SuppressAllWarnings>False</SuppressAllWarnings>
<Pedantic>True</Pedantic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|x64' ">
<OutputPath>bin\$(Platform)\$(Configuration)\</OutputPath>
<IntermediateOutputPath>obj\$(Platform)\$(Configuration)\</IntermediateOutputPath>
<SuppressAllWarnings>False</SuppressAllWarnings>
<Pedantic>True</Pedantic>
</PropertyGroup>
<ItemGroup>
<Compile Include="Product.wxs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\espeak-ng.vcxproj">
<Name>espeak-ng</Name>
<Project>{a745d521-5b19-49db-89d3-d0a3be64d97b}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
<ProjectReference Include="..\libespeak-ng.vcxproj">
<Name>libespeak-ng</Name>
<Project>{a47a0cfd-fe52-40b4-8cec-ee1bd4282cdd}</Project>
<Private>True</Private>
<DoNotHarvest>True</DoNotHarvest>
<RefProjectOutputGroups>Binaries;Content;Satellites</RefProjectOutputGroups>
<RefTargetDir>INSTALLFOLDER</RefTargetDir>
</ProjectReference>
</ItemGroup>
<Import Project="$(WixTargetsPath)" />
<!--
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>

Loading…
Cancel
Save