110 lines
3.6 KiB
XML
110 lines
3.6 KiB
XML
<?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>
|
|
|
|
<PropertyGroup>
|
|
<ComputeLinkInputsTargets>
|
|
$(ComputeLinkInputsTargets);
|
|
ComputeYASMOutput;
|
|
</ComputeLinkInputsTargets>
|
|
<ComputeLibInputsTargets>
|
|
$(ComputeLibInputsTargets);
|
|
ComputeYASMOutput;
|
|
</ComputeLibInputsTargets>
|
|
</PropertyGroup>
|
|
|
|
<UsingTask
|
|
TaskName="YASM"
|
|
TaskFactory="XamlTaskFactory"
|
|
AssemblyName="Microsoft.Build.Tasks.v4.0">
|
|
<Task>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml</Task>
|
|
</UsingTask>
|
|
|
|
<Target Name="_WriteYASMTlogs"
|
|
Condition="'@(YASM)' != '' and '@(SelectedFiles)' == ''">
|
|
|
|
<ItemGroup>
|
|
<_YASMReadTlog
|
|
Include="^%(YASM.FullPath);%(YASM.AdditionalDependencies)"
|
|
Condition="'%(YASM.ExcludedFromBuild)' != 'true' and '%(YASM.ObjectFile)' != ''"/>
|
|
<_YASMWriteTlog
|
|
Include="^%(YASM.FullPath);$([MSBuild]::NormalizePath('$(MSBuildProjectDirectory)', '%(YASM.ObjectFile)'))"
|
|
Condition="'%(YASM.ExcludedFromBuild)' != 'true' and '%(YASM.ObjectFile)' != ''"/>
|
|
</ItemGroup>
|
|
|
|
<WriteLinesToFile
|
|
Condition="'@(_YASMReadTlog)' != ''"
|
|
File="$(TLogLocation)YASM.read.1u.tlog"
|
|
Lines="@(_YASMReadTlog->MetaData('Identity')->ToUpperInvariant());"
|
|
Overwrite="true"
|
|
Encoding="Unicode"/>
|
|
|
|
<WriteLinesToFile
|
|
Condition="'@(_YASMWriteTlog)' != ''"
|
|
File="$(TLogLocation)YASM.write.1u.tlog"
|
|
Lines="@(_YASMWriteTlog->MetaData('Identity')->ToUpperInvariant());"
|
|
Overwrite="true"
|
|
Encoding="Unicode"/>
|
|
|
|
<ItemGroup>
|
|
<_YASMReadTlog Remove="@(_YASMReadTlog)" />
|
|
<_YASMWriteTlog Remove="@(_YASMWriteTlog)" />
|
|
</ItemGroup>
|
|
|
|
</Target>
|
|
|
|
<Target
|
|
Name="_YASM"
|
|
BeforeTargets="$(YASMBeforeTargets)"
|
|
AfterTargets="$(YASMAfterTargets)"
|
|
Condition="'@(YASM)' != ''"
|
|
Inputs="%(YASM.Identity);%(YASM.AdditionalDependencies);$(MSBuildProjectFile)"
|
|
Outputs="%(YASM.ObjectFile)"
|
|
DependsOnTargets="PrepareForBuild;_WriteYasmTlogs;_SelectedFiles;$(YASMDependsOn);">
|
|
|
|
<ItemGroup Condition="'@(SelectedFiles)' != ''">
|
|
<YASM Remove="@(YASM)" Condition="'%(Identity)' != '@(SelectedFiles)'" />
|
|
</ItemGroup>
|
|
|
|
<Message
|
|
Importance="High"
|
|
Text="%(YASM.ExecutionDescription)" />
|
|
|
|
<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.Identity)" />
|
|
</Target>
|
|
|
|
<Target
|
|
Name="ComputeYASMOutput"
|
|
Condition="'@(YASM)' != ''">
|
|
<ItemGroup>
|
|
<Link Include="@(YASM->Metadata('ObjectFile')->Distinct()->ClearMetadata())" Condition="'%(YASM.ExcludedFromBuild)' != 'true'"/>
|
|
<Lib Include="@(YASM->Metadata('ObjectFile')->Distinct()->ClearMetadata())" Condition="'%(YASM.ExcludedFromBuild)' != 'true'"/>
|
|
</ItemGroup>
|
|
</Target>
|
|
|
|
</Project> |