armasm.targets 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  3. <ItemGroup>
  4. <PropertyPageSchema
  5. Include="$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml" />
  6. <AvailableItemName Include="ARMASM">
  7. <Targets>_ARMASM</Targets>
  8. </AvailableItemName>
  9. </ItemGroup>
  10. <PropertyGroup>
  11. <ComputeLinkInputsTargets>
  12. $(ComputeLinkInputsTargets);
  13. ComputeARMASMOutput;
  14. </ComputeLinkInputsTargets>
  15. <ComputeLibInputsTargets>
  16. $(ComputeLibInputsTargets);
  17. ComputeARMASMOutput;
  18. </ComputeLibInputsTargets>
  19. </PropertyGroup>
  20. <UsingTask
  21. TaskName="ARMASM"
  22. TaskFactory="XamlTaskFactory"
  23. AssemblyName="Microsoft.Build.Tasks.v4.0, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
  24. <Task>$(MSBuildThisFileDirectory)$(MSBuildThisFileName).xml</Task>
  25. </UsingTask>
  26. <Target
  27. Name="PreprocessForARMASM"
  28. Condition="'@(ARMASM)' != ''"
  29. BeforeTargets="_ARMASM">
  30. <ItemGroup>
  31. <BuildARMASM Include="@(ARMASM)" Condition="'%(ARMASM.ExcludedFromBuild)'!='true'" />
  32. </ItemGroup>
  33. <CL Condition="'@(BuildARMASM)' != ''"
  34. BuildingInIDE ="$(BuildingInsideVisualStudio)"
  35. Sources ="@(BuildARMASM)"
  36. AdditionalIncludeDirectories ="%(ClCompile.AdditionalIncludeDirectories)"
  37. AdditionalOptions =""
  38. AdditionalUsingDirectories ="%(ClCompile.AdditionalUsingDirectories)"
  39. AssemblerListingLocation ="%(ClCompile.AssemblerListingLocation)"
  40. AssemblerOutput ="%(ClCompile.AssemblerOutput)"
  41. BasicRuntimeChecks ="%(ClCompile.BasicRuntimeChecks)"
  42. BrowseInformation ="%(ClCompile.BrowseInformation)"
  43. BrowseInformationFile ="%(ClCompile.BrowseInformationFile)"
  44. BufferSecurityCheck ="%(ClCompile.BufferSecurityCheck)"
  45. CallingConvention ="%(ClCompile.CallingConvention)"
  46. CompileAsManaged ="%(ClCompile.CompileAsManaged)"
  47. CompileAs ="CompileAsC"
  48. DebugInformationFormat ="%(ClCompile.DebugInformationFormat)"
  49. DisableLanguageExtensions ="%(ClCompile.DisableLanguageExtensions)"
  50. DisableSpecificWarnings ="%(ClCompile.DisableSpecificWarnings)"
  51. EnableFiberSafeOptimizations ="%(ClCompile.EnableFiberSafeOptimizations)"
  52. EnablePREfast ="%(ClCompile.EnablePREfast)"
  53. ErrorReporting ="%(ClCompile.ErrorReporting)"
  54. ExceptionHandling ="%(ClCompile.ExceptionHandling)"
  55. ExcludedInputPaths ="$(ExcludePath)"
  56. ExpandAttributedSource ="%(ClCompile.ExpandAttributedSource)"
  57. FavorSizeOrSpeed ="%(ClCompile.FavorSizeOrSpeed)"
  58. FloatingPointExceptions ="%(ClCompile.FloatingPointExceptions)"
  59. FloatingPointModel ="%(ClCompile.FloatingPointModel)"
  60. ForceConformanceInForLoopScope ="%(ClCompile.ForceConformanceInForLoopScope)"
  61. ForcedUsingFiles ="%(ClCompile.ForcedUsingFiles)"
  62. FunctionLevelLinking ="%(ClCompile.FunctionLevelLinking)"
  63. GenerateXMLDocumentationFiles ="%(ClCompile.GenerateXMLDocumentationFiles)"
  64. IgnoreStandardIncludePath ="%(ClCompile.IgnoreStandardIncludePath)"
  65. InlineFunctionExpansion ="%(ClCompile.InlineFunctionExpansion)"
  66. IntrinsicFunctions ="%(ClCompile.IntrinsicFunctions)"
  67. MinimalRebuild ="%(ClCompile.MinimalRebuild)"
  68. MultiProcessorCompilation ="%(ClCompile.MultiProcessorCompilation)"
  69. ObjectFileName ="$(IntDir)"
  70. OmitDefaultLibName ="%(ClCompile.OmitDefaultLibName)"
  71. OmitFramePointers ="%(ClCompile.OmitFramePointers)"
  72. OpenMPSupport ="%(ClCompile.OpenMPSupport)"
  73. Optimization ="%(ClCompile.Optimization)"
  74. PrecompiledHeader =""
  75. PrecompiledHeaderFile ="NotUsing"
  76. PrecompiledHeaderOutputFile =""
  77. PreprocessKeepComments ="%(ClCompile.PreprocessKeepComments)"
  78. PreprocessorDefinitions ="%(ClCompile.PreprocessorDefinitions)"
  79. PreprocessSuppressLineNumbers ="%(ClCompile.PreprocessSuppressLineNumbers)"
  80. PreprocessToFile ="true"
  81. ProcessorNumber ="%(ClCompile.ProcessorNumber)"
  82. ProgramDataBaseFileName ="%(ClCompile.ProgramDataBaseFileName)"
  83. RuntimeLibrary ="%(ClCompile.RuntimeLibrary)"
  84. RuntimeTypeInfo ="%(ClCompile.RuntimeTypeInfo)"
  85. ShowIncludes ="%(ClCompile.ShowIncludes)"
  86. SmallerTypeCheck ="%(ClCompile.SmallerTypeCheck)"
  87. StringPooling ="%(ClCompile.StringPooling)"
  88. StructMemberAlignment ="%(ClCompile.StructMemberAlignment)"
  89. SuppressStartupBanner ="%(ClCompile.SuppressStartupBanner)"
  90. TreatSpecificWarningsAsErrors ="%(ClCompile.TreatSpecificWarningsAsErrors)"
  91. TreatWarningAsError ="%(ClCompile.TreatWarningAsError)"
  92. TreatWChar_tAsBuiltInType ="%(ClCompile.TreatWChar_tAsBuiltInType)"
  93. UndefineAllPreprocessorDefinitions ="%(ClCompile.UndefineAllPreprocessorDefinitions)"
  94. UndefinePreprocessorDefinitions ="%(ClCompile.UndefinePreprocessorDefinitions)"
  95. UseFullPaths ="%(ClCompile.UseFullPaths)"
  96. UseUnicodeForAssemblerListing ="%(ClCompile.UseUnicodeForAssemblerListing)"
  97. WarningLevel ="%(ClCompile.WarningLevel)"
  98. WholeProgramOptimization ="%(ClCompile.WholeProgramOptimization)"
  99. XMLDocumentationFileName ="%(ClCompile.XMLDocumentationFileName)"
  100. TrackerLogDirectory ="%(ClCompile.TrackerLogDirectory)"
  101. TLogReadFiles ="@(CLTLogReadFiles)"
  102. TLogWriteFiles ="@(CLTLogWriteFiles)"
  103. ToolExe ="$(CLToolExe)"
  104. ToolPath ="$(CLToolPath)"
  105. TrackFileAccess ="$(TrackFileAccess)"
  106. MinimalRebuildFromTracking ="%(ClCompile.MinimalRebuildFromTracking)"
  107. ToolArchitecture ="$(CLToolArchitecture)"
  108. TrackerFrameworkPath ="$(CLTrackerFrameworkPath)"
  109. TrackerSdkPath ="$(CLTrackerSdkPath)"
  110. TrackedInputFilesToIgnore ="@(ClNoDependencies)"
  111. AcceptableNonZeroExitCodes ="%(ClCompile.AcceptableNonZeroExitCodes)"
  112. YieldDuringToolExecution ="$(ClYieldDuringToolExecution)"
  113. >
  114. </CL>
  115. </Target>
  116. <Target
  117. Name="_ARMASM"
  118. BeforeTargets="$(ARMASMBeforeTargets)"
  119. AfterTargets="$(ARMASMAfterTargets)"
  120. Condition="'@(ARMASM)' != ''"
  121. Outputs="%(ARMASM.ObjectFileName)"
  122. Inputs="%(ARMASM.PPFileName);%(ARMASM.AdditionalDependencies);$(MSBuildProjectFile)"
  123. DependsOnTargets="_SelectedFiles">
  124. <ItemGroup Condition="'@(SelectedFiles)' != ''">
  125. <ARMASM Remove="@(ARMASM)" Condition="'%(Identity)' != '@(SelectedFiles)'" />
  126. </ItemGroup>
  127. <ItemGroup>
  128. <ARMASM_tlog Include="%(ARMASM.ObjectFileName)" Condition="'%(ARMASM.ObjectFileName)' != '' and '%(ARMASM.ExcludedFromBuild)' != 'true'">
  129. <Source>@(ARMASM, '|')</Source>
  130. </ARMASM_tlog>
  131. </ItemGroup>
  132. <Message
  133. Importance="High"
  134. Text="%(ARMASM.ExecutionDescription)"
  135. Condition="'@(ARMASM)' != '' and '%(ARMASM.ExcludedFromBuild)' != 'true'"/>
  136. <WriteLinesToFile
  137. Condition="'@(ARMASM_tlog)' != '' and '%(ARMASM_tlog.ExcludedFromBuild)' != 'true'"
  138. File="$(TLogLocation)$(ProjectName).write.1u.tlog"
  139. Lines="^%(ARMASM_tlog.Source);@(ARMASM_tlog-&gt;'%(Fullpath)')"
  140. Encoding="Unicode"/>
  141. <ARMASM
  142. Condition="'@(ARMASM)' != '' and '%(ARMASM.ExcludedFromBuild)' != 'true'"
  143. CommandLineTemplate="%(ARMASM.CommandLineTemplate)"
  144. GenerateDebugInformation="%(ARMASM.GenerateDebugInformation)"
  145. ObjectFileName="%(ARMASM.ObjectFileName)"
  146. IncludePaths="%(ARMASM.IncludePaths)"
  147. ErrorReporting="%(ARMASM.ErrorReporting)"
  148. AdditionalOptions="%(ARMASM.AdditionalOptions)"
  149. Inputs="%(ARMASM.PPFileName)" />
  150. </Target>
  151. <Target
  152. Name="ComputeARMASMOutput"
  153. Condition="'@(ARMASM)' != ''">
  154. <ItemGroup>
  155. <Link Include="@(ARMASM->Metadata('ObjectFileName')->Distinct()->ClearMetadata())" Condition="'%(ARMASM.ExcludedFromBuild)' != 'true'"/>
  156. <Lib Include="@(ARMASM->Metadata('ObjectFileName')->Distinct()->ClearMetadata())" Condition="'%(ARMASM.ExcludedFromBuild)' != 'true'"/>
  157. </ItemGroup>
  158. </Target>
  159. </Project>