<?xml version="1.0" encoding="utf-8"?> | |
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> | |
<ItemGroup> | |
<PropertyPageSchema | |
Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" /> | |
<AvailableItemName | |
Include="YASM"> | |
<Targets>_YASM</Targets> | |
</AvailableItemName> | |
</ItemGroup> | |
<UsingTask | |
TaskName="YASM" | |
TaskFactory="XamlTaskFactory" | |
AssemblyName="Microsoft.Build.Tasks.v4.0"> | |
<Task>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml</Task> | |
</UsingTask> | |
<Target | |
Name="_YASM" | |
BeforeTargets="$(YASMBeforeTargets)" | |
AfterTargets="$(YASMAfterTargets)" | |
Condition="'@(YASM)' != ''" | |
DependsOnTargets="$(YASMDependsOn);ComputeYASMOutput" | |
Outputs="@(YASM->'%(ObjectFile)')" | |
Inputs="@(YASM);%(YASM.AdditionalDependencies);$(MSBuildProjectFile)"> | |
<ItemGroup | |
Condition="'@(SelectedFiles)' != ''"> | |
<YASM | |
Remove="@(YASM)" | |
Condition="'%(Identity)' != '@(SelectedFiles)'" /> | |
</ItemGroup> | |
<ItemGroup> | |
<YASM_tlog | |
Include="%(YASM.ObjectFile)" | |
Condition="'%(YASM.ObjectFile)' != '' and '%(YASM.ExcludedFromBuild)' != 'true'"> | |
<Source>@(YASM, '|')</Source> | |
</YASM_tlog> | |
</ItemGroup> | |
<Message | |
Importance="High" | |
Text="%(YASM.ExecutionDescription)" /> | |
<WriteLinesToFile | |
Condition="'@(YASM_tlog)' != '' and '%(YASM_tlog.ExcludedFromBuild)' != 'true'" | |
File="$(IntDir)$(ProjectName).write.1.tlog" | |
Lines="^%(YASM_tlog.Source);@(YASM_tlog->'%(Fullpath)')" /> | |
<YASM | |
Condition="'@(YASM)' != '' and '%(YASM.ExcludedFromBuild)' != 'true'" | |
CommandLineTemplate="%(YASM.CommandLineTemplate)" | |
Debug="%(YASM.Debug)" | |
PreIncludeFile="%(YASM.PreIncludeFile)" | |
IncludePaths="%(YASM.IncludePaths)" | |
Defines="%(YASM.Defines)" | |
UnDefines="%(YASM.UnDefines)" | |
ObjectFile="%(YASM.ObjectFile)" | |
ListFile="%(YASM.ListFile)" | |
MapFile="%(YASM.MapFile)" | |
ErrorFile="%(YASM.ErrorFile)" | |
SymbolPrefix="%(YASM.SymbolPrefix)" | |
SymbolSuffix="%(YASM.SymbolSuffix)" | |
PreProc="%(YASM.PreProc)" | |
Parser="%(YASM.Parser)" | |
AdditionalOptions="%(YASM.AdditionalOptions)" | |
Inputs="@(YASM)" /> | |
</Target> | |
<PropertyGroup> | |
<ComputeLinkInputsTargets> | |
$(ComputeLinkInputsTargets); | |
ComputeYASMOutput; | |
</ComputeLinkInputsTargets> | |
<ComputeLibInputsTargets> | |
$(ComputeLibInputsTargets); | |
ComputeYASMOutput; | |
</ComputeLibInputsTargets> | |
</PropertyGroup> | |
<Target | |
Name="ComputeYASMOutput" | |
Condition="'@(YASM)' != ''"> | |
<ItemGroup> | |
<YASMDirsToMake | |
Condition="'@(YASM)' != '' and '%(YASM.ExcludedFromBuild)' != 'true' and !HasTrailingSlash('%(YASM.ObjectFile)')" | |
Include="%(YASM.ObjectFile)" /> | |
<Link | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
<Lib | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
<ImpLib | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
</ItemGroup> | |
<ItemGroup> | |
<YASMDirsToMake | |
Condition="'@(YASM)' != '' and '%(YASM.ExcludedFromBuild)' != 'true' and HasTrailingSlash('%(YASM.ObjectFile)')" | |
Include="@(YASM->'%(ObjectFile)%(Filename).obj')" /> | |
<Link | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
<Lib | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
<ImpLib | |
Include="%(YASMDirsToMake.Identity)" | |
Condition="'%(Extension)'=='.obj' or '%(Extension)'=='.res' or '%(Extension)'=='.rsc' or '%(Extension)'=='.lib'" /> | |
</ItemGroup> | |
<MakeDir | |
Directories="@(YASMDirsToMake->'%(RootDir)%(Directory)')" /> | |
</Target> | |
</Project> |