<?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>