Aegisub/build/icu/icu.vcxproj
Niels Martin Hansen 5a4920c48f Option to change parallel make options for gmake based VS projects
It seems that gmake can livelock in parallel make mode on Windows
in some cases. This provides an escape hatch for those cases.
2014-05-04 10:35:15 +02:00

123 lines
4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="Globals">
<ProjectGuid>{F934AB7B-186B-4E96-B20C-A58C38C1B818}</ProjectGuid>
<Keyword>MakeFileProj</Keyword>
<ConfigurationType>Makefile</ConfigurationType>
</PropertyGroup>
<!-- Aegisub project configuration -->
<ImportGroup Label="PropertySheets">
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
</ImportGroup>
<UsingTask TaskName="DownloadTgzFile" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
<PropertyGroup Label="ConfigArgs">
<CfgDebug Condition="'$(Configuration)' == 'Debug'">--enable-debug --disable-release CFLAGS=-MDd CXXFLAGS=-MDd</CfgDebug>
<CfgDebug Condition="'$(Configuration)' == 'Release'">--disable-debug --enable-release CFLAGS="-MD -Gw -O2 -GL" CXXFLAGS="-MD -Gw -O2 -GL"</CfgDebug>
<CfgArgs>
CC=cl
CXX=cl
--enable-static
--disable-shared
--disable-extras
--disable-icuio
--disable-layout
--disable-tests
--disable-samples
$(CfgDebug)
</CfgArgs>
<AbsSrcDir>$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)$(IcuSrcDir)'))</AbsSrcDir>
</PropertyGroup>
<ItemGroup>
<ConfigureInput Include="$(AbsSrcDir)\configure" />
<ConfigureOutput Include="$(AegisubObjectDir)Makefile" />
</ItemGroup>
<Target Name="Configure"
Inputs="@(ConfigureInput)"
Outputs="@(ConfigureOutput)"
>
<Delete Files="$(AegisubObjectDir)build.timestamp" />
<Copy
SourceFiles="mh-msys-msvc"
DestinationFiles="$(IcuSrcDir)\config\mh-cygwin-msvc"
SkipUnchangedFiles="true"
/>
<MsysPath Path="$(AegisubObjectDir)\temp">
<Output TaskParameter="Result" PropertyName="CfgPrefix" />
</MsysPath>
<MsysPath Path="$(MSBuildThisFileDirectory)../../include">
<Output TaskParameter="Result" PropertyName="CfgIncludePrefix" />
</MsysPath>
<MsysPath Path="$(AegisubLibraryDir)">
<Output TaskParameter="Result" PropertyName="CfgLibPrefix" />
</MsysPath>
<ExecShellScript
Command="$(AbsSrcDir)\configure"
Arguments="$(CfgArgs) --prefix=$(CfgPrefix) --libdir=$(CfgLibPrefix) --includedir=$(CfgIncludePrefix)"
WorkingDirectory="$(AegisubObjectDir)"
Configuration="@(ExecShellScript)"
/>
<!-- Ensure that Makefile has a recent modified time to avoid
rerunning configure pointlessly -->
<Touch Files="@(ConfigureOutput)" />
</Target>
<ItemGroup>
<OutputLibraries Include="$(AegisubObjectDir)lib\*" />
</ItemGroup>
<Target Name="Compile"
Inputs="$(IcuSrcDir)"
Outputs="$(AegisubObjectDir)build.timestamp"
>
<!-- Generated with http://apps.icu-project.org/datacustom/ -->
<!-- Includes Break Iterator and Collator data only -->
<DownloadTgzFile
Url="http://www.aegisub.org/~plorkyeran/icudt52l.dat.tgz"
Destination="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in"
OutputFile="$(MSBuildThisFileDirectory)..\..\vendor\icu\source\data\in\icudt52l.dat"
Hash="b611a32e857ab4474e3c0118bd09b0958026fe1d"
/>
<ExecShellScript
Command="make"
Arguments="$(GmakeParallelBuild)"
WorkingDirectory="$(AegisubObjectDir)"
Configuration="@(ExecShellScript)"
/>
<ExecShellScript
Command="make install"
WorkingDirectory="$(AegisubObjectDir)"
Configuration="@(ExecShellScript)"
/>
<Touch Files="$(AegisubObjectDir)build.timestamp" AlwaysCreate="true" />
</Target>
<Target Name="Build">
<Error Condition="!Exists('$(AbsSrcDir)')" Text="ICU source not found at '$(AbsSrcDir)'" />
<CallTarget Targets="Configure" />
<CallTarget Targets="Compile" />
</Target>
<Target Name="Clean">
<RemoveDir Directories="$(AegisubObjectDir)" ContinueOnError="WarnAndContinue" />
</Target>
<Target Name="Rebuild">
<CallTarget Targets="Clean;Build" />
</Target>
</Project>