Add a msbuild project to build the portable installers

This commit is contained in:
Thomas Goyne 2012-11-22 10:24:59 -08:00
parent 6ed970ed5b
commit 28b056e422
4 changed files with 379 additions and 1 deletions

View File

@ -1,4 +1,3 @@

Microsoft Visual Studio Solution File, Format Version 12.00 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012 # Visual Studio 2012
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aegisub", "aegisub\build\Aegisub\Aegisub.vcxproj", "{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Aegisub", "aegisub\build\Aegisub\Aegisub.vcxproj", "{9DDDB9E5-E4A1-423D-A224-F6D4E5AAC06A}"
@ -67,6 +66,8 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "wxWidgets", "aegisub\build\
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass", "aegisub\build\libass\libass.vcxproj", "{8804F253-DA67-4CC4-926B-0CD2AEE5778D}" Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libass", "aegisub\build\libass\libass.vcxproj", "{8804F253-DA67-4CC4-926B-0CD2AEE5778D}"
EndProject EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "PortableInstaller", "aegisub\build\PortableInstaller\PortableInstaller.vcxproj", "{5B0E9978-E76F-4BBC-8194-228323F59B53}"
EndProject
Global Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32 Debug|Win32 = Debug|Win32
@ -231,6 +232,10 @@ Global
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.Build.0 = Release|Win32 {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|Win32.Build.0 = Release|Win32
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.ActiveCfg = Release|x64 {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.ActiveCfg = Release|x64
{8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.Build.0 = Release|x64 {8804F253-DA67-4CC4-926B-0CD2AEE5778D}.Release|x64.Build.0 = Release|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|Win32.ActiveCfg = Debug|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Debug|x64.ActiveCfg = Debug|x64
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|Win32.ActiveCfg = Release|Win32
{5B0E9978-E76F-4BBC-8194-228323F59B53}.Release|x64.ActiveCfg = Release|x64
EndGlobalSection EndGlobalSection
GlobalSection(SolutionProperties) = preSolution GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE HideSolutionNode = FALSE

View File

@ -148,6 +148,14 @@
Description="Root directory of a copy of msys with git installed. Only required if it is not on your PATH." Description="Root directory of a copy of msys with git installed. Only required if it is not on your PATH."
/> />
<StringProperty
Subtype="folder"
Name="WinRarPath"
Category="Paths"
DisplayName="WinRAR.exe location"
Description="Location of a copy of WinRAR.exe. Required to build the portable installer."
/>
<StringProperty <StringProperty
Subtype="folder" Subtype="folder"
Name="BoostPath" Name="BoostPath"

View File

@ -0,0 +1,193 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|Win32">
<Configuration>Debug</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|Win32">
<Configuration>Release</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{5B0E9978-E76F-4BBC-8194-228323F59B53}</ProjectGuid>
<RootNamespace>PortableInstaller</RootNamespace>
</PropertyGroup>
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
<Import Project="$(MSBuildThisFileDirectory)..\git_version.xml" />
</ImportGroup>
<PropertyGroup>
<PlatformName Condition="$(Platform) == 'Win32'">x86</PlatformName>
<PlatformName Condition="$(Platform) == 'x64'">x64</PlatformName>
<FileName>aegisub-$(GitVersionString)-portable-$(AegisubPlatformSuffix)</FileName>
<OutputFile>$(AegisubSourceBase)packages\win_installer\output\$(FileName).exe</OutputFile>
</PropertyGroup>
<Target Name="Build">
<Error
Condition="!Exists($(WinRarPath))"
Text="WinRAR.exe not found. Please set the path to it."
/>
<MakeDir Directories="$(AegisubObjectDir)\$(FileName)" />
<Copy
SourceFiles="@(RarContents)"
DestinationFiles="$(AegisubObjectDir)$(FileName)\%(RarContents.OutputPath)%(Filename)%(Extension)"
SkipUnchangedFiles="true"
/>
<Copy
SourceFiles="@(RarMetafiles)"
DestinationFolder="$(AegisubObjectDir)"
SkipUnchangedFiles="true"
/>
<Delete Files="$(OutputFile)" />
<Exec
Command="&quot;$(WinRarPath)&quot; a -sfx -s -m5 -ep1 -r -zportable-comment.txt -iimgside-logo.bmp -iiconicon.ico $(OutputFile) $(FileName)"
WorkingDirectory="$(AegisubObjectDir)"
/>
</Target>
<ItemGroup>
<RarContents Include="$(AegisubSourceBase)automation\autoload\clean-info.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\cleantags-autoload.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\kara-templater.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\karaoke-auto-leadin.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-1-edgeblur.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\macro-2-mkfullwitdh.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\select-overlaps.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\autoload\strip-tags.lua">
<OutputPath>automation\autoload\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\future-windy-blur.lua">
<OutputPath>automation\demos\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\demos\raytracer.lua">
<OutputPath>automation\demos\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\cleantags.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\clipboard.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel-auto4.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\karaskel.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\re.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\unicode.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils-auto4.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\include\utils.lua">
<OutputPath>automation\include\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\appended-lines.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\basic-export-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\basic-tests.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\config-dialog-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\gen-absurd-t-line.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\hello-world.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\karaoke-parse-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\progress-reporting-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\selection-set-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\test-filter-name-clash.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\test-furi.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\test-tablecopy-recursive.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\test-text_extents.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\text-extents-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\trace-level-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)automation\tests\unicode-test.lua">
<OutputPath>automation\tests\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.chm" />
<RarContents Include="$(AegisubSourceBase)bin\AssDraw3.exe" />
<RarContents Include="$(AegisubSourceBase)bin\DirectShowSource.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)bin\aegisub$(AegisubPlatformSuffix).exe" />
<RarContents Include="$(AegisubSourceBase)bin\avisynth.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)bin\csri\vsfilter-aegisub$(PlatformArchitecture).dll" Condition="'$(AegisubUseCsri)' == 'HelperLibrary'">
<OutputPath>csri\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\csri\xy-vsfilter-aegisub$(PlatformArchitecture).dll" Condition="'$(AegisubUseCsri)' == 'HelperLibrary'">
<OutputPath>csri\</OutputPath>
</RarContents>
<RarContents Include="$(AegisubSourceBase)bin\devil.dll" Condition="'$(AegisubUseAvisynth)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)bin\ffms2_$(AegisubPlatformSuffix).dll" Condition="'$(AegisubUseFfms)' == 'true'" />
<RarContents Include="$(AegisubSourceBase)packages\win_installer\portable\config.json" />
<RarContents Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.CRT\msvcp110.dll" />
<RarContents Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.CRT\msvcr110.dll" />
<RarContents Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.MFC\mfc110u.dll" />
<RarContents Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.MFC\mfcm110u.dll" />
</ItemGroup>
<ItemGroup>
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\icon.ico" />
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\side-logo.bmp" />
<RarMetafiles Include="$(AegisubSourceBase)packages\win_installer\portable\portable-comment.txt" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,172 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Automation">
<UniqueIdentifier>{2c1914de-647f-44ab-a698-a289b10ec29c}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Autoload">
<UniqueIdentifier>{862d477a-6db6-4ef0-b547-fa347b8d3aff}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Include">
<UniqueIdentifier>{d15cec98-3f6e-4713-a192-8cfdf1bac1d0}</UniqueIdentifier>
</Filter>
<Filter Include="CSRI">
<UniqueIdentifier>{61b13b0c-d018-48c6-8629-b44b83aa0dc8}</UniqueIdentifier>
</Filter>
<Filter Include="Runtime">
<UniqueIdentifier>{0461dadd-a953-4fee-8240-bf3eb1d3a240}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Tests">
<UniqueIdentifier>{8880eb0c-4bf7-424d-9a79-73c20c2dd169}</UniqueIdentifier>
</Filter>
<Filter Include="Automation\Demos">
<UniqueIdentifier>{743db065-17d0-4595-b241-9baa143dd68c}</UniqueIdentifier>
</Filter>
<Filter Include="AssDraw">
<UniqueIdentifier>{8e48f676-fdad-4b6e-a146-58a300ee528d}</UniqueIdentifier>
</Filter>
<Filter Include="Avisynth">
<UniqueIdentifier>{63aff439-dbde-4092-8dad-905a01c4be6c}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<None Include="$(AegisubSourceBase)autoload/clean-info.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/cleantags-autoload.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/kara-templater.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/karaoke-auto-leadin.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/macro-1-edgeblur.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/macro-2-mkfullwitdh.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/select-overlaps.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)autoload/strip-tags.lua">
<Filter>Automation\Autoload</Filter>
</None>
<None Include="$(AegisubSourceBase)demos/future-windy-blur.lua">
<Filter>Automation\Demos</Filter>
</None>
<None Include="$(AegisubSourceBase)demos/raytracer.lua">
<Filter>Automation\Demos</Filter>
</None>
<None Include="$(AegisubSourceBase)include/cleantags.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/clipboard.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/karaskel-auto4.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/karaskel.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/re.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/unicode.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/utils-auto4.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)include/utils.lua">
<Filter>Automation\Include</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/appended-lines.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/basic-export-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/basic-tests.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/config-dialog-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/gen-absurd-t-line.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/hello-world.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/karaoke-parse-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/progress-reporting-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/selection-set-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/test-filter-name-clash.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/test-furi.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/test-tablecopy-recursive.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/test-text_extents.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/text-extents-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/trace-level-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)tests/unicode-test.lua">
<Filter>Automation\Tests</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\aegisub$(AegisubPlatformSuffix).exe" />
<None Include="$(AegisubSourceBase)bin\ffms2_$(AegisubPlatformSuffix).dll" />
<None Include="$(AegisubSourceBase)packages\win_installer\portable\config.json" />
<None Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.MFC\mfc110u.dll">
<Filter>Runtime</Filter>
</None>
<None Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.MFC\mfcm110u.dll">
<Filter>Runtime</Filter>
</None>
<None Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.CRT\msvcp110.dll">
<Filter>Runtime</Filter>
</None>
<None Include="$(VCInstallDir)redist\$(PlatformName)\Microsoft.VC110.CRT\msvcr110.dll">
<Filter>Runtime</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\csri\vsfilter-aegisub$(AegisubPlatformSuffix).dll">
<Filter>CSRI</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\csri\xy-vsfilter-aegisub$(AegisubPlatformSuffix).dll">
<Filter>CSRI</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\AssDraw3.chm">
<Filter>AssDraw</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\AssDraw3.exe">
<Filter>AssDraw</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\avisynth.dll">
<Filter>Avisynth</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\devil.dll">
<Filter>Avisynth</Filter>
</None>
<None Include="$(AegisubSourceBase)bin\DirectShowSource.dll">
<Filter>Avisynth</Filter>
</None>
</ItemGroup>
</Project>