mirror of https://github.com/odrling/Aegisub
Clean up object dirs for Yasm'd files on Windows
This commit is contained in:
parent
5bcfc81df5
commit
52d4955064
|
@ -54,33 +54,69 @@
|
||||||
<WholeProgramOptimization>false</WholeProgramOptimization>
|
<WholeProgramOptimization>false</WholeProgramOptimization>
|
||||||
<InputRelativeSourceDir>$(FfmpegSrcDir)</InputRelativeSourceDir>
|
<InputRelativeSourceDir>$(FfmpegSrcDir)</InputRelativeSourceDir>
|
||||||
</ClCompile>
|
</ClCompile>
|
||||||
|
<Yasm>
|
||||||
|
<InputRelativeSourceDir>$(FfmpegSrcDir)\</InputRelativeSourceDir>
|
||||||
|
</Yasm>
|
||||||
</ItemDefinitionGroup>
|
</ItemDefinitionGroup>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<BuildCompileTargets>
|
<BuildCompileTargets>
|
||||||
YasmAssemble;
|
_YasmAssemble;
|
||||||
$(BuildCompileTargets)
|
$(BuildCompileTargets)
|
||||||
</BuildCompileTargets>
|
</BuildCompileTargets>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
<Target
|
||||||
|
Name="_YasmAssemble"
|
||||||
|
DependsOnTargets="ComputeYasmRelativeObjectDir;YasmCreateOutputDir;YasmAssemble"
|
||||||
|
/>
|
||||||
|
<!-- See standard-outdirs.props for explanation of the logic here -->
|
||||||
|
<Target
|
||||||
|
Name="ComputeYasmRelativeObjectDir"
|
||||||
|
BeforeTargets="YasmAssemble"
|
||||||
|
Inputs="@(Yasm)"
|
||||||
|
Outputs="%(InputRelativeSourceDir)|%(RelativeDir)"
|
||||||
|
>
|
||||||
|
<PropertyGroup>
|
||||||
|
<InputRelativeDir>%(Yasm.RelativeDir)</InputRelativeDir>
|
||||||
|
<InputRelativeDir Condition="'%(Yasm.InputRelativeSourceDir)' != ''">$(InputRelativeDir.Replace("%(Yasm.InputRelativeSourceDir)",""))</InputRelativeDir>
|
||||||
|
<InputRelativeSourceDir>%(Yasm.InputRelativeSourceDir)</InputRelativeSourceDir>
|
||||||
|
<InputRelativeSourceDir Condition="!HasTrailingSlash('$(InputRelativeSourceDir)')">$(InputRelativeSourceDir)\</InputRelativeSourceDir>
|
||||||
|
<InputRelativeDir>$(InputRelativeDir.Replace("$(InputRelativeSourceDir)",""))</InputRelativeDir>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Yasm>
|
||||||
|
<OutputDir>$(AegisubObjectDir)$(InputRelativeDir)</OutputDir>
|
||||||
|
</Yasm>
|
||||||
|
</ItemGroup>
|
||||||
|
</Target>
|
||||||
|
<Target
|
||||||
|
Name="YasmCreateOutputDir"
|
||||||
|
Inputs="@(Yasm)"
|
||||||
|
Outputs="%(Yasm.OutputDir)"
|
||||||
|
>
|
||||||
|
<MakeDir
|
||||||
|
Directories="%(Yasm.OutputDir)"
|
||||||
|
/>
|
||||||
|
</Target>
|
||||||
<Target
|
<Target
|
||||||
Name="YasmAssemble"
|
Name="YasmAssemble"
|
||||||
Inputs="@(Yasm)"
|
Inputs="@(Yasm)"
|
||||||
Outputs="$(AegisubObjectDir)\%(Yasm.Directory)%(Yasm.Filename).obj"
|
Outputs="%(Yasm.OutputDir)%(Yasm.Filename).obj"
|
||||||
>
|
>
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<YasmInclude>-I. -I$(MSBuildThisFileDirectory) -I$(FfmpegSrcDir) -I%(Yasm.RootDir)%(Yasm.Directory)</YasmInclude>
|
<YasmInclude>-I. -I$(MSBuildThisFileDirectory) -I$(FfmpegSrcDir) -I%(Yasm.RootDir)%(Yasm.Directory)</YasmInclude>
|
||||||
<YasmOutName>@(Yasm -> '%(Directory)%(Filename)').obj</YasmOutName>
|
<YasmOutName>@(Yasm -> '%(OutputDir)%(Filename)').obj</YasmOutName>
|
||||||
<YasmConfig Condition="'$(Platform)'=='Win32'">-m x86 -DPREFIX -Pconfig-x86.asm</YasmConfig>
|
<YasmConfig Condition="'$(Platform)'=='Win32'">-m x86 -DPREFIX -Pconfig-x86.asm</YasmConfig>
|
||||||
<YasmConfig Condition="'$(Platform)'=='x64'">-m amd64 -Pconfig-x64.asm</YasmConfig>
|
<YasmConfig Condition="'$(Platform)'=='x64'">-m amd64 -Pconfig-x64.asm</YasmConfig>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<Exec
|
<Exec
|
||||||
Command="echo %(Yasm.Identity) && yasm -f win32 $(YasmConfig) $(YasmInclude) -o $(YasmOutName) %(Yasm.FullPath)"
|
Command="echo $(InputRelativeDir)%(Yasm.Filename)%(Yasm.Extension) && yasm -f win32 $(YasmConfig) $(YasmInclude) -o $(YasmOutName) %(Yasm.FullPath)"
|
||||||
WorkingDirectory="$(AegisubObjectDir)"
|
WorkingDirectory="$(AegisubObjectDir)"
|
||||||
/>
|
/>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Link Include="$(AegisubObjectDir)$(YasmOutName)" />
|
<Link Include="$(YasmOutName)" />
|
||||||
<Lib Include="$(AegisubObjectDir)$(YasmOutName)" />
|
<Lib Include="$(YasmOutName)" />
|
||||||
<ImpLib Include="$(AegisubObjectDir)$(YasmOutName)" />
|
<ImpLib Include="$(YasmOutName)" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue