155 lines
5.3 KiB
XML
155 lines
5.3 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<!-- VC boilerplate -->
|
|
<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>{F934AB7B-186B-4E96-B20C-A58C38C1B819}</ProjectGuid>
|
|
<Keyword>MakeFileProj</Keyword>
|
|
<ConfigurationType>Makefile</ConfigurationType>
|
|
</PropertyGroup>
|
|
|
|
<!-- Aegisub project configuration -->
|
|
<ImportGroup Label="PropertySheets">
|
|
<Import Project="$(MSBuildThisFileDirectory)..\aegisub.props" />
|
|
</ImportGroup>
|
|
|
|
<UsingTask TaskName="ExecShellScript" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
|
<UsingTask TaskName="MsysPath" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
|
<UsingTask TaskName="UpdateFile" AssemblyFile="$(AegisubBinaryDir)BuildTasks.dll" />
|
|
|
|
<PropertyGroup Label="ConfigArgs">
|
|
<CfgEnableDebug Condition="'$(Configuration)' == 'Debug'">--enable-debug --disable-stripping</CfgEnableDebug>
|
|
<CfgEnableDebug Condition="'$(Configuration)' == 'Release'">--disable-debug</CfgEnableDebug>
|
|
<CfgArgs>
|
|
--disable-avfilter
|
|
--disable-avresample
|
|
--disable-bzlib
|
|
--disable-devices
|
|
--disable-doc
|
|
--disable-encoders
|
|
--disable-ffmpeg
|
|
--disable-ffplay
|
|
--disable-ffprobe
|
|
--disable-ffserver
|
|
--disable-filters
|
|
--disable-hwaccels
|
|
--disable-muxers
|
|
--disable-network
|
|
--disable-postproc
|
|
--disable-pthreads
|
|
--disable-shared
|
|
--disable-swresample
|
|
--enable-gpl
|
|
--enable-runtime-cpudetect
|
|
--enable-static
|
|
--extra-cflags=-D_SYSCRT
|
|
--toolchain=msvc
|
|
$(CfgEnableDebug)
|
|
</CfgArgs>
|
|
</PropertyGroup>
|
|
|
|
<ItemGroup>
|
|
<ConfigureInput Include="$(FfmpegSrcDir)\configure" />
|
|
|
|
<ConfigureOutput Include="$(AegisubObjectDir)config.*" />
|
|
<ConfigureOutput Include="$(AegisubObjectDir)Makefile" />
|
|
<ConfigureOutput Include="$(AegisubObjectDir)libavutil\avconfig.h" />
|
|
|
|
<CompileInput Include="$(FfmpegSrcDir)\*.mak" />
|
|
<CompileInput Include="$(FfmpegSrcDir)\**\*.c" />
|
|
<CompileInput Include="$(FfmpegSrcDir)\**\*.asm" />
|
|
<CompileInput Include="$(FfmpegSrcDir)\**\Makefile" />
|
|
|
|
<CompileOutput Include="$(AegisubObjectDir)libavcodec\libavcodec.a" />
|
|
<CompileOutput Include="$(AegisubObjectDir)libavformat\libavformat.a" />
|
|
<CompileOutput Include="$(AegisubObjectDir)libavutil\libavutil.a" />
|
|
<CompileOutput Include="$(AegisubObjectDir)libswscale\libswscale.a" />
|
|
|
|
<InstallOutput Include="$(AegisubLibraryDir)libavcodec.a" />
|
|
<InstallOutput Include="$(AegisubLibraryDir)libavformat.a" />
|
|
<InstallOutput Include="$(AegisubLibraryDir)libavutil.a" />
|
|
<InstallOutput Include="$(AegisubLibraryDir)libswscale.a" />
|
|
</ItemGroup>
|
|
|
|
<Target Name="Configure"
|
|
Inputs="@(ConfigureInput)"
|
|
Outputs="@(ConfigureOutput)"
|
|
>
|
|
<MsysPath ProjectDir="$(MSBuildThisFileDirectory)" Path="$(AegisubObjectDir)\temp">
|
|
<Output TaskParameter="Result" PropertyName="CfgPrefix" />
|
|
</MsysPath>
|
|
|
|
<MsysPath ProjectDir="$(MSBuildThisFileDirectory)" Path="../../include">
|
|
<Output TaskParameter="Result" PropertyName="CfgIncludePrefix" />
|
|
</MsysPath>
|
|
|
|
<MsysPath ProjectDir="$(MSBuildThisFileDirectory)" Path="../../lib/$(Platform)/$(Configuration)">
|
|
<Output TaskParameter="Result" PropertyName="CfgLibPrefix" />
|
|
</MsysPath>
|
|
|
|
<ExecShellScript
|
|
Script="$(FfmpegSrcDir)\configure"
|
|
Arguments="$(CfgArgs) --prefix=$(CfgPrefix) --libdir=$(CfgLibPrefix) --incdir=$(CfgIncludePrefix)"
|
|
WorkingDirectory="$(AegisubObjectDir)"
|
|
/>
|
|
|
|
<!-- Ensure that Makefile has a recent modified time to avoid
|
|
rerunning configure pointlessly -->
|
|
<Touch Files="@(ConfigureOutput)" />
|
|
</Target>
|
|
|
|
<Target Name="Compile"
|
|
Inputs="@(ConfigureOutput);@(CompileInput)"
|
|
Outputs="@(CompileOutput)"
|
|
>
|
|
<ExecShellScript
|
|
Command="make"
|
|
Arguments="-j$(NUMBER_OF_PROCESSORS)"
|
|
WorkingDirectory="$(AegisubObjectDir)"
|
|
/>
|
|
</Target>
|
|
|
|
<Target Name="Install"
|
|
Inputs="@(CompileOutput)"
|
|
Outputs="@(InstallOutput)"
|
|
>
|
|
<ExecShellScript
|
|
Command="make install"
|
|
WorkingDirectory="$(AegisubObjectDir)"
|
|
/>
|
|
</Target>
|
|
|
|
<Target Name="Build">
|
|
<Error Condition="!Exists('$(FfmpegSrcDir)')" Text="FFmpeg source not found at '$(FfmpegSrcDir)'" />
|
|
|
|
<CallTarget Targets="Configure" />
|
|
<CallTarget Targets="Compile" />
|
|
<CallTarget Targets="Install" />
|
|
</Target>
|
|
|
|
<Target Name="Clean">
|
|
<RemoveDir Directories="$(AegisubObjectDir)" ContinueOnError="WarnAndContinue" />
|
|
</Target>
|
|
|
|
<Target Name="Rebuild">
|
|
<CallTarget Targets="Clean;Build" />
|
|
</Target>
|
|
</Project>
|