mirror of https://github.com/yasm/yasm.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
110 lines
3.6 KiB
110 lines
3.6 KiB
<?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> |