Guest User

Ultimate

a guest
Sep 10th, 2018
570
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 119.64 KB | None | 0 0
  1. <!--
  2. ***********************************************************************************************
  3. Microsoft.CppCommon.targets
  4.  
  5. WARNING:  DO NOT MODIFY this file unless you are knowledgeable about MSBuild and have
  6.           created a backup copy.  Incorrect changes to this file will make it
  7.           impossible to load or build your projects from the command-line or the IDE.
  8.  
  9. This file defines the steps/targets common to building Visual C++ projects.
  10.  
  11. Copyright (C) Microsoft Corporation. All rights reserved.
  12. ***********************************************************************************************
  13. -->
  14.  
  15. <Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  16.   <PropertyGroup>
  17.   <!-- Yield optimization properties -->
  18.     <YieldDuringToolExecution Condition="'$(YieldDuringToolExecution)' == ''">true</YieldDuringToolExecution>
  19.     <ClYieldDuringToolExecution Condition="'$(ClYieldDuringToolExecution)' == ''">$(YieldDuringToolExecution)</ClYieldDuringToolExecution>
  20.     <MidlYieldDuringToolExecution Condition="'$(MidlYieldDuringToolExecution)' == ''">$(YieldDuringToolExecution)</MidlYieldDuringToolExecution>
  21.   </PropertyGroup>
  22.  
  23.   <!-- Define the Target Macros-->
  24.   <PropertyGroup>
  25.     <!-- If OutDir was set outside of the project file, then we will append ProjectName -->
  26.     <OutDir Condition="'$(OutDirWasSpecified)' == 'true' and (('$(WindowsAppContainer)' == 'true' and '$(GenerateProjectSpecificOutputFolder)' != 'false') or '$(GenerateProjectSpecificOutputFolder)' == 'true')">$(OutDir)$(ProjectName)\</OutDir>
  27.  
  28.     <!-- Correct OutputPath as it may be out of sync with OutDir -->
  29.     <OutputPath>$(OutDir)</OutputPath>
  30.  
  31.     <TargetPath Condition="'$(TargetPath)' == ''">$([System.IO.Path]::Combine($(ProjectDir),$(OutDir)$(TargetName)$(TargetExt)))</TargetPath>
  32.     <TargetFileName Condition=" '$(TargetFileName)'=='' ">$([System.IO.Path]::GetFileName('$(TargetPath)'))</TargetFileName>
  33.     <TargetDir      Condition=" '$(TargetDir)'==''"      >$([System.IO.Path]::GetDirectoryName('$(TargetPath)'))</TargetDir>
  34.     <LocalDebuggerCommand Condition="'$(LocalDebuggerCommand)'==''">$(TargetPath)</LocalDebuggerCommand>
  35.     <ExtensionsToDeleteOnClean>$(ExtensionsToDeleteOnClean);$(TargetPath).manifest;$(OutDir)$(TargetName).tlb;$(OutDir)$(TargetName).pdb;$(TargetPath);$(OutDir)$(TargetName).bsc;$(OutDir)$(TargetName).ilk;$(TargetPath).intermediate.manifest</ExtensionsToDeleteOnClean>
  36.     <IntermediateOutputPath Condition="'$(IntermediateOutputPath)'==''">$(IntDir)</IntermediateOutputPath>
  37.  
  38.     <!-- Set AppxPackageDir before OutDirWasSpecified is set false -->
  39.     <AppxPackageDir Condition=" '$(OutDirWasSpecified)' == 'true' ">$(OutDir)AppPackages\</AppxPackageDir>
  40.  
  41.     <!-- After OutDir has been fixed, disable Microsoft.common.targets from fixing it again -->
  42.     <OutDirWasSpecified>false</OutDirWasSpecified>
  43.  
  44.     <!-- Enable incremental build by enable file tracking in tasks-->
  45.     <TrackFileAccess Condition="'$(TrackFileAccess)' == ''">true</TrackFileAccess>
  46.   </PropertyGroup>
  47.  
  48.   <!--
  49.   Link.exe can now embed manifest.  This helps the build avoid the double linking.  The build will pretend that it is embedding by MT, but instead
  50.   of passing MT the embed command, it will pass it them to link.exe via /manifest:embed and /manifestinput.  MT will still run incase there are other utilities
  51.   MT provides.
  52.  
  53.   To revert back to the old behavior set $(LegacyManifestEmbedding) to true.
  54.   -->
  55.  
  56.   <!-- If we are compiling managed -->
  57.   <PropertyGroup Condition="'$(GenerateManifest)' == 'true' AND '$(EmbedManifest)'=='true' AND '$(CLRSupport)'!='' AND '$(CLRSupport)'!='false' AND
  58.      ('$(ConfigurationType)'=='Application' OR '$(ConfigurationType)'=='DynamicLibrary' ) ">
  59.     <EmbedManifestBy Condition="'$(LinkKeyFile)'=='' OR '$(LinkDelaySign)'=='true'">MT</EmbedManifestBy>
  60.     <EmbedManifestBy Condition="'$(LinkKeyFile)'!='' AND '$(LinkDelaySign)'!='true'">LINK</EmbedManifestBy>
  61.   </PropertyGroup>
  62.   <!-- If we are compiling native -->
  63.   <PropertyGroup Condition="'$(GenerateManifest)' == 'true' AND '$(EmbedManifest)'=='true' AND ('$(CLRSupport)'=='false' or '$(CLRSupport)'=='') AND
  64.      ('$(ConfigurationType)'=='Application' OR '$(ConfigurationType)'=='DynamicLibrary' ) ">
  65.     <EmbedManifestBy Condition="'$(LinkIncremental)'=='true'">LINK</EmbedManifestBy>
  66.     <EmbedManifestBy Condition="'$(LinkIncremental)'!='true'">MT</EmbedManifestBy>
  67.   </PropertyGroup>
  68.  
  69.   <Import Project="$(VCTargetsPath)\Microsoft.CppBuild.targets"/>
  70.  
  71.   <UsingTask TaskName="VCMessage"     AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll" />
  72.   <UsingTask TaskName="LIB"           AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  73.   <UsingTask TaskName="MIDL"          AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  74.   <UsingTask TaskName="RC"            AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  75.   <UsingTask TaskName="Mt"            AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  76.   <UsingTask TaskName="XSD"           AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  77.   <UsingTask TaskName="XDCMake"       AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  78.   <UsingTask TaskName="BscMake"       AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  79.   <UsingTask TaskName="CustomBuild"   AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  80.   <UsingTask TaskName="CL"            AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  81.   <UsingTask TaskName="Link"          AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  82.   <UsingTask TaskName="FXC"           AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  83.   <UsingTask TaskName="MultiToolTask" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.CppTasks.Common.dll"/>
  84.  
  85.   <!-- *******************************************************************************************
  86.         AvailableItemName
  87.        ******************************************************************************************* -->
  88.   <!-- Creates a connection between item names and the targets to build them. -->
  89.   <ItemGroup>
  90.     <AvailableItemName Include="ClCompile">
  91.       <Targets>ClCompile</Targets>
  92.     </AvailableItemName>
  93.     <AvailableItemName Include="Midl">
  94.       <Targets>Midl</Targets>
  95.     </AvailableItemName>
  96.     <AvailableItemName Include="ResourceCompile">
  97.       <Targets>ResourceCompile</Targets>
  98.     </AvailableItemName>
  99.     <AvailableItemName Include="EmbeddedResource">
  100.       <Targets>ResGen</Targets>
  101.     </AvailableItemName>
  102.     <AvailableItemName Include="CustomBuild">
  103.       <Targets>CustomBuild</Targets>
  104.     </AvailableItemName>
  105.     <AvailableItemName Include="Xsd">
  106.       <Targets>Xsd</Targets>
  107.     </AvailableItemName>
  108.     <AvailableItemName Include="FxCompile">
  109.       <Targets>FxCompile</Targets>
  110.     </AvailableItemName>
  111.   </ItemGroup>
  112.  
  113.   <!-- *******************************************************************************************
  114.         Build Events
  115.        ******************************************************************************************* -->
  116.   <PropertyGroup>
  117.     <_BuildSuffix>
  118. :VCEnd</_BuildSuffix>
  119.   </PropertyGroup>
  120.  
  121.   <Target Name="PreBuildEvent" Condition="'$(PreBuildEventUseInBuild)'!='false'">
  122.     <Message Text="Description: %(PreBuildEvent.Message)" Condition="'%(PreBuildEvent.Message)' != '' and '%(PreBuildEvent.Command)' != ''"/>
  123.     <Exec Command="%(PreBuildEvent.Command)$(_BuildSuffix)" Condition="'%(PreBuildEvent.Command)' != ''"/>
  124.   </Target>
  125.  
  126.   <Target Name="PreLinkEvent" Condition="'$(PreLinkEventUseInBuild)'!='false'">
  127.     <Message Text="Description: %(PreLinkEvent.Message)" Condition="'%(PreLinkEvent.Message)' != '' and '%(PreLinkEvent.Command)' != ''"/>
  128.     <Exec Command="%(PreLinkEvent.Command)$(_BuildSuffix)" Condition="'%(PreLinkEvent.Command)' != ''"/>
  129.   </Target>
  130.  
  131.   <Target Name="PostBuildEvent" Condition="'$(PostBuildEventUseInBuild)'!='false'">
  132.     <Message Text="Description: %(PostBuildEvent.Message)" Condition="'%(PostBuildEvent.Message)' != '' and '%(PostBuildEvent.Command)' != ''"/>
  133.     <Exec Command="%(PostBuildEvent.Command)$(_BuildSuffix)" Condition="'%(PostBuildEvent.Command)' != ''"/>
  134.   </Target>
  135.  
  136.   <!-- *******************************************************************************************
  137.         Custom Build
  138.        ******************************************************************************************* -->
  139.   <PropertyGroup Condition="'$(CustomBuildAfterTargets)'!='' or '$(CustomBuildBeforeTargets)'!=''">
  140.     <CustomBuildToolBeforeTargets>$(CustomBuildBeforeTargets)</CustomBuildToolBeforeTargets>
  141.     <CustomBuildToolAfterTargets>$(CustomBuildAfterTargets)</CustomBuildToolAfterTargets>
  142.   </PropertyGroup>
  143.  
  144.   <!--If no before/after targets are set, then set the default-->
  145.   <PropertyGroup Condition="'$(CustomBuildAfterTargets)'=='' and '$(CustomBuildBeforeTargets)'==''">
  146.     <CustomBuildToolBeforeTargets>Midl</CustomBuildToolBeforeTargets>
  147.     <CustomBuildToolAfterTargets>PreBuildEvent</CustomBuildToolAfterTargets>
  148.     <CustomBuildBeforeTargets>PostBuildEvent</CustomBuildBeforeTargets>
  149.     <CustomBuildAfterTargets>BscMake</CustomBuildAfterTargets>
  150.   </PropertyGroup>
  151.  
  152.   <!--  If Selective File Build is enabled, then dont let custom interupt the build order-->
  153.   <PropertyGroup Condition="'$(SelectedFiles)'!=''">
  154.     <CustomBuildToolBeforeTargets></CustomBuildToolBeforeTargets>
  155.     <CustomBuildToolAfterTargets></CustomBuildToolAfterTargets>
  156.     <CustomBuildBeforeTargets></CustomBuildBeforeTargets>
  157.     <CustomBuildAfterTargets></CustomBuildAfterTargets>
  158.   </PropertyGroup>
  159.  
  160.   <Target Name="CustomBuild"
  161.           Condition="'@(CustomBuild)' != ''"
  162.           DependsOnTargets="SelectCustomBuild;ComputeCustomBuildOutput"
  163.           BeforeTargets="$(CustomBuildToolBeforeTargets)"
  164.           AfterTargets="$(CustomBuildToolAfterTargets)"
  165.           >
  166.  
  167.     <PropertyGroup>
  168.       <CustomBuildToolArchitecture Condition="'$(CustomBuildToolArchitecture)' == ''">Native32Bit</CustomBuildToolArchitecture>
  169.     </PropertyGroup>
  170.  
  171.     <CustomBuild
  172.       Sources                     ="@(CustomBuild)"
  173.       BuildSuffix                 ="$(_BuildSuffix)"
  174.  
  175.       TrackerLogDirectory         ="%(CustomBuild.TrackerLogDirectory)"
  176.       MinimalRebuildFromTracking  ="%(CustomBuild.MinimalRebuildFromTracking)"
  177.  
  178.       TLogReadFiles               ="@(CustomBuildTLogReadFiles)"
  179.       TLogWriteFiles              ="@(CustomBuildTLogWriteFiles)"
  180.       TrackFileAccess             ="$(TrackFileAccess)"
  181.       ToolArchitecture            ="$(CustomBuildToolArchitecture)"
  182.       TrackerFrameworkPath        ="$(CustomBuildTrackerFrameworkPath)"
  183.       TrackerSdkPath              ="$(CustomBuildTrackerSdkPath)"
  184.  
  185.       AcceptableNonZeroExitCodes  ="%(CustomBuild.AcceptableNonZeroExitCodes)"
  186.       >
  187.     </CustomBuild>
  188.   </Target>
  189.  
  190.   <Target Name="CustomBuildStep"
  191.           Condition="'@(CustomBuildStep)' != '' and '$(SelectedFiles)'==''"
  192.           Inputs="%(CustomBuildStep.Inputs);$(ProjectFileName)"
  193.           Outputs="%(CustomBuildStep.Outputs)"
  194.           DependsOnTargets="ComputeCustomBuildOutput"
  195.           BeforeTargets="$(CustomBuildBeforeTargets)"
  196.           AfterTargets="$(CustomBuildAfterTargets)"
  197.           >
  198.     <Message Text="Description: %(CustomBuildStep.Message)" Condition="%(CustomBuildStep.Message) != ''"/>
  199.  
  200.     <!-- Appended tlog to track custom build events -->
  201.     <WriteLinesToFile File="$(TLogLocation)$(ProjectName).write.1u.tlog" Lines="@(CustomBuildStep->'^%(Identity)');@(CustomBuildStep->MetaData('Outputs')->FullPath()->Distinct())" Encoding="Unicode"/>
  202.  
  203.     <Exec Command="%(CustomBuildStep.Command)$(_BuildSuffix)" />
  204.   </Target>
  205.  
  206.   <!-- *******************************************************************************************
  207.         CLCompile
  208.        ******************************************************************************************* -->
  209.  
  210.   <PropertyGroup>
  211.     <ComputeCompileInputsTargets>
  212.       $(ComputeCompileInputsTargets);
  213.       FixupCLCompileOptions;
  214.     </ComputeCompileInputsTargets>
  215.   </PropertyGroup>
  216.  
  217.   <Target Name="FixupCLCompileOptions"
  218.             Condition="'@(ClCompile)' != ''">
  219.     <ItemGroup>
  220.       <ClCompile>
  221.         <PrecompiledHeaderOutputFile   Condition="'%(ClCompile.PrecompiledHeader)' == 'NotUsing' or '%(ClCompile.PrecompiledHeader)' == ''"></PrecompiledHeaderOutputFile>
  222.         <PrecompiledHeaderOutputFile   Condition="'%(ClCompile.PrecompiledHeader)' != 'NotUsing' and '$(RunCodeAnalysisOnce)' == 'true' and '$(RunCodeAnalysisOnThisProject)' == 'true' and '%(ClCompile.PrecompiledHeader)' != '' and '%(ClCompile.PrecompiledHeaderOutputFile)' != '' and '%(ClCompile.CompilerIteration)' == ''">%(ClCompile.PrecompiledHeaderOutputFile).codeanalysis</PrecompiledHeaderOutputFile>
  223.         <PrecompiledHeaderFile         Condition="'%(ClCompile.PrecompiledHeader)' == 'NotUsing' or '%(ClCompile.PrecompiledHeader)' == ''"></PrecompiledHeaderFile>
  224.         <UseUnicodeForAssemblerListing Condition="'%(ClCompile.AssemblerOutput)' == 'NoListing' or '%(ClCompile.AssemblerOutput)' == ''"></UseUnicodeForAssemblerListing>
  225.         <AssemblerListingLocation      Condition="'%(ClCompile.AssemblerOutput)' == 'NoListing' or '%(ClCompile.AssemblerOutput)' == ''"></AssemblerListingLocation>
  226.         <CompileAs                     Condition="'%(ClCompile.CompileAs)' == 'Default' and '%(ClCompile.Extension)' == '.c'">CompileAsC</CompileAs>
  227.         <CompileAs                     Condition="'%(ClCompile.CompileAs)' == 'Default' and '%(ClCompile.Extension)' != '.c'">CompileAsCpp</CompileAs>
  228.         <MinimalRebuildFromTracking    Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  229.         <WinRTNoStdLib                 Condition="'%(ClCompile.CompileAsWinRT)' != 'true'">false</WinRTNoStdLib>
  230.       </ClCompile>
  231.     </ItemGroup>
  232.   </Target>
  233.  
  234.   <Target Name="ClCompile"
  235.           Condition="'@(ClCompile)' != ''"
  236.           DependsOnTargets="SelectClCompile">
  237.  
  238.     <PropertyGroup>
  239.       <CLToolArchitecture Condition="'$(CLToolArchitecture)' == ''">$(VCToolArchitecture)</CLToolArchitecture>
  240.       <CLDeleteOutputOnExecute Condition="'$(CLDeleteOutputOnExecute)' == ''">true</CLDeleteOutputOnExecute>
  241.     </PropertyGroup>
  242.  
  243.     <ItemGroup>
  244.       <ClNoDependencies Condition="'@(ClNoDependencies)' == '' and '%(ClInclude.NoDependency)' == 'true'" Include="@(ClInclude)"/>
  245.       <ClNoDependencies Condition="'$(NoDependencies)' != ''" Include="$(NoDependencies)" />
  246.     </ItemGroup>
  247.  
  248.     <!-- Delete the pch file if the pdb file has been deleted.  This will prevent a compiler warning about obsolete pch. -->
  249.     <Delete Condition="'%(ClCompile.DebugInformationFormat)' != '' and '%(ClCompile.DebugInformationFormat)' != 'None' and '%(ClCompile.DebugInformationFormat)' != 'OldStyle' and '%(ClCompile.ProgramDataBaseFileName)' != '' and !Exists(%(ClCompile.ProgramDataBaseFileName))"
  250.             Files="%(ClCompile.PrecompiledHeaderOutputFile)" />
  251.  
  252.     <!-- Precompiled headers - need to build them first -->
  253.     <CL Condition="'%(ClCompile.PrecompiledHeader)' == 'Create' and '%(ClCompile.ExcludedFromBuild)'!='true' and '%(ClCompile.CompilerIteration)' == ''"
  254.         BuildingInIDE                      ="$(BuildingInsideVisualStudio)"
  255.         Sources                            ="@(ClCompile)"
  256.  
  257.         AdditionalIncludeDirectories       ="%(ClCompile.AdditionalIncludeDirectories)"
  258.         AdditionalOptions                  ="%(ClCompile.AdditionalOptions)"
  259.         AdditionalUsingDirectories         ="%(ClCompile.AdditionalUsingDirectories)"
  260.         AssemblerListingLocation           ="%(ClCompile.AssemblerListingLocation)"
  261.         AssemblerOutput                    ="%(ClCompile.AssemblerOutput)"
  262.         BasicRuntimeChecks                 ="%(ClCompile.BasicRuntimeChecks)"
  263.         BrowseInformation                  ="%(ClCompile.BrowseInformation)"
  264.         BrowseInformationFile              ="%(ClCompile.BrowseInformationFile)"
  265.         BufferSecurityCheck                ="%(ClCompile.BufferSecurityCheck)"
  266.         CallingConvention                  ="%(ClCompile.CallingConvention)"
  267.         ControlFlowGuard                   ="%(ClCompile.ControlFlowGuard)"
  268.         CompileAsManaged                   ="%(ClCompile.CompileAsManaged)"
  269.         CompileAsWinRT                     ="%(ClCompile.CompileAsWinRT)"
  270.         CompileAs                          ="%(ClCompile.CompileAs)"
  271.         DebugInformationFormat             ="%(ClCompile.DebugInformationFormat)"
  272.         DiagnosticsFormat                  ="%(ClCompile.DiagnosticsFormat)"
  273.         DisableLanguageExtensions          ="%(ClCompile.DisableLanguageExtensions)"
  274.         DisableSpecificWarnings            ="%(ClCompile.DisableSpecificWarnings)"
  275.         EnableEnhancedInstructionSet       ="%(ClCompile.EnableEnhancedInstructionSet)"
  276.         EnableFiberSafeOptimizations       ="%(ClCompile.EnableFiberSafeOptimizations)"
  277.         EnableParallelCodeGeneration       ="%(ClCompile.EnableParallelCodeGeneration)"
  278.         EnablePREfast                      ="%(ClCompile.EnablePREfast)"
  279.         EnforceTypeConversionRules         ="%(ClCompile.EnforceTypeConversionRules)"
  280.         ErrorReporting                     ="%(ClCompile.ErrorReporting)"
  281.         ExceptionHandling                  ="%(ClCompile.ExceptionHandling)"
  282.         ExcludedInputPaths                 ="$(ExcludePath)"
  283.         ExpandAttributedSource             ="%(ClCompile.ExpandAttributedSource)"
  284.         FavorSizeOrSpeed                   ="%(ClCompile.FavorSizeOrSpeed)"
  285.         FloatingPointExceptions            ="%(ClCompile.FloatingPointExceptions)"
  286.         FloatingPointModel                 ="%(ClCompile.FloatingPointModel)"
  287.         ForceConformanceInForLoopScope     ="%(ClCompile.ForceConformanceInForLoopScope)"
  288.         ForcedIncludeFiles                 ="%(ClCompile.ForcedIncludeFiles)"
  289.         ForcedUsingFiles                   ="%(ClCompile.ForcedUsingFiles)"
  290.         FunctionLevelLinking               ="%(ClCompile.FunctionLevelLinking)"
  291.         GenerateXMLDocumentationFiles      ="%(ClCompile.GenerateXMLDocumentationFiles)"
  292.         IgnoreStandardIncludePath          ="%(ClCompile.IgnoreStandardIncludePath)"
  293.         InlineFunctionExpansion            ="%(ClCompile.InlineFunctionExpansion)"
  294.         IntrinsicFunctions                 ="%(ClCompile.IntrinsicFunctions)"
  295.         LanguageStandard                   ="%(ClCompile.LanguageStandard)"
  296.         MinimalRebuild                     ="%(ClCompile.MinimalRebuild)"
  297.         MultiProcessorCompilation          ="%(ClCompile.MultiProcessorCompilation)"
  298.         ObjectFileName                     ="%(ClCompile.ObjectFileName)"
  299.         OmitDefaultLibName                 ="%(ClCompile.OmitDefaultLibName)"
  300.         OmitFramePointers                  ="%(ClCompile.OmitFramePointers)"
  301.         OpenMPSupport                      ="%(ClCompile.OpenMPSupport)"
  302.         Optimization                       ="%(ClCompile.Optimization)"
  303.         PrecompiledHeader                  ="%(ClCompile.PrecompiledHeader)"
  304.         PrecompiledHeaderFile              ="%(ClCompile.PrecompiledHeaderFile)"
  305.         PrecompiledHeaderOutputFile        ="%(ClCompile.PrecompiledHeaderOutputFile)"
  306.         PREfastAdditionalOptions           ="%(ClCompile.PREfastAdditionalOptions)"
  307.         PREfastAdditionalPlugins           ="%(ClCompile.PREfastAdditionalPlugins)"
  308.         PREfastLog                         ="%(ClCompile.PREfastLog)"
  309.         PreprocessKeepComments             ="%(ClCompile.PreprocessKeepComments)"
  310.         PreprocessorDefinitions            ="%(ClCompile.PreprocessorDefinitions)"
  311.         PreprocessSuppressLineNumbers      ="%(ClCompile.PreprocessSuppressLineNumbers)"
  312.         PreprocessToFile                   ="%(ClCompile.PreprocessToFile)"
  313.         ProcessorNumber                    ="%(ClCompile.ProcessorNumber)"
  314.         ProgramDataBaseFileName            ="%(ClCompile.ProgramDataBaseFileName)"
  315.         RemoveUnreferencedCodeData         ="%(ClCompile.RemoveUnreferencedCodeData)"
  316.         RuntimeLibrary                     ="%(ClCompile.RuntimeLibrary)"
  317.         RuntimeTypeInfo                    ="%(ClCompile.RuntimeTypeInfo)"
  318.         SDLCheck                           ="%(ClCompile.SDLCheck)"
  319.         ShowIncludes                       ="%(ClCompile.ShowIncludes)"
  320.         WarningVersion                     ="%(ClCompile.WarningVersion)"
  321.         SmallerTypeCheck                   ="%(ClCompile.SmallerTypeCheck)"
  322.         StringPooling                      ="%(ClCompile.StringPooling)"
  323.         StructMemberAlignment              ="%(ClCompile.StructMemberAlignment)"
  324.         SuppressStartupBanner              ="%(ClCompile.SuppressStartupBanner)"
  325.         TreatSpecificWarningsAsErrors      ="%(ClCompile.TreatSpecificWarningsAsErrors)"
  326.         TreatWarningAsError                ="%(ClCompile.TreatWarningAsError)"
  327.         TreatWChar_tAsBuiltInType          ="%(ClCompile.TreatWChar_tAsBuiltInType)"
  328.         UndefineAllPreprocessorDefinitions ="%(ClCompile.UndefineAllPreprocessorDefinitions)"
  329.         UndefinePreprocessorDefinitions    ="%(ClCompile.UndefinePreprocessorDefinitions)"
  330.         UseFullPaths                       ="%(ClCompile.UseFullPaths)"
  331.         UseUnicodeForAssemblerListing      ="%(ClCompile.UseUnicodeForAssemblerListing)"
  332.         WarningLevel                       ="%(ClCompile.WarningLevel)"
  333.         WholeProgramOptimization           ="%(ClCompile.WholeProgramOptimization)"
  334.         WinRTNoStdLib                      ="%(ClCompile.WinRTNoStdLib)"
  335.         XMLDocumentationFileName           ="%(ClCompile.XMLDocumentationFileName)"
  336.         CreateHotpatchableImage            ="%(CLCompile.CreateHotpatchableImage)"
  337.  
  338.         TrackerLogDirectory                ="%(ClCompile.TrackerLogDirectory)"
  339.  
  340.         TLogReadFiles                      ="@(CLTLogReadFiles)"
  341.         TLogWriteFiles                     ="@(CLTLogWriteFiles)"
  342.         ToolExe                            ="$(CLToolExe)"
  343.         ToolPath                           ="$(CLToolPath)"
  344.         TrackFileAccess                    ="$(TrackFileAccess)"
  345.         MinimalRebuildFromTracking         ="%(ClCompile.MinimalRebuildFromTracking)"
  346.         ToolArchitecture                   ="$(CLToolArchitecture)"
  347.         TrackerFrameworkPath               ="$(CLTrackerFrameworkPath)"
  348.         TrackerSdkPath                     ="$(CLTrackerSdkPath)"
  349.         TrackedInputFilesToIgnore          ="@(ClNoDependencies)"
  350.         DeleteOutputOnExecute              ="$(CLDeleteOutputOnExecute)"
  351.  
  352.         AcceptableNonZeroExitCodes         ="%(ClCompile.AcceptableNonZeroExitCodes)"
  353.         YieldDuringToolExecution           ="$(ClYieldDuringToolExecution)"
  354.     >
  355.     </CL>
  356.  
  357.     <!-- Rest of the sources -->
  358.     <CL Condition="'%(ClCompile.PrecompiledHeader)' != 'Create' and '%(ClCompile.ExcludedFromBuild)'!='true' and '%(ClCompile.CompilerIteration)' == '' and @(ClCompile) != ''"
  359.         BuildingInIDE                      ="$(BuildingInsideVisualStudio)"
  360.         Sources                            ="@(ClCompile)"
  361.  
  362.         AdditionalIncludeDirectories       ="%(ClCompile.AdditionalIncludeDirectories)"
  363.         AdditionalOptions                  ="%(ClCompile.AdditionalOptions)"
  364.         AdditionalUsingDirectories         ="%(ClCompile.AdditionalUsingDirectories)"
  365.         AssemblerListingLocation           ="%(ClCompile.AssemblerListingLocation)"
  366.         AssemblerOutput                    ="%(ClCompile.AssemblerOutput)"
  367.         BasicRuntimeChecks                 ="%(ClCompile.BasicRuntimeChecks)"
  368.         BrowseInformation                  ="%(ClCompile.BrowseInformation)"
  369.         BrowseInformationFile              ="%(ClCompile.BrowseInformationFile)"
  370.         BufferSecurityCheck                ="%(ClCompile.BufferSecurityCheck)"
  371.         CallingConvention                  ="%(ClCompile.CallingConvention)"
  372.         ControlFlowGuard                   ="%(ClCompile.ControlFlowGuard)"
  373.         CompileAsManaged                   ="%(ClCompile.CompileAsManaged)"
  374.         CompileAsWinRT                     ="%(ClCompile.CompileAsWinRT)"
  375.         CompileAs                          ="%(ClCompile.CompileAs)"
  376.         DebugInformationFormat             ="%(ClCompile.DebugInformationFormat)"
  377.         DiagnosticsFormat                  ="%(ClCompile.DiagnosticsFormat)"
  378.         DisableLanguageExtensions          ="%(ClCompile.DisableLanguageExtensions)"
  379.         DisableSpecificWarnings            ="%(ClCompile.DisableSpecificWarnings)"
  380.         EnableEnhancedInstructionSet       ="%(ClCompile.EnableEnhancedInstructionSet)"
  381.         EnableFiberSafeOptimizations       ="%(ClCompile.EnableFiberSafeOptimizations)"
  382.         EnableParallelCodeGeneration       ="%(ClCompile.EnableParallelCodeGeneration)"
  383.         EnablePREfast                      ="%(ClCompile.EnablePREfast)"
  384.         EnforceTypeConversionRules         ="%(ClCompile.EnforceTypeConversionRules)"
  385.         ErrorReporting                     ="%(ClCompile.ErrorReporting)"
  386.         ExceptionHandling                  ="%(ClCompile.ExceptionHandling)"
  387.         ExcludedInputPaths                 ="$(ExcludePath)"
  388.         ExpandAttributedSource             ="%(ClCompile.ExpandAttributedSource)"
  389.         FavorSizeOrSpeed                   ="%(ClCompile.FavorSizeOrSpeed)"
  390.         FloatingPointExceptions            ="%(ClCompile.FloatingPointExceptions)"
  391.         FloatingPointModel                 ="%(ClCompile.FloatingPointModel)"
  392.         ForceConformanceInForLoopScope     ="%(ClCompile.ForceConformanceInForLoopScope)"
  393.         ForcedIncludeFiles                 ="%(ClCompile.ForcedIncludeFiles)"
  394.         ForcedUsingFiles                   ="%(ClCompile.ForcedUsingFiles)"
  395.         FunctionLevelLinking               ="%(ClCompile.FunctionLevelLinking)"
  396.         GenerateXMLDocumentationFiles      ="%(ClCompile.GenerateXMLDocumentationFiles)"
  397.         IgnoreStandardIncludePath          ="%(ClCompile.IgnoreStandardIncludePath)"
  398.         InlineFunctionExpansion            ="%(ClCompile.InlineFunctionExpansion)"
  399.         IntrinsicFunctions                 ="%(ClCompile.IntrinsicFunctions)"
  400.         LanguageStandard                   ="%(ClCompile.LanguageStandard)"
  401.         MinimalRebuild                     ="%(ClCompile.MinimalRebuild)"
  402.         MultiProcessorCompilation          ="%(ClCompile.MultiProcessorCompilation)"
  403.         ObjectFileName                     ="%(ClCompile.ObjectFileName)"
  404.         OmitDefaultLibName                 ="%(ClCompile.OmitDefaultLibName)"
  405.         OmitFramePointers                  ="%(ClCompile.OmitFramePointers)"
  406.         OpenMPSupport                      ="%(ClCompile.OpenMPSupport)"
  407.         Optimization                       ="%(ClCompile.Optimization)"
  408.         PrecompiledHeader                  ="%(ClCompile.PrecompiledHeader)"
  409.         PrecompiledHeaderFile              ="%(ClCompile.PrecompiledHeaderFile)"
  410.         PrecompiledHeaderOutputFile        ="%(ClCompile.PrecompiledHeaderOutputFile)"
  411.         PREfastAdditionalOptions           ="%(ClCompile.PREfastAdditionalOptions)"
  412.         PREfastAdditionalPlugins           ="%(ClCompile.PREfastAdditionalPlugins)"
  413.         PREfastLog                         ="%(ClCompile.PREfastLog)"
  414.         PreprocessKeepComments             ="%(ClCompile.PreprocessKeepComments)"
  415.         PreprocessorDefinitions            ="%(ClCompile.PreprocessorDefinitions)"
  416.         PreprocessSuppressLineNumbers      ="%(ClCompile.PreprocessSuppressLineNumbers)"
  417.         PreprocessToFile                   ="%(ClCompile.PreprocessToFile)"
  418.         ProcessorNumber                    ="%(ClCompile.ProcessorNumber)"
  419.         ProgramDataBaseFileName            ="%(ClCompile.ProgramDataBaseFileName)"
  420.         RemoveUnreferencedCodeData         ="%(ClCompile.RemoveUnreferencedCodeData)"
  421.         RuntimeLibrary                     ="%(ClCompile.RuntimeLibrary)"
  422.         RuntimeTypeInfo                    ="%(ClCompile.RuntimeTypeInfo)"
  423.         SDLCheck                           ="%(ClCompile.SDLCheck)"
  424.         ShowIncludes                       ="%(ClCompile.ShowIncludes)"
  425.         WarningVersion                     ="%(ClCompile.WarningVersion)"
  426.         SmallerTypeCheck                   ="%(ClCompile.SmallerTypeCheck)"
  427.         StringPooling                      ="%(ClCompile.StringPooling)"
  428.         StructMemberAlignment              ="%(ClCompile.StructMemberAlignment)"
  429.         SuppressStartupBanner              ="%(ClCompile.SuppressStartupBanner)"
  430.         TreatSpecificWarningsAsErrors      ="%(ClCompile.TreatSpecificWarningsAsErrors)"
  431.         TreatWarningAsError                ="%(ClCompile.TreatWarningAsError)"
  432.         TreatWChar_tAsBuiltInType          ="%(ClCompile.TreatWChar_tAsBuiltInType)"
  433.         UndefineAllPreprocessorDefinitions ="%(ClCompile.UndefineAllPreprocessorDefinitions)"
  434.         UndefinePreprocessorDefinitions    ="%(ClCompile.UndefinePreprocessorDefinitions)"
  435.         UseFullPaths                       ="%(ClCompile.UseFullPaths)"
  436.         UseUnicodeForAssemblerListing      ="%(ClCompile.UseUnicodeForAssemblerListing)"
  437.         WarningLevel                       ="%(ClCompile.WarningLevel)"
  438.         WholeProgramOptimization           ="%(ClCompile.WholeProgramOptimization)"
  439.         WinRTNoStdLib                      ="%(ClCompile.WinRTNoStdLib)"
  440.         XMLDocumentationFileName           ="%(ClCompile.XMLDocumentationFileName)"
  441.         CreateHotpatchableImage            ="%(CLCompile.CreateHotpatchableImage)"
  442.  
  443.         TrackerLogDirectory                ="%(ClCompile.TrackerLogDirectory)"
  444.  
  445.         TLogReadFiles                      ="@(CLTLogReadFiles)"
  446.         TLogWriteFiles                     ="@(CLTLogWriteFiles)"
  447.         ToolExe                            ="$(CLToolExe)"
  448.         ToolPath                           ="$(CLToolPath)"
  449.         TrackFileAccess                    ="$(TrackFileAccess)"
  450.         MinimalRebuildFromTracking         ="%(ClCompile.MinimalRebuildFromTracking)"
  451.         ToolArchitecture                   ="$(CLToolArchitecture)"
  452.         TrackerFrameworkPath               ="$(CLTrackerFrameworkPath)"
  453.         TrackerSdkPath                     ="$(CLTrackerSdkPath)"
  454.         TrackedInputFilesToIgnore          ="@(ClNoDependencies)"
  455.         DeleteOutputOnExecute              ="$(CLDeleteOutputOnExecute)"
  456.  
  457.         AcceptableNonZeroExitCodes         ="%(ClCompile.AcceptableNonZeroExitCodes)"
  458.         YieldDuringToolExecution           ="$(ClYieldDuringToolExecution)"
  459.     >
  460.     </CL>
  461.  
  462.     <OnError Condition="'$(OnXamlPreCompileErrorTarget)' != ''" ExecuteTargets="$(OnXamlPreCompileErrorTarget)" />
  463.   </Target>
  464.  
  465.   <Target Name="CompileXamlGeneratedFiles" >
  466.     <ItemGroup>
  467.       <ClCompile Condition="'%(ClCompile.CompilerIteration)' == 'XamlGenerated'">
  468.         <PrecompiledHeaderOutputFile   Condition="'%(ClCompile.PrecompiledHeader)' == 'NotUsing' or '%(ClCompile.PrecompiledHeader)' == ''"></PrecompiledHeaderOutputFile>
  469.         <PrecompiledHeaderOutputFile   Condition="'%(ClCompile.PrecompiledHeader)' != 'NotUsing' and '$(RunCodeAnalysisOnce)' == 'true' and '$(RunCodeAnalysisOnThisProject)' == 'true' and '%(ClCompile.PrecompiledHeader)' != '' and '%(ClCompile.PrecompiledHeaderOutputFile)' != '' and '%(ClCompile.CompilerIteration)' == 'XamlGenerated'">%(ClCompile.PrecompiledHeaderOutputFile).codeanalysis</PrecompiledHeaderOutputFile>
  470.         <PrecompiledHeaderFile         Condition="'%(ClCompile.PrecompiledHeader)' == 'NotUsing' or '%(ClCompile.PrecompiledHeader)' == ''"></PrecompiledHeaderFile>
  471.         <UseUnicodeForAssemblerListing Condition="'%(ClCompile.AssemblerOutput)' == 'NoListing' or '%(ClCompile.AssemblerOutput)' == ''"></UseUnicodeForAssemblerListing>
  472.         <AssemblerListingLocation      Condition="'%(ClCompile.AssemblerOutput)' == 'NoListing' or '%(ClCompile.AssemblerOutput)' == ''"></AssemblerListingLocation>
  473.         <CompileAs                     Condition="'%(ClCompile.CompileAs)' == 'Default' and '%(ClCompile.Extension)' == '.c'">CompileAsC</CompileAs>
  474.         <CompileAs                     Condition="'%(ClCompile.CompileAs)' == 'Default' and '%(ClCompile.Extension)' != '.c'">CompileAsCpp</CompileAs>
  475.         <MinimalRebuildFromTracking    Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  476.         <WinRTNoStdLib                 Condition="'%(ClCompile.CompileAsWinRT)' != 'true'">false</WinRTNoStdLib>
  477.       </ClCompile>
  478.     </ItemGroup>
  479.  
  480.     <!-- Rest of the sources -->
  481.     <CL Condition="'%(ClCompile.PrecompiledHeader)' != 'Create' and '%(ClCompile.ExcludedFromBuild)'!='true' and '%(ClCompile.CompilerIteration)' == 'XamlGenerated'"
  482.         BuildingInIDE                      ="$(BuildingInsideVisualStudio)"
  483.         Sources                            ="@(ClCompile)"
  484.  
  485.         AdditionalIncludeDirectories       ="%(ClCompile.AdditionalIncludeDirectories)"
  486.         AdditionalOptions                  ="%(ClCompile.AdditionalOptions)"
  487.         AdditionalUsingDirectories         ="%(ClCompile.AdditionalUsingDirectories)"
  488.         AssemblerListingLocation           ="%(ClCompile.AssemblerListingLocation)"
  489.         AssemblerOutput                    ="%(ClCompile.AssemblerOutput)"
  490.         BasicRuntimeChecks                 ="%(ClCompile.BasicRuntimeChecks)"
  491.         BrowseInformation                  ="%(ClCompile.BrowseInformation)"
  492.         BrowseInformationFile              ="%(ClCompile.BrowseInformationFile)"
  493.         BufferSecurityCheck                ="%(ClCompile.BufferSecurityCheck)"
  494.         CallingConvention                  ="%(ClCompile.CallingConvention)"
  495.         ControlFlowGuard                   ="%(ClCompile.ControlFlowGuard)"
  496.         CompileAsManaged                   ="%(ClCompile.CompileAsManaged)"
  497.         CompileAsWinRT                     ="%(ClCompile.CompileAsWinRT)"
  498.         CompileAs                          ="%(ClCompile.CompileAs)"
  499.         DebugInformationFormat             ="%(ClCompile.DebugInformationFormat)"
  500.         DiagnosticsFormat                  ="%(ClCompile.DiagnosticsFormat)"
  501.         DisableLanguageExtensions          ="%(ClCompile.DisableLanguageExtensions)"
  502.         DisableSpecificWarnings            ="%(ClCompile.DisableSpecificWarnings)"
  503.         EnableEnhancedInstructionSet       ="%(ClCompile.EnableEnhancedInstructionSet)"
  504.         EnableFiberSafeOptimizations       ="%(ClCompile.EnableFiberSafeOptimizations)"
  505.         EnableParallelCodeGeneration       ="%(ClCompile.EnableParallelCodeGeneration)"
  506.         EnablePREfast                      ="%(ClCompile.EnablePREfast)"
  507.         EnforceTypeConversionRules         ="%(ClCompile.EnforceTypeConversionRules)"
  508.         ErrorReporting                     ="%(ClCompile.ErrorReporting)"
  509.         ExceptionHandling                  ="%(ClCompile.ExceptionHandling)"
  510.         ExcludedInputPaths                 ="$(ExcludePath)"
  511.         ExpandAttributedSource             ="%(ClCompile.ExpandAttributedSource)"
  512.         FavorSizeOrSpeed                   ="%(ClCompile.FavorSizeOrSpeed)"
  513.         FloatingPointExceptions            ="%(ClCompile.FloatingPointExceptions)"
  514.         FloatingPointModel                 ="%(ClCompile.FloatingPointModel)"
  515.         ForceConformanceInForLoopScope     ="%(ClCompile.ForceConformanceInForLoopScope)"
  516.         ForcedIncludeFiles                 ="%(ClCompile.ForcedIncludeFiles)"
  517.         ForcedUsingFiles                   ="%(ClCompile.ForcedUsingFiles)"
  518.         FunctionLevelLinking               ="%(ClCompile.FunctionLevelLinking)"
  519.         GenerateXMLDocumentationFiles      ="%(ClCompile.GenerateXMLDocumentationFiles)"
  520.         IgnoreStandardIncludePath          ="%(ClCompile.IgnoreStandardIncludePath)"
  521.         InlineFunctionExpansion            ="%(ClCompile.InlineFunctionExpansion)"
  522.         IntrinsicFunctions                 ="%(ClCompile.IntrinsicFunctions)"
  523.         LanguageStandard                   ="%(ClCompile.LanguageStandard)"
  524.         MinimalRebuild                     ="%(ClCompile.MinimalRebuild)"
  525.         MultiProcessorCompilation          ="%(ClCompile.MultiProcessorCompilation)"
  526.         ObjectFileName                     ="%(ClCompile.ObjectFileName)"
  527.         OmitDefaultLibName                 ="%(ClCompile.OmitDefaultLibName)"
  528.         OmitFramePointers                  ="%(ClCompile.OmitFramePointers)"
  529.         OpenMPSupport                      ="%(ClCompile.OpenMPSupport)"
  530.         Optimization                       ="%(ClCompile.Optimization)"
  531.         PrecompiledHeader                  ="%(ClCompile.PrecompiledHeader)"
  532.         PrecompiledHeaderFile              ="%(ClCompile.PrecompiledHeaderFile)"
  533.         PrecompiledHeaderOutputFile        ="%(ClCompile.PrecompiledHeaderOutputFile)"
  534.         PREfastAdditionalOptions           ="%(ClCompile.PREfastAdditionalOptions)"
  535.         PREfastAdditionalPlugins           ="%(ClCompile.PREfastAdditionalPlugins)"
  536.         PREfastLog                         ="%(ClCompile.PREfastLog)"
  537.         PreprocessKeepComments             ="%(ClCompile.PreprocessKeepComments)"
  538.         PreprocessorDefinitions            ="%(ClCompile.PreprocessorDefinitions)"
  539.         PreprocessSuppressLineNumbers      ="%(ClCompile.PreprocessSuppressLineNumbers)"
  540.         PreprocessToFile                   ="%(ClCompile.PreprocessToFile)"
  541.         ProcessorNumber                    ="%(ClCompile.ProcessorNumber)"
  542.         ProgramDataBaseFileName            ="%(ClCompile.ProgramDataBaseFileName)"
  543.         RemoveUnreferencedCodeData         ="%(ClCompile.RemoveUnreferencedCodeData)"
  544.         RuntimeLibrary                     ="%(ClCompile.RuntimeLibrary)"
  545.         RuntimeTypeInfo                    ="%(ClCompile.RuntimeTypeInfo)"
  546.         SDLCheck                           ="%(ClCompile.SDLCheck)"
  547.         ShowIncludes                       ="%(ClCompile.ShowIncludes)"
  548.         WarningVersion                     ="%(ClCompile.WarningVersion)"
  549.         SmallerTypeCheck                   ="%(ClCompile.SmallerTypeCheck)"
  550.         StringPooling                      ="%(ClCompile.StringPooling)"
  551.         StructMemberAlignment              ="%(ClCompile.StructMemberAlignment)"
  552.         SuppressStartupBanner              ="%(ClCompile.SuppressStartupBanner)"
  553.         TreatSpecificWarningsAsErrors      ="%(ClCompile.TreatSpecificWarningsAsErrors)"
  554.         TreatWarningAsError                ="%(ClCompile.TreatWarningAsError)"
  555.         TreatWChar_tAsBuiltInType          ="%(ClCompile.TreatWChar_tAsBuiltInType)"
  556.         UndefineAllPreprocessorDefinitions ="%(ClCompile.UndefineAllPreprocessorDefinitions)"
  557.         UndefinePreprocessorDefinitions    ="%(ClCompile.UndefinePreprocessorDefinitions)"
  558.         UseFullPaths                       ="%(ClCompile.UseFullPaths)"
  559.         UseUnicodeForAssemblerListing      ="%(ClCompile.UseUnicodeForAssemblerListing)"
  560.         WarningLevel                       ="%(ClCompile.WarningLevel)"
  561.         WholeProgramOptimization           ="%(ClCompile.WholeProgramOptimization)"
  562.         WinRTNoStdLib                      ="%(ClCompile.WinRTNoStdLib)"
  563.         XMLDocumentationFileName           ="%(ClCompile.XMLDocumentationFileName)"
  564.         CreateHotpatchableImage            ="%(CLCompile.CreateHotpatchableImage)"
  565.  
  566.         TrackerLogDirectory                ="%(ClCompile.TrackerLogDirectory)"
  567.  
  568.         TLogReadFiles                      ="@(CLTLogReadFiles)"
  569.         TLogWriteFiles                     ="@(CLTLogWriteFiles)"
  570.         ToolExe                            ="$(CLToolExe)"
  571.         ToolPath                           ="$(CLToolPath)"
  572.         TrackFileAccess                    ="$(TrackFileAccess)"
  573.         MinimalRebuildFromTracking         ="%(ClCompile.MinimalRebuildFromTracking)"
  574.         ToolArchitecture                   ="$(CLToolArchitecture)"
  575.         TrackerFrameworkPath               ="$(CLTrackerFrameworkPath)"
  576.         TrackerSdkPath                     ="$(CLTrackerSdkPath)"
  577.         TrackedInputFilesToIgnore          ="@(ClNoDependencies)"
  578.         DeleteOutputOnExecute              ="$(CLDeleteOutputOnExecute)"
  579.  
  580.         AcceptableNonZeroExitCodes         ="%(ClCompile.AcceptableNonZeroExitCodes)"
  581.         YieldDuringToolExecution           ="$(ClYieldDuringToolExecution)"
  582.     >
  583.     </CL>
  584.   </Target>
  585.  
  586.   <!-- *******************************************************************************************
  587.         Link
  588.        ******************************************************************************************* -->
  589.  
  590.   <Target Name="ComputeLinkSwitches"
  591.           Condition="'@(Link)' != ''">
  592.  
  593.     <ItemGroup>
  594.       <_EmbedManagedResourceFile Include="@(Link->Metadata('EmbedManagedResourceFile')->Distinct())" />
  595.       <_EmbedManagedResourceFile Include="@(Link->Metadata('AddModuleNamesToAssembly')->Distinct())" />
  596.       <_EmbedManagedResourceFile Condition="'%(EmbeddedResource.LogicalName)' == '' and '%(EmbeddedResource.WithCulture)' != 'true' and '%(EmbeddedResource.ExcludedFromBuild)' != 'true'" Include="@(EmbeddedResource->'$(IntermediateOutputPath)%(ManifestResourceName).resources')" />
  597.       <_EmbedManagedResourceFile Condition="'%(EmbeddedResource.LogicalName)' != '' and '%(EmbeddedResource.WithCulture)' != 'true' and '%(EmbeddedResource.ExcludedFromBuild)' != 'true'" Include="@(EmbeddedResource->'$(IntermediateOutputPath)%(ManifestResourceName).resources,%(LogicalName)')" />
  598.       <Link Include="@(ResObjMt->WithMetadataValue('LinkCompiled', 'true')->ClearMetadata())" />
  599.     </ItemGroup>
  600.  
  601.     <PropertyGroup>
  602.       <Link_MinimalRebuildFromTracking Condition="'@(Link->AnyHaveMetadataValue('MinimalRebuildFromTracking', 'false'))' == 'true'">false</Link_MinimalRebuildFromTracking>
  603.       <Link_MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'" >false</Link_MinimalRebuildFromTracking>
  604.       <Link_MinimalRebuildFromTracking Condition="'$(Link_MinimalRebuildFromTracking)' == ''">true</Link_MinimalRebuildFromTracking>
  605.       <LinkToolArchitecture Condition="'$(LinkToolArchitecture)' == ''">$(VCToolArchitecture)</LinkToolArchitecture>
  606.       <LinkYieldDuringToolExecution Condition="'$(LinkYieldDuringToolExecution)' == '' and '%(Link.LinkTimeCodeGeneration)' == 'UseLinkTimeCodeGeneration'">true</LinkYieldDuringToolExecution>
  607.       <_GenerateWindowsMetadata Condition="'$(_GenerateWindowsMetadata)' == '' and '$(OnlyCreateWinMD)' == 'true' and '$(GenerateBuildCompilePassWinMD)' == 'true'">false</_GenerateWindowsMetadata>
  608.       <_GenerateWindowsMetadata Condition="'$(_GenerateWindowsMetadata)' == ''">%(Link.GenerateWindowsMetadata)</_GenerateWindowsMetadata>
  609.  
  610.       <!-- Compile's ControlFlowGuard needs to enable guard:cf on linker -->
  611.      <LinkControlFlowGuard Condition="'$(LinkControlFlowGuard)' == '' and '@(ClCompile)' != '' and '@(ClCompile->AnyHaveMetadataValue('ControlFlowGuard', 'Guard'))' == 'true'">Guard</LinkControlFlowGuard>
  612.    </PropertyGroup>
  613.  </Target>
  614.  
  615.  <Target Name="Link"
  616.          Condition="'@(Link)' != ''"
  617.          DependsOnTargets="ComputeLinkSwitches">
  618.  
  619.    <ItemGroup>
  620.      <Link>
  621.        <ProfileGuidedDatabase Condition="'%(Link.LinkTimeCodeGeneration)' != 'PGOptimization' and
  622.                                          '%(Link.LinkTimeCodeGeneration)' != 'PGUpdate' and
  623.                                          '%(Link.LinkTimeCodeGeneration)' != 'PGInstrument'"></ProfileGuidedDatabase>
  624.        <ManifestEmbed Condition="'%(Link.ManifestEmbed)' == '' and '$(LegacyManifestEmbedding)' != 'true'">$(EmbedManifest)</ManifestEmbed>
  625.        <ManifestInput Condition="'$(LegacyManifestEmbedding)' != 'true' and '$(EmbedManifest)' == 'true'">@(Link->'%(ManifestInput)');@(Manifest);$(ManifestAdditionalManifestFiles)</ManifestInput>
  626.        <ManifestFile Condition="'$(LegacyManifestEmbedding)' != 'true'" />
  627.      </Link>
  628.  
  629.      <!-- Remove some Winmd switches if generation is false -->
  630.      <Link>
  631.        <WindowsMetadataFile            Condition="'%(Link.GenerateWindowsMetadata)' == ''" />
  632.        <WindowsMetadataLinkKeyFile     Condition="'%(Link.GenerateWindowsMetadata)' == ''" />
  633.        <WindowsMetadataKeyContainer    Condition="'%(Link.GenerateWindowsMetadata)' == ''" />
  634.        <WindowsMetadataLinkDelaySign   Condition="'%(Link.GenerateWindowsMetadata)' == ''" />
  635.        <WindowsMetadataSignHash        Condition="'%(Link.GenerateWindowsMetadata)' == ''" />
  636.      </Link>
  637.  
  638.      <Link>
  639.        <!-- Encourge use of DebugFastLink -->
  640.        <GenerateDebugInformation Condition="('%(Link.GenerateDebugInformation)' == 'Debug' or '%(Link.GenerateDebugInformation)' == 'true') and '$(UseDebugLibraries)' == 'true' and '$(UseDebugFastLink)' != 'false'">DebugFastLink</GenerateDebugInformation>
  641.  
  642.        <!-- Generate full PDB. For now call link without /debug:fastlink. Later will'll call a special tool to create merge pdbs  -->
  643.         <GenerateDebugInformation Condition="'%(Link.GenerateDebugInformation)' == 'DebugFastLink' and ('%(Link.FullProgramDatabaseFile)' == 'true'  or '$(UseDebugFastLink)' == 'false')">true</GenerateDebugInformation>
  644.       </Link>
  645.     </ItemGroup>
  646.  
  647.     <Link
  648.         BuildingInIDE                  ="$(BuildingInsideVisualStudio)"
  649.         Sources                        ="@(Link)"
  650.  
  651.         AdditionalDependencies         ="%(Link.AdditionalDependencies)"
  652.         AdditionalLibraryDirectories   ="%(Link.AdditionalLibraryDirectories)"
  653.         AdditionalManifestDependencies ="%(Link.AdditionalManifestDependencies)"
  654.         AdditionalOptions              ="%(Link.AdditionalOptions)"
  655.         AddModuleNamesToAssembly       ="%(Link.AddModuleNamesToAssembly)"
  656.         AllowIsolation                 ="%(Link.AllowIsolation)"
  657.         AppContainer                   ="%(Link.AppContainer)"
  658.         AssemblyDebug                  ="%(Link.AssemblyDebug)"
  659.         AssemblyLinkResource           ="%(Link.AssemblyLinkResource)"
  660.         BaseAddress                    ="%(Link.BaseAddress)"
  661.         ControlFlowGuard               ="$(LinkControlFlowGuard)"
  662.         CLRImageType                   ="%(Link.CLRImageType)"
  663.         CLRSupportLastError            ="%(Link.CLRSupportLastError)"
  664.         CLRThreadAttribute             ="%(Link.CLRThreadAttribute)"
  665.         CLRUnmanagedCodeCheck          ="%(Link.CLRUnmanagedCodeCheck)"
  666.         CreateHotPatchableImage        ="%(Link.CreateHotPatchableImage)"
  667.         DataExecutionPrevention        ="%(Link.DataExecutionPrevention)"
  668.         DelayLoadDLLs                  ="%(Link.DelayLoadDLLs)"
  669.         DelaySign                      ="$(LinkDelaySign)"
  670.         Driver                         ="%(Link.Driver)"
  671.         EmbedManagedResourceFile       ="@(_EmbedManagedResourceFile)"
  672.         EnableCOMDATFolding            ="%(Link.EnableCOMDATFolding)"
  673.         EnableUAC                      ="%(Link.EnableUAC)"
  674.         EntryPointSymbol               ="%(Link.EntryPointSymbol)"
  675.         LinkErrorReporting             ="%(Link.LinkErrorReporting)"
  676.         FixedBaseAddress               ="%(Link.FixedBaseAddress)"
  677.         ForceFileOutput                ="%(Link.ForceFileOutput)"
  678.         ForceSymbolReferences          ="%(Link.ForceSymbolReferences)"
  679.         FunctionOrder                  ="%(Link.FunctionOrder)"
  680.         GenerateDebugInformation       ="%(Link.GenerateDebugInformation)"
  681.         GenerateManifest               ="$(GenerateManifest)"
  682.         GenerateMapFile                ="%(Link.GenerateMapFile)"
  683.         GenerateWindowsMetadata        ="$(_GenerateWindowsMetadata)"
  684.         WindowsMetadataFile            ="%(Link.WindowsMetadataFile)"
  685.         HeapCommitSize                 ="%(Link.HeapCommitSize)"
  686.         HeapReserveSize                ="%(Link.HeapReserveSize)"
  687.         IgnoreAllDefaultLibraries      ="%(Link.IgnoreAllDefaultLibraries)"
  688.         IgnoreEmbeddedIDL              ="%(Link.IgnoreEmbeddedIDL)"
  689.         IgnoreSpecificDefaultLibraries ="%(Link.IgnoreSpecificDefaultLibraries)"
  690.         ImageHasSafeExceptionHandlers  ="%(Link.ImageHasSafeExceptionHandlers)"
  691.         ImportLibrary                  ="%(Link.ImportLibrary)"
  692.         KeyContainer                   ="%(Link.KeyContainer)"
  693.         KeyFile                        ="$(LinkKeyFile)"
  694.         LargeAddressAware              ="%(Link.LargeAddressAware)"
  695.         LinkDLL                        ="%(Link.LinkDLL)"
  696.         LinkIncremental                ="$(LinkIncremental)"
  697.         LinkStatus                     ="%(Link.LinkStatus)"
  698.         LinkTimeCodeGeneration         ="%(Link.LinkTimeCodeGeneration)"
  699.         ManifestFile                   ="%(Link.ManifestFile)"
  700.         ManifestEmbed                  ="%(Link.ManifestEmbed)"
  701.         ManifestInput                  ="%(Link.ManifestInput)"
  702.         MapExports                     ="%(Link.MapExports)"
  703.         MapFileName                    ="%(Link.MapFileName)"
  704.         MergedIDLBaseFileName          ="%(Link.MergedIDLBaseFileName)"
  705.         MergeSections                  ="%(Link.MergeSections)"
  706.         MidlCommandFile                ="%(Link.MidlCommandFile)"
  707.         MinimumRequiredVersion         ="%(Link.MinimumRequiredVersion)"
  708.         ModuleDefinitionFile           ="%(Link.ModuleDefinitionFile)"
  709.         MSDOSStubFileName              ="%(Link.MSDOSStubFileName)"
  710.         Natvis                         ="@(Natvis)"
  711.         OptimizeReferences             ="%(Link.OptimizeReferences)"
  712.         OutputFile                     ="%(Link.OutputFile)"
  713.         PreventDllBinding              ="%(Link.PreventDllBinding)"
  714.         Profile                        ="%(Link.Profile)"
  715.         ProfileGuidedDatabase          ="%(Link.ProfileGuidedDatabase)"
  716.         ProgramDatabaseFile            ="%(Link.ProgramDatabaseFile)"
  717.         RandomizedBaseAddress          ="%(Link.RandomizedBaseAddress)"
  718.         NoEntryPoint                   ="%(Link.NoEntryPoint)"
  719.         SectionAlignment               ="%(Link.SectionAlignment)"
  720.         SetChecksum                    ="%(Link.SetChecksum)"
  721.         ShowProgress                   ="%(Link.ShowProgress)"
  722.         SignHash                       ="%(Link.SignHash)"
  723.         SpecifySectionAttributes       ="%(Link.SpecifySectionAttributes)"
  724.         StackCommitSize                ="%(Link.StackCommitSize)"
  725.         StackReserveSize               ="%(Link.StackReserveSize)"
  726.         StripPrivateSymbols            ="%(Link.StripPrivateSymbols)"
  727.         SubSystem                      ="%(Link.SubSystem)"
  728.         SupportUnloadOfDelayLoadedDLL  ="%(Link.SupportUnloadOfDelayLoadedDLL)"
  729.         SupportNobindOfDelayLoadedDLL  ="%(Link.SupportNobindOfDelayLoadedDLL)"
  730.         SuppressStartupBanner          ="%(Link.SuppressStartupBanner)"
  731.         SwapRunFromCD                  ="%(Link.SwapRunFromCD)"
  732.         SwapRunFromNET                 ="%(Link.SwapRunFromNET)"
  733.         TargetMachine                  ="%(Link.TargetMachine)"
  734.         TerminalServerAware            ="%(Link.TerminalServerAware)"
  735.         TreatLinkerWarningAsErrors     ="%(Link.TreatLinkerWarningAsErrors)"
  736.         TurnOffAssemblyGeneration      ="%(Link.TurnOffAssemblyGeneration)"
  737.         TypeLibraryFile                ="%(Link.TypeLibraryFile)"
  738.         TypeLibraryResourceID          ="%(Link.TypeLibraryResourceID)"
  739.         UACExecutionLevel              ="%(Link.UACExecutionLevel)"
  740.         UACUIAccess                    ="%(Link.UACUIAccess)"
  741.         Version                        ="%(Link.Version)"
  742.         WindowsMetadataLinkKeyFile     ="%(Link.WindowsMetadataLinkKeyFile)"
  743.         WindowsMetadataKeyContainer    ="%(Link.WindowsMetadataKeyContainer)"
  744.         WindowsMetadataLinkDelaySign   ="%(Link.WindowsMetadataLinkDelaySign)"
  745.         WindowsMetadataSignHash        ="%(Link.WindowsMetadataSignHash)"
  746.  
  747.         TrackerLogDirectory            ="%(Link.TrackerLogDirectory)"
  748.  
  749.         TLogReadFiles                  ="@(LinkTLogReadFiles)"
  750.         TLogWriteFiles                 ="@(LinkTLogWriteFiles)"
  751.         ToolExe                        ="$(LinkToolExe)"
  752.         ToolPath                       ="$(LinkToolPath)"
  753.         TrackFileAccess                ="$(TrackFileAccess)"
  754.         MinimalRebuildFromTracking     ="$(Link_MinimalRebuildFromTracking)"
  755.         ToolArchitecture               ="$(LinkToolArchitecture)"
  756.         TrackerFrameworkPath           ="$(LinkTrackerFrameworkPath)"
  757.         TrackerSdkPath                 ="$(LinkTrackerSdkPath)"
  758.         TrackedInputFilesToIgnore      ="@(LinkNoDependencies)"
  759.  
  760.         AcceptableNonZeroExitCodes     ="%(Link.AcceptableNonZeroExitCodes)"
  761.         YieldDuringToolExecution       ="$(LinkYieldDuringToolExecution)"
  762.     >
  763.       <Output TaskParameter="SkippedExecution" PropertyName="LinkSkippedExecution" />
  764.     </Link>
  765.  
  766.     <Message Text="$(MSBuildProjectFile) -&gt; $(TargetPath)" Importance="High" Condition="'$(EmbedManifestBy)' != 'LINK' or '$(LegacyManifestEmbedding)' != 'true' or '$(LinkSkippedExecution)' == 'true'"/>
  767.     <VCMessage Code="MSB8033" Type="Message" Arguments="$(MSBuildProjectFile);%(Link.ProgramDatabaseFile)" Importance="High"
  768.              Condition="('$(EmbedManifestBy)' != 'LINK' or '$(LegacyManifestEmbedding)' != 'true' or '$(LinkSkippedExecution)' == 'true') and
  769.             %(Link.GenerateDebugInformation) == 'DebugFastLink'"/>
  770.     <VCMessage Code="MSB8034" Type="Message" Arguments="$(MSBuildProjectFile);%(Link.ProgramDatabaseFile)" Importance="High"
  771.              Condition="('$(EmbedManifestBy)' != 'LINK' or '$(LegacyManifestEmbedding)' != 'true' or '$(LinkSkippedExecution)' == 'true') and
  772.             %(Link.GenerateDebugInformation) == 'true'"/>
  773.   </Target>
  774.  
  775.   <Target Name="LinkEmbedManifest"
  776.           Condition="'@(Link)' != '' AND '$(EmbedManifestBy)'=='LINK' AND '$(LinkSkippedExecution)' != 'true'"
  777.           DependsOnTargets="ComputeLinkSwitches">
  778.  
  779.     <Link
  780.         BuildingInIDE                  ="$(BuildingInsideVisualStudio)"
  781.         Sources                        ="@(Link)"
  782.  
  783.         AdditionalDependencies         ="%(Link.AdditionalDependencies)"
  784.         AdditionalLibraryDirectories   ="%(Link.AdditionalLibraryDirectories)"
  785.         AdditionalManifestDependencies ="%(Link.AdditionalManifestDependencies)"
  786.         AdditionalOptions              ="%(Link.AdditionalOptions)"
  787.         AddModuleNamesToAssembly       ="%(Link.AddModuleNamesToAssembly)"
  788.         AllowIsolation                 ="%(Link.AllowIsolation)"
  789.         AppContainer                   ="%(Link.AppContainer)"
  790.         AssemblyDebug                  ="%(Link.AssemblyDebug)"
  791.         AssemblyLinkResource           ="%(Link.AssemblyLinkResource)"
  792.         BaseAddress                    ="%(Link.BaseAddress)"
  793.         ControlFlowGuard               ="$(LinkControlFlowGuard)"
  794.         CLRImageType                   ="%(Link.CLRImageType)"
  795.         CLRSupportLastError            ="%(Link.CLRSupportLastError)"
  796.         CLRThreadAttribute             ="%(Link.CLRThreadAttribute)"
  797.         CLRUnmanagedCodeCheck          ="%(Link.CLRUnmanagedCodeCheck)"
  798.         CreateHotPatchableImage        ="%(Link.CreateHotPatchableImage)"
  799.         DataExecutionPrevention        ="%(Link.DataExecutionPrevention)"
  800.         DelayLoadDLLs                  ="%(Link.DelayLoadDLLs)"
  801.         DelaySign                      ="$(LinkDelaySign)"
  802.         Driver                         ="%(Link.Driver)"
  803.         EmbedManagedResourceFile       ="@(_EmbedManagedResourceFile)"
  804.         EnableCOMDATFolding            ="%(Link.EnableCOMDATFolding)"
  805.         EnableUAC                      ="%(Link.EnableUAC)"
  806.         EntryPointSymbol               ="%(Link.EntryPointSymbol)"
  807.         LinkErrorReporting             ="%(Link.LinkErrorReporting)"
  808.         FixedBaseAddress               ="%(Link.FixedBaseAddress)"
  809.         ForceFileOutput                ="%(Link.ForceFileOutput)"
  810.         ForceSymbolReferences          ="%(Link.ForceSymbolReferences)"
  811.         FunctionOrder                  ="%(Link.FunctionOrder)"
  812.         GenerateDebugInformation       ="%(Link.GenerateDebugInformation)"
  813.         GenerateManifest               ="$(GenerateManifest)"
  814.         GenerateMapFile                ="%(Link.GenerateMapFile)"
  815.         GenerateWindowsMetadata        ="$(_GenerateWindowsMetadata)"
  816.         WindowsMetadataFile            ="%(Link.WindowsMetadataFile)"
  817.         HeapCommitSize                 ="%(Link.HeapCommitSize)"
  818.         HeapReserveSize                ="%(Link.HeapReserveSize)"
  819.         IgnoreAllDefaultLibraries      ="%(Link.IgnoreAllDefaultLibraries)"
  820.         IgnoreEmbeddedIDL              ="%(Link.IgnoreEmbeddedIDL)"
  821.         IgnoreSpecificDefaultLibraries ="%(Link.IgnoreSpecificDefaultLibraries)"
  822.         ImageHasSafeExceptionHandlers  ="%(Link.ImageHasSafeExceptionHandlers)"
  823.         ImportLibrary                  ="%(Link.ImportLibrary)"
  824.         KeyContainer                   ="%(Link.KeyContainer)"
  825.         KeyFile                        ="$(LinkKeyFile)"
  826.         LargeAddressAware              ="%(Link.LargeAddressAware)"
  827.         LinkDLL                        ="%(Link.LinkDLL)"
  828.         LinkIncremental                ="$(LinkIncremental)"
  829.         LinkStatus                     ="%(Link.LinkStatus)"
  830.         LinkTimeCodeGeneration         ="%(Link.LinkTimeCodeGeneration)"
  831.         ManifestFile                   ="%(Link.ManifestFile)"
  832.         ManifestEmbed                  ="%(Link.ManifestEmbed)"
  833.         ManifestInput                  ="%(Link.ManifestInput)"
  834.         MapExports                     ="%(Link.MapExports)"
  835.         MapFileName                    ="%(Link.MapFileName)"
  836.         MergedIDLBaseFileName          ="%(Link.MergedIDLBaseFileName)"
  837.         MergeSections                  ="%(Link.MergeSections)"
  838.         MidlCommandFile                ="%(Link.MidlCommandFile)"
  839.         MinimumRequiredVersion         ="%(Link.MinimumRequiredVersion)"
  840.         ModuleDefinitionFile           ="%(Link.ModuleDefinitionFile)"
  841.         MSDOSStubFileName              ="%(Link.MSDOSStubFileName)"
  842.         Natvis                         ="@(Natvis)"
  843.         OptimizeReferences             ="%(Link.OptimizeReferences)"
  844.         OutputFile                     ="%(Link.OutputFile)"
  845.         PreventDllBinding              ="%(Link.PreventDllBinding)"
  846.         Profile                        ="%(Link.Profile)"
  847.         ProfileGuidedDatabase          ="%(Link.ProfileGuidedDatabase)"
  848.         ProgramDatabaseFile            ="%(Link.ProgramDatabaseFile)"
  849.         RandomizedBaseAddress          ="%(Link.RandomizedBaseAddress)"
  850.         NoEntryPoint                   ="%(Link.NoEntryPoint)"
  851.         SectionAlignment               ="%(Link.SectionAlignment)"
  852.         SetChecksum                    ="%(Link.SetChecksum)"
  853.         ShowProgress                   ="%(Link.ShowProgress)"
  854.         SignHash                       ="%(Link.SignHash)"
  855.         SpecifySectionAttributes       ="%(Link.SpecifySectionAttributes)"
  856.         StackCommitSize                ="%(Link.StackCommitSize)"
  857.         StackReserveSize               ="%(Link.StackReserveSize)"
  858.         StripPrivateSymbols            ="%(Link.StripPrivateSymbols)"
  859.         SubSystem                      ="%(Link.SubSystem)"
  860.         SupportUnloadOfDelayLoadedDLL  ="%(Link.SupportUnloadOfDelayLoadedDLL)"
  861.         SupportNobindOfDelayLoadedDLL  ="%(Link.SupportNobindOfDelayLoadedDLL)"
  862.         SuppressStartupBanner          ="%(Link.SuppressStartupBanner)"
  863.         SwapRunFromCD                  ="%(Link.SwapRunFromCD)"
  864.         SwapRunFromNET                 ="%(Link.SwapRunFromNET)"
  865.         TargetMachine                  ="%(Link.TargetMachine)"
  866.         TerminalServerAware            ="%(Link.TerminalServerAware)"
  867.         TreatLinkerWarningAsErrors     ="%(Link.TreatLinkerWarningAsErrors)"
  868.         TurnOffAssemblyGeneration      ="%(Link.TurnOffAssemblyGeneration)"
  869.         TypeLibraryFile                ="%(Link.TypeLibraryFile)"
  870.         TypeLibraryResourceID          ="%(Link.TypeLibraryResourceID)"
  871.         UACExecutionLevel              ="%(Link.UACExecutionLevel)"
  872.         UACUIAccess                    ="%(Link.UACUIAccess)"
  873.         Version                        ="%(Link.Version)"
  874.         WindowsMetadataLinkKeyFile     ="%(Link.WindowsMetadataLinkKeyFile)"
  875.         WindowsMetadataKeyContainer    ="%(Link.WindowsMetadataKeyContainer)"
  876.         WindowsMetadataLinkDelaySign   ="%(Link.WindowsMetadataLinkDelaySign)"
  877.         WindowsMetadataSignHash        ="%(Link.WindowsMetadataSignHash)"
  878.  
  879.         TrackerLogDirectory            ="%(Link.TrackerLogDirectory)"
  880.  
  881.         TLogReadFiles                  ="@(LinkTLogReadFiles)"
  882.         TLogWriteFiles                 ="@(LinkTLogWriteFiles)"
  883.         ToolExe                        ="$(LinkToolExe)"
  884.         ToolPath                       ="$(LinkToolPath)"
  885.         TrackFileAccess                ="$(TrackFileAccess)"
  886.         MinimalRebuildFromTracking     ="$(Link_MinimalRebuildFromTracking)"
  887.         ToolArchitecture               ="$(LinkToolArchitecture)"
  888.         TrackerFrameworkPath           ="$(LinkTrackerFrameworkPath)"
  889.         TrackerSdkPath                 ="$(LinkTrackerSdkPath)"
  890.         TrackedInputFilesToIgnore      ="@(LinkNoDependencies)"
  891.  
  892.         AcceptableNonZeroExitCodes     ="%(Link.AcceptableNonZeroExitCodes)"
  893.         YieldDuringToolExecution       ="$(LinkYieldDuringToolExecution)"
  894.     >
  895.     </Link>
  896.  
  897.     <Message Text="$(MSBuildProjectFile) -&gt; $(TargetPath)" Importance="High" />
  898.     <VCMessage Code="MSB8033" Type="Message" Arguments="$(MSBuildProjectFile);%(Link.ProgramDatabaseFile)" Importance="High"
  899.              Condition="%(Link.GenerateDebugInformation) == 'DebugFastLink'"/>
  900.     <VCMessage Code="MSB8034" Type="Message" Arguments="$(MSBuildProjectFile);%(Link.ProgramDatabaseFile)" Importance="High"
  901.              Condition="%(Link.GenerateDebugInformation) == 'true'"/>
  902.   </Target>
  903.  
  904.   <Target Name="CreateWinMD"
  905.           Condition="'@(Link)' != '' and '$(GenerateBuildCompilePassWinMD)' == 'true' and '$(OnlyCreateWinMD)' == 'true'"
  906.           DependsOnTargets="ComputeLinkSwitches">
  907.  
  908.     <PropertyGroup>
  909.       <LinkToolArchitecture Condition="'$(LinkToolArchitecture)' == ''">$(VCToolArchitecture)</LinkToolArchitecture>
  910.     </PropertyGroup>
  911.  
  912.     <ItemGroup>
  913.       <Link>
  914.         <ProfileGuidedDatabase Condition="'%(Link.LinkTimeCodeGeneration)' != 'PGOptimization' and
  915.                                          '%(Link.LinkTimeCodeGeneration)' != 'PGUpdate' and
  916.                                          '%(Link.LinkTimeCodeGeneration)' != 'PGInstrument'"></ProfileGuidedDatabase>
  917.  
  918.         <!-- Generate full PDB. For now call link without /debug:fastlink. Later will'll call a special tool to create merge pdbs  -->
  919.        <GenerateDebugInformation Condition="'%(Link.GenerateDebugInformation)' == 'DebugFastLink' and '%(Link.FullProgramDatabaseFile)' == 'true'">true</GenerateDebugInformation>
  920.      </Link>
  921.    </ItemGroup>
  922.  
  923.    <Link
  924.        BuildingInIDE                  ="$(BuildingInsideVisualStudio)"
  925.        Sources                        ="@(Link)"
  926.  
  927.        AdditionalDependencies         ="%(Link.AdditionalDependencies)"
  928.        AdditionalLibraryDirectories   ="%(Link.AdditionalLibraryDirectories)"
  929.        AdditionalManifestDependencies ="%(Link.AdditionalManifestDependencies)"
  930.        AdditionalOptions              ="%(Link.AdditionalOptions)"
  931.        AddModuleNamesToAssembly       ="%(Link.AddModuleNamesToAssembly)"
  932.        AllowIsolation                 ="%(Link.AllowIsolation)"
  933.        AppContainer                   ="%(Link.AppContainer)"
  934.        AssemblyDebug                  ="%(Link.AssemblyDebug)"
  935.        AssemblyLinkResource           ="%(Link.AssemblyLinkResource)"
  936.        BaseAddress                    ="%(Link.BaseAddress)"
  937.        ControlFlowGuard               ="$(LinkControlFlowGuard)"
  938.        CLRImageType                   ="%(Link.CLRImageType)"
  939.        CLRSupportLastError            ="%(Link.CLRSupportLastError)"
  940.        CLRThreadAttribute             ="%(Link.CLRThreadAttribute)"
  941.        CLRUnmanagedCodeCheck          ="%(Link.CLRUnmanagedCodeCheck)"
  942.        CreateHotPatchableImage        ="%(Link.CreateHotPatchableImage)"
  943.        DataExecutionPrevention        ="%(Link.DataExecutionPrevention)"
  944.        DelayLoadDLLs                  ="%(Link.DelayLoadDLLs)"
  945.        DelaySign                      ="$(LinkDelaySign)"
  946.        Driver                         ="%(Link.Driver)"
  947.        EmbedManagedResourceFile       ="@(_EmbedManagedResourceFile)"
  948.        EnableCOMDATFolding            ="%(Link.EnableCOMDATFolding)"
  949.        EnableUAC                      ="%(Link.EnableUAC)"
  950.        EntryPointSymbol               ="%(Link.EntryPointSymbol)"
  951.        LinkErrorReporting             ="%(Link.LinkErrorReporting)"
  952.        FixedBaseAddress               ="%(Link.FixedBaseAddress)"
  953.        ForceFileOutput                ="%(Link.ForceFileOutput)"
  954.        ForceSymbolReferences          ="%(Link.ForceSymbolReferences)"
  955.        FunctionOrder                  ="%(Link.FunctionOrder)"
  956.        GenerateDebugInformation       ="%(Link.GenerateDebugInformation)"
  957.        GenerateManifest               ="$(GenerateManifest)"
  958.        GenerateMapFile                ="%(Link.GenerateMapFile)"
  959.        GenerateWindowsMetadata        ="Only"
  960.        WindowsMetadataFile            ="%(Link.WindowsMetadataFile)"
  961.        HeapCommitSize                 ="%(Link.HeapCommitSize)"
  962.        HeapReserveSize                ="%(Link.HeapReserveSize)"
  963.        IgnoreAllDefaultLibraries      ="%(Link.IgnoreAllDefaultLibraries)"
  964.        IgnoreEmbeddedIDL              ="%(Link.IgnoreEmbeddedIDL)"
  965.        IgnoreSpecificDefaultLibraries ="%(Link.IgnoreSpecificDefaultLibraries)"
  966.        ImageHasSafeExceptionHandlers  ="%(Link.ImageHasSafeExceptionHandlers)"
  967.        ImportLibrary                  ="%(Link.ImportLibrary)"
  968.        KeyContainer                   ="%(Link.KeyContainer)"
  969.        KeyFile                        ="$(LinkKeyFile)"
  970.        LargeAddressAware              ="%(Link.LargeAddressAware)"
  971.        LinkDLL                        ="%(Link.LinkDLL)"
  972.        LinkIncremental                ="$(LinkIncremental)"
  973.        LinkStatus                     ="%(Link.LinkStatus)"
  974.        LinkTimeCodeGeneration         ="%(Link.LinkTimeCodeGeneration)"
  975.        ManifestFile                   ="%(Link.ManifestFile)"
  976.        ManifestEmbed                  ="%(Link.ManifestEmbed)"
  977.        ManifestInput                  ="%(Link.ManifestInput)"
  978.        MapExports                     ="%(Link.MapExports)"
  979.        MapFileName                    ="%(Link.MapFileName)"
  980.        MergedIDLBaseFileName          ="%(Link.MergedIDLBaseFileName)"
  981.        MergeSections                  ="%(Link.MergeSections)"
  982.        MidlCommandFile                ="%(Link.MidlCommandFile)"
  983.        MinimumRequiredVersion         ="%(Link.MinimumRequiredVersion)"
  984.        ModuleDefinitionFile           ="%(Link.ModuleDefinitionFile)"
  985.        MSDOSStubFileName              ="%(Link.MSDOSStubFileName)"
  986.        Natvis                         ="@(Natvis)"
  987.        OptimizeReferences             ="%(Link.OptimizeReferences)"
  988.        OutputFile                     ="%(Link.OutputFile)"
  989.        PreventDllBinding              ="%(Link.PreventDllBinding)"
  990.        Profile                        ="%(Link.Profile)"
  991.        ProfileGuidedDatabase          ="%(Link.ProfileGuidedDatabase)"
  992.        ProgramDatabaseFile            ="%(Link.ProgramDatabaseFile)"
  993.        RandomizedBaseAddress          ="%(Link.RandomizedBaseAddress)"
  994.        NoEntryPoint                   ="%(Link.NoEntryPoint)"
  995.        SectionAlignment               ="%(Link.SectionAlignment)"
  996.        SetChecksum                    ="%(Link.SetChecksum)"
  997.        ShowProgress                   ="%(Link.ShowProgress)"
  998.        SignHash                       ="%(Link.SignHash)"
  999.        SpecifySectionAttributes       ="%(Link.SpecifySectionAttributes)"
  1000.        StackCommitSize                ="%(Link.StackCommitSize)"
  1001.        StackReserveSize               ="%(Link.StackReserveSize)"
  1002.        StripPrivateSymbols            ="%(Link.StripPrivateSymbols)"
  1003.        SubSystem                      ="%(Link.SubSystem)"
  1004.        SupportUnloadOfDelayLoadedDLL  ="%(Link.SupportUnloadOfDelayLoadedDLL)"
  1005.        SupportNobindOfDelayLoadedDLL  ="%(Link.SupportNobindOfDelayLoadedDLL)"
  1006.        SuppressStartupBanner          ="%(Link.SuppressStartupBanner)"
  1007.        SwapRunFromCD                  ="%(Link.SwapRunFromCD)"
  1008.        SwapRunFromNET                 ="%(Link.SwapRunFromNET)"
  1009.        TargetMachine                  ="%(Link.TargetMachine)"
  1010.        TerminalServerAware            ="%(Link.TerminalServerAware)"
  1011.        TreatLinkerWarningAsErrors     ="%(Link.TreatLinkerWarningAsErrors)"
  1012.        TurnOffAssemblyGeneration      ="%(Link.TurnOffAssemblyGeneration)"
  1013.        TypeLibraryFile                ="%(Link.TypeLibraryFile)"
  1014.        TypeLibraryResourceID          ="%(Link.TypeLibraryResourceID)"
  1015.        UACExecutionLevel              ="%(Link.UACExecutionLevel)"
  1016.        UACUIAccess                    ="%(Link.UACUIAccess)"
  1017.        Version                        ="%(Link.Version)"
  1018.        WindowsMetadataLinkKeyFile     ="%(Link.WindowsMetadataLinkKeyFile)"
  1019.        WindowsMetadataKeyContainer    ="%(Link.WindowsMetadataKeyContainer)"
  1020.        WindowsMetadataLinkDelaySign   ="%(Link.WindowsMetadataLinkDelaySign)"
  1021.        WindowsMetadataSignHash        ="%(Link.WindowsMetadataSignHash)"
  1022.  
  1023.        TrackerLogDirectory            ="%(Link.TrackerLogDirectory)"
  1024.  
  1025.        TLogReadFiles                  ="@(LinkTLogReadFiles)"
  1026.        TLogWriteFiles                 ="@(LinkTLogWriteFiles)"
  1027.        ToolExe                        ="$(LinkToolExe)"
  1028.        ToolPath                       ="$(LinkToolPath)"
  1029.        TrackFileAccess                ="$(TrackFileAccess)"
  1030.        MinimalRebuildFromTracking     ="$(Link_MinimalRebuildFromTracking)"
  1031.        ToolArchitecture               ="$(LinkToolArchitecture)"
  1032.        TrackerFrameworkPath           ="$(LinkTrackerFrameworkPath)"
  1033.        TrackerSdkPath                 ="$(LinkTrackerSdkPath)"
  1034.        TrackedInputFilesToIgnore      ="@(LinkNoDependencies)"
  1035.  
  1036.        AcceptableNonZeroExitCodes     ="%(Link.AcceptableNonZeroExitCodes)"
  1037.        YieldDuringToolExecution       ="$(LinkYieldDuringToolExecution)"
  1038.    >
  1039.    </Link>
  1040.    <OnError Condition="'$(OnXamlPreCompileErrorTarget)' != ''" ExecuteTargets="$(OnXamlPreCompileErrorTarget)" />
  1041.  </Target>
  1042.  
  1043.  <Target Name="CreateFullDebugSymbols" DependsOnTargets="DebugSymbolsProjectOutputGroup">
  1044.    <VCMessage Code="MSB8035" Type="Message" Arguments="$(MSBuildProjectFile);%(DebugSymbolsProjectOutputGroupOutput.FullPath)" Importance="High" />
  1045.  
  1046.    <!-- Calling target DebugSymbolsProjectOutputGroup to get the pdb path -->
  1047.    <!-- mspdbcmd returns error if it is already a full pdb. -->
  1048.    <Exec Command="mspdbcmf.exe /nologo &quot;%(DebugSymbolsProjectOutputGroupOutput.FullPath)&quot;" IgnoreExitCode="true" />
  1049.  </Target>
  1050.  
  1051.  <!-- *******************************************************************************************
  1052.        Lib
  1053.       ******************************************************************************************* -->
  1054.  
  1055.  <Target Name="Lib"
  1056.          Condition="'@(Lib)' != ''">
  1057.    <ItemGroup>
  1058.      <Lib>
  1059.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1060.      </Lib>
  1061.    </ItemGroup>
  1062.  
  1063.    <PropertyGroup>
  1064.      <LibToolArchitecture Condition="'$(LibToolArchitecture)' == ''">$(VCToolArchitecture)</LibToolArchitecture>
  1065.    </PropertyGroup>
  1066.  
  1067.    <LIB
  1068.      Sources                         ="@(Lib)"
  1069.  
  1070.      AdditionalDependencies          ="%(Lib.AdditionalDependencies)"
  1071.      AdditionalLibraryDirectories    ="%(Lib.AdditionalLibraryDirectories)"
  1072.      AdditionalOptions               ="$(LibAdditionalOptions)"
  1073.      DisplayLibrary                  ="%(Lib.DisplayLibrary)"
  1074.      ErrorReporting                  ="%(Lib.LinkErrorReporting)"
  1075.      ExportNamedFunctions            ="%(Lib.ExportNamedFunctions)"
  1076.      ForceSymbolReferences           ="%(Lib.ForceSymbolReferences)"
  1077.      IgnoreAllDefaultLibraries       ="%(Lib.IgnoreAllDefaultLibraries)"
  1078.      IgnoreSpecificDefaultLibraries  ="%(Lib.IgnoreSpecificDefaultLibraries)"
  1079.      LinkTimeCodeGeneration          ="%(Lib.LinkTimeCodeGeneration)"
  1080.      ModuleDefinitionFile            ="%(Lib.ModuleDefinitionFile)"
  1081.      Name                            ="%(Lib.Name)"
  1082.      OutputFile                      ="%(Lib.OutputFile)"
  1083.      RemoveObjects                   ="%(Lib.RemoveObjects)"
  1084.      SubSystem                       ="%(Lib.SubSystem)"
  1085.      SuppressStartupBanner           ="%(Lib.SuppressStartupBanner)"
  1086.      TargetMachine                   ="%(Lib.TargetMachine)"
  1087.      TreatLibWarningAsErrors         ="%(Lib.TreatLibWarningAsErrors)"
  1088.      Verbose                         ="%(Lib.Verbose)"
  1089.  
  1090.      TrackerLogDirectory             ="%(Lib.TrackerLogDirectory)"
  1091.  
  1092.      TLogReadFiles                   ="@(LIBTLogReadFiles)"
  1093.      TLogWriteFiles                  ="@(LIBTLogWriteFiles)"
  1094.      ToolExe                         ="$(LIBToolExe)"
  1095.      ToolPath                        ="$(LIBToolPath)"
  1096.      TrackFileAccess                 ="$(TrackFileAccess)"
  1097.      MinimalRebuildFromTracking      ="%(Lib.MinimalRebuildFromTracking)"
  1098.      ToolArchitecture                ="$(LibToolArchitecture)"
  1099.      TrackerFrameworkPath            ="$(LibTrackerFrameworkPath)"
  1100.      TrackerSdkPath                  ="$(LibTrackerSdkPath)"
  1101.      TrackedInputFilesToIgnore       ="@(LibNoDependencies)"
  1102.  
  1103.      AcceptableNonZeroExitCodes      ="%(Lib.AcceptableNonZeroExitCodes)"
  1104.      >
  1105.    </LIB>
  1106.  
  1107.    <Message Text="$(MSBuildProjectFile) -&gt; $(TargetPath)" Importance="High" />
  1108.  </Target>
  1109.  
  1110.  <Target Name="ImpLib"
  1111.          Condition="'@(ImpLib)' != '' and '$(IgnoreImportLibrary)' != 'true' and '$(GenerateImportLib)' == 'true'">
  1112.    <ItemGroup>
  1113.      <ImpLib>
  1114.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1115.      </ImpLib>
  1116.    </ItemGroup>
  1117.  
  1118.    <PropertyGroup>
  1119.      <LibUseEmptyDef Condition="'%(ImpLib.ModuleDefinitionFile)' == ''">/DEF:</LibUseEmptyDef>
  1120.      <LibToolArchitecture Condition="'$(LibToolArchitecture)' == ''">$(VCToolArchitecture)</LibToolArchitecture>
  1121.    </PropertyGroup>
  1122.  
  1123.    <LIB
  1124.      Sources                         ="@(ImpLib)"
  1125.  
  1126.      AdditionalDependencies          ="%(ImpLib.AdditionalDependencies)"
  1127.      AdditionalLibraryDirectories    ="%(ImpLib.AdditionalLibraryDirectories)"
  1128.      AdditionalOptions               ="$(ImpLibAdditionalOptions) $(LibUseEmptyDef)"
  1129.      DisplayLibrary                  ="%(ImpLib.DisplayLibrary)"
  1130.      ErrorReporting                  ="%(ImpLib.LinkErrorReporting)"
  1131.      ExportNamedFunctions            ="%(ImpLib.ExportNamedFunctions)"
  1132.      ForceSymbolReferences           ="%(ImpLib.ForceSymbolReferences)"
  1133.      IgnoreAllDefaultLibraries       ="%(ImpLib.IgnoreAllDefaultLibraries)"
  1134.      IgnoreSpecificDefaultLibraries  ="%(ImpLib.IgnoreSpecificDefaultLibraries)"
  1135.      LinkTimeCodeGeneration          ="%(ImpLib.LinkTimeCodeGeneration)"
  1136.      ModuleDefinitionFile            ="%(ImpLib.ModuleDefinitionFile)"
  1137.      Name                            ="%(ImpLib.Name)"
  1138.      OutputFile                      ="%(ImpLib.OutputFile)"
  1139.      RemoveObjects                   ="%(ImpLib.RemoveObjects)"
  1140.      SubSystem                       ="%(ImpLib.SubSystem)"
  1141.      SuppressStartupBanner           ="%(ImpLib.SuppressStartupBanner)"
  1142.      TargetMachine                   ="%(ImpLib.TargetMachine)"
  1143.      TreatLibWarningAsErrors         ="%(ImpLib.TreatLibWarningAsErrors)"
  1144.      Verbose                         ="%(ImpLib.Verbose)"
  1145.  
  1146.      TrackerLogDirectory             ="%(ImpLib.TrackerLogDirectory)"
  1147.  
  1148.      TLogReadFiles                   ="@(LIBTLogReadFiles)"
  1149.      TLogWriteFiles                  ="@(LIBTLogWriteFiles)"
  1150.      ToolExe                         ="$(LIBToolExe)"
  1151.      ToolPath                        ="$(LIBToolPath)"
  1152.      TrackFileAccess                 ="$(TrackFileAccess)"
  1153.      MinimalRebuildFromTracking      ="%(ImpLib.MinimalRebuildFromTracking)"
  1154.      ToolArchitecture                ="$(LibToolArchitecture)"
  1155.      TrackerFrameworkPath            ="$(LibTrackerFrameworkPath)"
  1156.      TrackerSdkPath                  ="$(LibTrackerSdkPath)"
  1157.      TrackedInputFilesToIgnore       ="@(LibNoDependencies)"
  1158.  
  1159.      AcceptableNonZeroExitCodes      ="%(ImpLib.AcceptableNonZeroExitCodes)"
  1160.      >
  1161.    </LIB>
  1162.  
  1163.  </Target>
  1164.  
  1165.  <!-- *******************************************************************************************
  1166.        FXC
  1167.       ******************************************************************************************* -->
  1168.  <PropertyGroup Condition="'$(FxCompileBeforeTargets)' == '' and '$(FxCompileAfterTargets)' == '' and '$(ConfigurationType)' != 'Makefile'">
  1169.    <FxCompileBeforeTargets>Midl</FxCompileBeforeTargets>
  1170.    <FxCompileAfterTargets>CustomBuild</FxCompileAfterTargets>
  1171.  </PropertyGroup>
  1172.  
  1173.  <Target
  1174.    Name="FxExport"
  1175.    BeforeTargets="$(FxCompileBeforeTargets)"
  1176.    AfterTargets="$(FxCompileAfterTargets)"
  1177.    Condition="'@(FxCompile)' != ''"
  1178.    DependsOnTargets="_SelectedFiles;MakeDirsForFxc">
  1179.    <ItemGroup Condition="'@(SelectedFiles)' != ''">
  1180.      <FxCompile Remove="@(FxCompile)" Condition="'%(Identity)' != '@(SelectedFiles)'" />
  1181.    </ItemGroup>
  1182.  
  1183.    <ItemGroup>
  1184.      <FxCompile Condition="'@(FxCompile)' != ''">
  1185.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1186.      </FxCompile>
  1187.    </ItemGroup>
  1188.  
  1189.    <ItemGroup>
  1190.      <FxCompile Condition="'%(FxCompile.CompileD2DCustomEffect)'=='true'">
  1191.        <OriginalPreprocessorDefinitions>%(FxCompile.PreprocessorDefinitions)</OriginalPreprocessorDefinitions>
  1192.        <PreprocessorDefinitions>D2D_FUNCTION;D2D_ENTRY=%(FxCompile.EntryPointName);%(FxCompile.OriginalPreprocessorDefinitions)</PreprocessorDefinitions>
  1193.      </FxCompile>
  1194.    </ItemGroup>
  1195.  
  1196.    <PropertyGroup>
  1197.      <FxCompileToolArchitecture Condition="'$(FxCompileToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</FxCompileToolArchitecture>
  1198.      <D2DCustomEffectExportFile Condition="'%(FxCompile.CompileD2DCustomEffect)'=='true'">$(OutDir)%(FxCompile.Filename).fxlib</D2DCustomEffectExportFile>
  1199.    </PropertyGroup>
  1200.  
  1201.    <FXC
  1202.        Condition                       = "'@(FxCompile)' != '' and '%(FxCompile.ExcludedFromBuild)'!='true' and '%(FxCompile.CompileD2DCustomEffect)'=='true'"
  1203.        Source                          = "%(FxCompile.Identity)"
  1204.        ToolPath                        = "$(FXCToolPath)"
  1205.        AdditionalIncludeDirectories    = "%(FxCompile.AdditionalIncludeDirectories)"
  1206.        SuppressStartupBanner           = "%(FxCompile.SuppressStartupBanner)"
  1207.        TreatWarningAsError             = "%(FxCompile.TreatWarningAsError)"
  1208.        PreprocessorDefinitions         = "%(FxCompile.PreprocessorDefinitions)"
  1209.        AdditionalOptions               = "%(FxCompile.AdditionalOptions)"
  1210.        DisableOptimizations            = "%(FxCompile.DisableOptimizations)"
  1211.        EnableDebuggingInformation      = "%(FxCompile.EnableDebuggingInformation)"
  1212.        GenerateExportFile              = "$(D2DCustomEffectExportFile)"
  1213.        GenerateExportShaderProfile     = "%(FxCompile.ShaderType);%(FxCompile.ShaderModel)"
  1214.  
  1215.        ToolArchitecture                = "$(FxCompileToolArchitecture)"
  1216.        TrackerLogDirectory             = "%(FxCompile.TrackerLogDirectory)"
  1217.        TrackedInputFilesToIgnore       = "@(FxCompileNoDependencies)"
  1218.        TrackFileAccess                 = "$(TrackFileAccess)"
  1219.        MinimalRebuildFromTracking      = "%(FxCompile.MinimalRebuildFromTracking)"
  1220.      />
  1221.  
  1222.    <WriteLinesToFile File="$(TLogLocation)$(ProjectName).write.1u.tlog" Lines="@(FxCompile->'^%(Identity)');@(FxCompile->MetaData('HeaderFileOutput')->FullPath()->Distinct());@(FxCompile->MetaData('ObjectFileOutput')->FullPath()->Distinct());@(FxCompile->MetaData('AssemblerOutputFile')->FullPath()->Distinct())" Encoding="Unicode"/>
  1223.  </Target>
  1224.  
  1225.  <Target
  1226.    Name="FxCompile"
  1227.    BeforeTargets="$(FxCompileBeforeTargets)"
  1228.    AfterTargets="$(FxCompileAfterTargets)"
  1229.    Condition="'@(FxCompile)' != ''"
  1230.    DependsOnTargets="_SelectedFiles;MakeDirsForFxc;FxExport">
  1231.    <ItemGroup Condition="'@(SelectedFiles)' != ''">
  1232.      <FxCompile Remove="@(FxCompile)" Condition="'%(Identity)' != '@(SelectedFiles)'" />
  1233.    </ItemGroup>
  1234.  
  1235.    <ItemGroup>
  1236.      <FxCompile Condition="'@(FxCompile)' != ''">
  1237.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1238.      </FxCompile>
  1239.    </ItemGroup>
  1240.  
  1241.    <ItemGroup>
  1242.      <FxCompile Condition="'%(FxCompile.CompileD2DCustomEffect)'=='true'">
  1243.        <PreprocessorDefinitions>D2D_FULL_SHADER;D2D_ENTRY=%(FxCompile.EntryPointName);%(FxCompile.OriginalPreprocessorDefinitions)</PreprocessorDefinitions>
  1244.      </FxCompile>
  1245.    </ItemGroup>
  1246.  
  1247.    <PropertyGroup>
  1248.      <FxCompileToolArchitecture Condition="'$(FxCompileToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</FxCompileToolArchitecture>
  1249.      <D2DCustomEffectExportFile Condition="'%(FxCompile.CompileD2DCustomEffect)'=='true'">$(OutDir)%(FxCompile.Filename).fxlib</D2DCustomEffectExportFile>
  1250.    </PropertyGroup>
  1251.  
  1252.    <FXC
  1253.        Condition                       = "'@(FxCompile)' != '' and '%(FxCompile.ExcludedFromBuild)'!='true'"
  1254.        Source                          = "%(FxCompile.Identity)"
  1255.        ToolPath                        = "$(FXCToolPath)"
  1256.        AdditionalIncludeDirectories    = "%(FxCompile.AdditionalIncludeDirectories)"
  1257.        SuppressStartupBanner           = "%(FxCompile.SuppressStartupBanner)"
  1258.        EntryPointName                  = "%(FxCompile.EntryPointName)"
  1259.        TreatWarningAsError             = "%(FxCompile.TreatWarningAsError)"
  1260.        ShaderType                      = "%(FxCompile.ShaderType)"
  1261.        ShaderModel                     = "%(FxCompile.ShaderModel)"
  1262.        AllResourcesBound               = "%(FxCompile.AllResourcesBound)"
  1263.        EnableUnboundedDescriptorTables = "%(FxCompile.EnableUnboundedDescriptorTables)"
  1264.        SetRootSignature                = "%(FxCompile.SetRootSignature)"
  1265.        PreprocessorDefinitions         = "%(FxCompile.PreprocessorDefinitions)"
  1266.        HeaderFileOutput                = "%(FxCompile.HeaderFileOutput)"
  1267.        ObjectFileOutput                = "%(FxCompile.ObjectFileOutput)"
  1268.        AssemblerOutput                 = "%(FxCompile.AssemblerOutput)"
  1269.        AssemblerOutputFile             = "%(FxCompile.AssemblerOutputFile)"
  1270.        VariableName                    = "%(FxCompile.VariableName)"
  1271.        AdditionalOptions               = "%(FxCompile.AdditionalOptions)"
  1272.        DisableOptimizations            = "%(FxCompile.DisableOptimizations)"
  1273.        EnableDebuggingInformation      = "%(FxCompile.EnableDebuggingInformation)"
  1274.        ConsumeExportFile               = "$(D2DCustomEffectExportFile)"
  1275.  
  1276.        ToolArchitecture                = "$(FxCompileToolArchitecture)"
  1277.        TrackerLogDirectory             = "%(FxCompile.TrackerLogDirectory)"
  1278.        TrackedInputFilesToIgnore       = "@(FxCompileNoDependencies)"
  1279.        TrackFileAccess                 = "$(TrackFileAccess)"
  1280.        MinimalRebuildFromTracking      = "%(FxCompile.MinimalRebuildFromTracking)"
  1281.      />
  1282.  
  1283.    <WriteLinesToFile File="$(TLogLocation)$(ProjectName).write.1u.tlog" Lines="@(FxCompile->'^%(Identity)');@(FxCompile->MetaData('HeaderFileOutput')->FullPath()->Distinct());@(FxCompile->MetaData('ObjectFileOutput')->FullPath()->Distinct());@(FxCompile->MetaData('AssemblerOutputFile')->FullPath()->Distinct())" Encoding="Unicode"/>
  1284.  </Target>
  1285.  
  1286.  <!-- *******************************************************************************************
  1287.        MIDL
  1288.       ******************************************************************************************* -->
  1289.  <Target Name="Midl"
  1290.          Condition="'@(Midl)' != ''"
  1291.          DependsOnTargets="SelectMidl">
  1292.  
  1293.    <ItemGroup>
  1294.      <Midl Condition="'@(Midl)' != ''">
  1295.        <MinimalRebuildFromTracking   Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1296.      </Midl>
  1297.    </ItemGroup>
  1298.  
  1299.    <PropertyGroup>
  1300.      <MidlToolArchitecture Condition="'$(MidlToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</MidlToolArchitecture>
  1301.    </PropertyGroup>
  1302.  
  1303.    <ItemGroup>
  1304.      <MidlNoDependencies Condition="'@(MidlNoDependencies)' == '' and '%(ClInclude.NoDependency)' == 'true'" Include="@(ClInclude)"/>
  1305.      <MidlNoDependencies Condition="'$(NoDependencies)' != ''" Include="$(NoDependencies)" />
  1306.      <MidlNoDependencies Condition="'%(Midl.DllDataFileName)' != '' and '%(Midl.OutputDirectory)' != ''" Include="$([System.IO.Path]::Combine($(MSBuildProjectDirectory), %(Midl.OutputDirectory), %(Midl.DllDataFileName)))" />
  1307.      <MidlNoDependencies Condition="'%(Midl.DllDataFileName)' == '' and '%(Midl.OutputDirectory)' != ''" Include="$([System.IO.Path]::Combine($(MSBuildProjectDirectory), %(Midl.OutputDirectory), dlldata.c))" />
  1308.      <MidlNoDependencies Condition="'%(Midl.DllDataFileName)' == '' and '%(Midl.OutputDirectory)' == ''" Include="$([System.IO.Path]::Combine($(MSBuildProjectDirectory), dlldata.c))" />
  1309.    </ItemGroup>
  1310.  
  1311.    <MultiToolTask
  1312.      Condition                           ="'%(Midl.ExcludedFromBuild)'!='true' and '$(UseMultiToolTask)' == 'true'"
  1313.      TaskName                            ="Microsoft.Build.CPPTasks.MIDL"
  1314.      Sources                             ="@(Midl)"
  1315.  
  1316.      TrackerLogDirectory                 ="$(TLogLocation)"
  1317.      MinimalRebuildFromTracking          ="%(Midl.MinimalRebuildFromTracking)"
  1318.      ToolArchitecture                    ="$(MidlToolArchitecture)"
  1319.      TrackerFrameworkPath                ="$(MidlTrackerFrameworkPath)"
  1320.      TrackerSdkPath                      ="$(MidlTrackerSdkPath)"
  1321.      TLogReadFiles                       ="@(MIDLTLogReadFiles)"
  1322.      TLogWriteFiles                      ="@(MIDLTLogWriteFiles)"
  1323.      ToolExe                             ="$(MIDLToolExe)"
  1324.      ToolPath                            ="$(MIDLToolPath)"
  1325.      TrackFileAccess                     ="$(TrackFileAccess)"
  1326.      TrackedInputFilesToIgnore           ="@(MidlNoDependencies)"
  1327.      TrackedOutputFilesToIgnore          ="@(MidlNoDependencies)"
  1328.  
  1329.      AcceptableNonZeroExitCodes          ="%(Midl.AcceptableNonZeroExitCodes)"
  1330.      YieldDuringToolExecution            ="$(MidlYieldDuringToolExecution)"
  1331.      SchedulerVerbose                    ="$(SchedulerVerbose)"
  1332.    >
  1333.    </MultiToolTask>
  1334.  
  1335.    <MIDL
  1336.      Condition                           ="'%(Midl.ExcludedFromBuild)'!='true' and '$(UseMultiToolTask)' != 'true'"
  1337.      Source                              ="%(Midl.Identity)"
  1338.  
  1339.      AdditionalIncludeDirectories        ="%(Midl.AdditionalIncludeDirectories)"
  1340.      AdditionalMetadataDirectories       ="%(Midl.AdditionalMetadataDirectories)"
  1341.      AdditionalOptions                   ="%(Midl.AdditionalOptions)"
  1342.      ApplicationConfigurationMode        ="%(Midl.ApplicationConfigurationMode)"
  1343.      ClientStubFile                      ="%(Midl.ClientStubFile)"
  1344.      CPreprocessOptions                  ="%(Midl.CPreprocessOptions)"
  1345.      DefaultCharType                     ="%(Midl.DefaultCharType)"
  1346.      DllDataFileName                     ="%(Midl.DllDataFileName)"
  1347.      EnableErrorChecks                   ="%(Midl.EnableErrorChecks)"
  1348.      EnableWindowsRuntime                ="%(Midl.EnableWindowsRuntime)"
  1349.      Enumclass                           ="%(Midl.Enumclass)"
  1350.      ErrorCheckAllocations               ="%(Midl.ErrorCheckAllocations)"
  1351.      ErrorCheckBounds                    ="%(Midl.ErrorCheckBounds)"
  1352.      ErrorCheckEnumRange                 ="%(Midl.ErrorCheckEnumRange)"
  1353.      ErrorCheckRefPointers               ="%(Midl.ErrorCheckRefPointers)"
  1354.      ErrorCheckStubData                  ="%(Midl.ErrorCheckStubData)"
  1355.      ExcludedInputPaths                  ="$(ExcludePath)"
  1356.      GenerateClientFiles                 ="%(Midl.GenerateClientFiles)"
  1357.      GenerateServerFiles                 ="%(Midl.GenerateServerFiles)"
  1358.      GenerateStublessProxies             ="%(Midl.GenerateStublessProxies)"
  1359.      GenerateTypeLibrary                 ="%(Midl.GenerateTypeLibrary)"
  1360.      HeaderFileName                      ="%(Midl.HeaderFileName)"
  1361.      IgnoreStandardIncludePath           ="%(Midl.IgnoreStandardIncludePath)"
  1362.      InterfaceIdentifierFileName         ="%(Midl.InterfaceIdentifierFileName)"
  1363.      LocaleID                            ="%(Midl.LocaleID)"
  1364.      MkTypLibCompatible                  ="%(Midl.MkTypLibCompatible)"
  1365.      MetadataFileName                    ="%(Midl.MetadataFileName)"
  1366.      OutputDirectory                     ="%(Midl.OutputDirectory)"
  1367.      PrependWithABINamepsace             ="%(Midl.PrependWithABINamepsace)"
  1368.      PreprocessorDefinitions             ="%(Midl.PreprocessorDefinitions)"
  1369.      ProxyFileName                       ="%(Midl.ProxyFileName)"
  1370.      RedirectOutputAndErrors             ="%(Midl.RedirectOutputAndErrors)"
  1371.      ServerStubFile                      ="%(Midl.ServerStubFile)"
  1372.      StructMemberAlignment               ="%(Midl.StructMemberAlignment)"
  1373.      SuppressCompilerWarnings            ="%(Midl.SuppressCompilerWarnings)"
  1374.      SuppressStartupBanner               ="%(Midl.SuppressStartupBanner)"
  1375.      TargetEnvironment                   ="%(Midl.TargetEnvironment)"
  1376.      TypeLibFormat                       ="%(Midl.TypeLibFormat)"
  1377.      TypeLibraryName                     ="%(Midl.TypeLibraryName)"
  1378.      UndefinePreprocessorDefinitions     ="%(Midl.UndefinePreprocessorDefinitions)"
  1379.      ValidateAllParameters               ="%(Midl.ValidateAllParameters)"
  1380.      WarnAsError                         ="%(Midl.WarnAsError)"
  1381.      WarningLevel                        ="%(Midl.WarningLevel)"
  1382.  
  1383.      TrackerLogDirectory                 ="%(Midl.TrackerLogDirectory)"
  1384.      MinimalRebuildFromTracking          ="%(Midl.MinimalRebuildFromTracking)"
  1385.      ToolArchitecture                    ="$(MidlToolArchitecture)"
  1386.      TrackerFrameworkPath                ="$(MidlTrackerFrameworkPath)"
  1387.      TrackerSdkPath                      ="$(MidlTrackerSdkPath)"
  1388.      TrackedInputFilesToIgnore           ="@(MidlNoDependencies)"
  1389.  
  1390.      TLogReadFiles                       ="@(MIDLTLogReadFiles)"
  1391.      TLogWriteFiles                      ="@(MIDLTLogWriteFiles)"
  1392.      ToolExe                             ="$(MIDLToolExe)"
  1393.      ToolPath                            ="$(MIDLToolPath)"
  1394.      TrackFileAccess                     ="$(TrackFileAccess)"
  1395.  
  1396.      AcceptableNonZeroExitCodes          ="%(Midl.AcceptableNonZeroExitCodes)"
  1397.      YieldDuringToolExecution            ="$(MidlYieldDuringToolExecution)"
  1398.      >
  1399.    </MIDL>
  1400.  </Target>
  1401.  
  1402.   <!-- *******************************************************************************************
  1403.        ResourceCompile
  1404.       ******************************************************************************************* -->
  1405.  <Target Name="ResourceCompile"
  1406.          Condition="'@(ResourceCompile)' != ''"
  1407.          DependsOnTargets="SelectResourceCompile">
  1408.  
  1409.    <ItemGroup>
  1410.      <ResourceCompile Condition="'@(ResourceCompile)' != ''">
  1411.        <MinimalRebuildFromTracking   Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1412.      </ResourceCompile>
  1413.    </ItemGroup>
  1414.  
  1415.    <PropertyGroup>
  1416.      <RCToolArchitecture Condition="'$(RCToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</RCToolArchitecture>
  1417.    </PropertyGroup>
  1418.  
  1419.    <ItemGroup>
  1420.      <RCNoDependencies Condition="'@(RCNoDependencies)' == '' and '%(ClInclude.NoDependency)' == 'true'" Include="@(ClInclude)"/>
  1421.      <RCNoDependencies Condition="'@(NoDependencies)' != ''" Include="@(NoDependencies)" />
  1422.    </ItemGroup>
  1423.  
  1424.    <RC
  1425.      Condition                       ="'%(ResourceCompile.ExcludedFromBuild)'!='true'"
  1426.      Source                          ="%(ResourceCompile.Identity)"
  1427.      AdditionalIncludeDirectories    ="%(ResourceCompile.AdditionalIncludeDirectories)"
  1428.      AdditionalOptions               ="%(ResourceCompile.AdditionalOptions)"
  1429.      Culture                         ="%(ResourceCompile.Culture)"
  1430.      IgnoreStandardIncludePath       ="%(ResourceCompile.IgnoreStandardIncludePath)"
  1431.  
  1432.      NullTerminateStrings            ="%(ResourceCompile.NullTerminateStrings)"
  1433.      PreprocessorDefinitions         ="%(ResourceCompile.PreprocessorDefinitions)"
  1434.      ResourceOutputFileName          ="%(ResourceCompile.ResourceOutputFileName)"
  1435.      SuppressStartupBanner           ="%(ResourceCompile.SuppressStartupBanner)"
  1436.      ShowProgress                    ="%(ResourceCompile.ShowProgress)"
  1437.      UndefinePreprocessorDefinitions ="%(ResourceCompile.UndefinePreprocessorDefinitions)"
  1438.  
  1439.      TrackerLogDirectory             ="%(ResourceCompile.TrackerLogDirectory)"
  1440.      MinimalRebuildFromTracking      ="%(ResourceCompile.MinimalRebuildFromTracking)"
  1441.      ToolArchitecture                ="$(RCToolArchitecture)"
  1442.      TrackerFrameworkPath            ="$(RCTrackerFrameworkPath)"
  1443.      TrackerSdkPath                  ="$(RCTrackerSdkPath)"
  1444.      TrackedInputFilesToIgnore       ="@(RCNoDependencies)"
  1445.  
  1446.      TLogReadFiles                   ="@(RCTLogReadFiles)"
  1447.      TLogWriteFiles                  ="@(RCTLogWriteFiles)"
  1448.      ToolExe                         ="$(RCToolExe)"
  1449.      ToolPath                        ="$(RCToolPath)"
  1450.      TrackFileAccess                 ="$(TrackFileAccess)"
  1451.  
  1452.      AcceptableNonZeroExitCodes      ="%(ResourceCompile.AcceptableNonZeroExitCodes)"
  1453.      >
  1454.    </RC>
  1455.  </Target>
  1456.  
  1457.  <!-- *******************************************************************************************
  1458.        Managed Resource Compile
  1459.       ******************************************************************************************* -->
  1460.  <Target Name="BeforeResGen" DependsOnTargets="CreateManifestResourceNames"/>
  1461.  
  1462.  <Target Name="ResGen" DependsOnTargets="$(ResGenDependsOn)"/>
  1463.  
  1464.  <Target Name="_ResGen" DependsOnTargets="ResGen" Condition="'@(EmbeddedResource)'!=''"/>
  1465.  
  1466.  <PropertyGroup>
  1467.    <CreateManifestResourceNamesDependsOn></CreateManifestResourceNamesDependsOn>
  1468.    <!-- CopyFilesToOutputDirectory target will copy the managed files to the output directory.
  1469.         This flag will skip the primary output. -->
  1470.    <SkipCopyBuildProduct>true</SkipCopyBuildProduct>
  1471.    <BuildingProject>true</BuildingProject>
  1472.  </PropertyGroup>
  1473.  
  1474.  <Target Name="CreateManifestResourceNames"
  1475.          Condition="'@(EmbeddedResource)' != ''"
  1476.          DependsOnTargets="$(CreateManifestResourceNamesDependsOn)"
  1477.          >
  1478.  
  1479.    <ItemGroup>
  1480.      <_Temporary Remove="@(_Temporary)"/>
  1481.    </ItemGroup>
  1482.  
  1483.    <!-- Create manifest names for culture and non-culture Resx files, and for non-culture Non-Resx resources -->
  1484.    <CreateCSharpManifestResourceName
  1485.      ResourceFiles="@(EmbeddedResource)"
  1486.      RootNamespace="$(RootNamespace)"
  1487.      Condition="'%(EmbeddedResource.ExcludedFromBuild)' != 'true' and '%(EmbeddedResource.ManifestResourceName)' == '' and ('%(EmbeddedResource.WithCulture)' == 'false' or '%(EmbeddedResource.Type)' == 'Resx')"
  1488.      >
  1489.  
  1490.      <Output TaskParameter="ResourceFilesWithManifestResourceNames" ItemName="_Temporary"/>
  1491.  
  1492.    </CreateCSharpManifestResourceName>
  1493.  
  1494.    <!-- Create manifest names for all culture non-resx resources -->
  1495.    <CreateCSharpManifestResourceName
  1496.      ResourceFiles="@(EmbeddedResource)"
  1497.      RootNamespace="$(RootNamespace)"
  1498.      PrependCultureAsDirectory="false"
  1499.      Condition="'%(EmbeddedResource.ExcludedFromBuild)' != 'true' and '%(EmbeddedResource.ManifestResourceName)' == '' and '%(EmbeddedResource.WithCulture)' == 'true' and '%(EmbeddedResource.Type)' == 'Non-Resx'"
  1500.      >
  1501.  
  1502.      <Output TaskParameter="ResourceFilesWithManifestResourceNames" ItemName="_Temporary"/>
  1503.  
  1504.    </CreateCSharpManifestResourceName>
  1505.  
  1506.    <ItemGroup>
  1507.      <EmbeddedResource Remove="@(EmbeddedResource)" Condition="'%(EmbeddedResource.ManifestResourceName)' == '' "/>
  1508.      <EmbeddedResource Include="@(_Temporary)"/>
  1509.      <_Temporary Remove="@(_Temporary)"/>
  1510.    </ItemGroup>
  1511.  
  1512.    <WriteLinesToFile File="$(TLogLocation)$(ProjectName).write.1u.tlog" Lines="^$(ProjectPath);@(EmbeddedResource->'$(IntermediateOutputPath)%(ManifestResourceName).resources'->FullPath())" Encoding="Unicode"/>
  1513.  </Target>
  1514.  
  1515.    <!--
  1516.    ============================================================
  1517.                                        GenerateSatelliteAssemblies
  1518.  
  1519.    al.exe to create the satellite assemblies into the OutDir.
  1520.    ============================================================
  1521.    -->
  1522.    <Target Name="GenerateSatelliteAssemblies"
  1523.            Inputs="$(MSBuildAllProjects);@(_SatelliteAssemblyResourceInputs);$(OutDir)$(TargetName)$(TargetExt)"
  1524.            Outputs="$(OutDir)%(Culture)\$(TargetName).resources.dll"
  1525.            Condition="'@(_SatelliteAssemblyResourceInputs)' != ''">
  1526.  
  1527.        <MakeDir
  1528.            Directories="@(EmbeddedResource->'$(OutDir)%(Culture)')" />
  1529.  
  1530.        <AL AlgorithmId="$(Satellite_AlgorithmId)"
  1531.            BaseAddress="$(Satellite_BaseAddress)"
  1532.            CompanyName="$(Satellite_CompanyName)"
  1533.            Configuration="$(Satellite_Configuration)"
  1534.            Copyright="$(Satellite_Copyright)"
  1535.            Culture="%(Culture)"
  1536.            DelaySign="$(DelaySign)"
  1537.            Description="$(Satellite_Description)"
  1538.            EmbedResources="@(_SatelliteAssemblyResourceInputs)"
  1539.            EnvironmentVariables="$(AlEnvironment)"
  1540.            EvidenceFile="$(Satellite_EvidenceFile)"
  1541.            FileVersion="$(Satellite_FileVersion)"
  1542.            Flags="$(Satellite_Flags)"
  1543.            GenerateFullPaths="$(Satellite_GenerateFullPaths)"
  1544.            KeyContainer="$(KeyContainerName)"
  1545.            KeyFile="$(KeyOriginatorFile)"
  1546.            LinkResources="@(Satellite_LinkResource)"
  1547.            MainEntryPoint="$(Satellite_MainEntryPoint)"
  1548.            OutputAssembly="$(OutDir)%(Culture)\$(TargetName).resources.dll"
  1549.            Platform="$(PlatformTarget)"
  1550.            ProductName="$(Satellite_ProductName)"
  1551.            ProductVersion="$(Satellite_ProductVersion)"
  1552.            ResponseFiles="@(AlResponseFile)"
  1553.            SourceModules="@(Satellite_SourceModule)"
  1554.            TargetType="$(Satellite_TargetType)"
  1555.            TemplateFile="$(OutDir)$(TargetName)$(TargetExt)"
  1556.            Title="$(Satellite_Title)"
  1557.            ToolPath="$(AlToolPath)"
  1558.            SdkToolsPath="$(TargetFrameworkSDKToolsDirectory)"
  1559.            Trademark="$(Satellite_Trademark)"
  1560.            Version="$(Satellite_Version)"
  1561.            Win32Icon="$(Satellite_Win32Icon)"
  1562.            Win32Resource="$(Satellite_Win32Resource)">
  1563.  
  1564.            <Output TaskParameter="OutputAssembly" ItemName="GenerateSatelliteAssembliesOutputs"/>
  1565.  
  1566.        </AL>
  1567.        <WriteLinesToFile File="$(TLogLocation)$(ProjectName).write.1u.tlog" Lines="^$(ProjectPath);@(GenerateSatelliteAssembliesOutputs->FullPath()->Distinct())" Encoding="Unicode"/>
  1568.    </Target>
  1569.  
  1570.  <!-- *******************************************************************************************
  1571.        MT
  1572.       ******************************************************************************************* -->
  1573.  <Target Name="Manifest"
  1574.          Condition="'@(Manifest)' != ''"
  1575.          DependsOnTargets="MakeDirsForManifest;$(ComputeManifestInputsTargets)">
  1576.    <ItemGroup>
  1577.      <Manifest>
  1578.        <OutputResourceManifests Condition="'$(LegacyManifestEmbedding)' == 'true' and '$(EmbedManifest)' == 'true' AND '$(EmbedManifestBy)'=='MT' AND '$(ConfigurationType)'=='Application'" >%(Link.OutputFile);#1</OutputResourceManifests>
  1579.        <OutputResourceManifests Condition="'$(LegacyManifestEmbedding)' == 'true' and '$(EmbedManifest)' == 'true' AND '$(EmbedManifestBy)'=='MT' AND '$(ConfigurationType)'=='DynamicLibrary'" >%(Link.OutputFile);#2</OutputResourceManifests>
  1580.      </Manifest>
  1581.    </ItemGroup>
  1582.  
  1583.    <PropertyGroup>
  1584.      <ManifestToolArchitecture Condition="'$(ManifestToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</ManifestToolArchitecture>
  1585.      <RCToolArchitecture Condition="'$(RCToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</RCToolArchitecture>
  1586.    </PropertyGroup>
  1587.  
  1588.    <!-- Deleting the outputs incase it came from an older build. This will force a clean MT instead of an incremental run.-->
  1589.    <Delete Condition="('$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true') and '$(EmbedManifestby)'=='LINK'" Files="@(Manifest->Metadata('OutputManifestFile')->Distinct());@(Manifest->Metadata('OutputResourceManifests')->Distinct())" />
  1590.  
  1591.    <Mt
  1592.      Sources                     ="@(Manifest);$(ManifestAdditionalManifestFiles)"
  1593.      AdditionalOptions           ="%(Manifest.AdditionalOptions)"
  1594.      AssemblyIdentity            ="%(Manifest.AssemblyIdentity)"
  1595.      ComponentFileName           ="%(Manifest.ComponentFileName)"
  1596.      GenerateCatalogFiles        ="%(Manifest.GenerateCatalogFiles)"
  1597.      GenerateCategoryTags        ="%(Manifest.GenerateCategoryTags)"
  1598.      InputResourceManifests      ="%(Manifest.InputResourceManifests)"
  1599.      OutputResourceManifests     ="%(Manifest.OutputResourceManifests)"
  1600.      ManifestFromManagedAssembly ="%(Manifest.ManifestFromManagedAssembly)"
  1601.      OutputManifestFile          ="%(Manifest.OutputManifestFile)"
  1602.      RegistrarScriptFile         ="%(Manifest.RegistrarScriptFile)"
  1603.      ReplacementsFile            ="%(Manifest.ReplacementsFile)"
  1604.      SuppressDependencyElement   ="%(Manifest.SuppressDependencyElement)"
  1605.      SuppressStartupBanner       ="%(Manifest.SuppressStartupBanner)"
  1606.      TypeLibraryFile             ="%(Manifest.TypeLibraryFile)"
  1607.      UpdateFileHashes            ="%(Manifest.UpdateFileHashes)"
  1608.      UpdateFileHashesSearchPath  ="%(Manifest.UpdateFileHashesSearchPath)"
  1609.      VerboseOutput               ="%(Manifest.VerboseOutput)"
  1610.      MinimalRebuildFromTracking  ="$(LinkSkippedExecution)"
  1611.  
  1612.      TrackerLogDirectory         ="%(Manifest.TrackerLogDirectory)"
  1613.      ToolArchitecture            ="$(ManifestToolArchitecture)"
  1614.      TrackerFrameworkPath        ="$(ManifestTrackerFrameworkPath)"
  1615.      TrackerSdkPath              ="$(ManifestTrackerSdkPath)"
  1616.  
  1617.      ManifestToIgnore            ="$(_ManifestToIgnore)"
  1618.  
  1619.      TLogReadFiles               ="@(MtTLogReadFiles)"
  1620.      TLogWriteFiles              ="@(MtTLogWriteFiles)"
  1621.      ToolExe                     ="$(MtToolExe)"
  1622.      ToolPath                    ="$(MtToolPath)"
  1623.      TrackFileAccess             ="$(TrackFileAccess)"
  1624.      TrackedInputFilesToIgnore   ="@(MTNoDependencies)"
  1625.  
  1626.      AcceptableNonZeroExitCodes  ="%(Manifest.AcceptableNonZeroExitCodes)"
  1627.      >
  1628.    </Mt>
  1629.  
  1630.    <ItemGroup>
  1631.      <ManifestResourceCompile Condition="'@(ManifestResourceCompile)' != ''">
  1632.        <MinimalRebuildFromTracking   Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1633.      </ManifestResourceCompile>
  1634.    </ItemGroup>
  1635.  
  1636.    <!-- If we are embedding with Link, we need to regenerate the .res file with the updated manifest.
  1637.         The .rc should have been auto-generated by the previous ManifestResourceCompile target. -->
  1638.    <RC
  1639.      Condition                       ="'$(EmbedManifestby)'=='LINK'"
  1640.      Source                          ="@(ManifestResourceCompile)"
  1641.      ResourceOutputFileName          ="%(ManifestResourceCompile.ResourceOutputFileName)"
  1642.      SuppressStartupBanner           ="%(ManifestResourceCompile.SuppressStartupBanner)"
  1643.      MinimalRebuildFromTracking      ="%(ManifestResourceCompile.MinimalRebuildFromTracking)"
  1644.      TrackerLogDirectory             ="%(ManifestResourceCompile.TrackerLogDirectory)"
  1645.      ToolArchitecture                ="$(RCToolArchitecture)"
  1646.      TrackerFrameworkPath            ="$(RCTrackerFrameworkPath)"
  1647.      TrackerSdkPath                  ="$(RCTrackerSdkPath)"
  1648.  
  1649.      TLogReadFiles                   ="@(RCTLogReadFiles)"
  1650.      TLogWriteFiles                  ="@(RCTLogWriteFiles)"
  1651.      ToolExe                         ="$(RCToolExe)"
  1652.      ToolPath                        ="$(RCToolPath)"
  1653.      TrackFileAccess                 ="$(TrackFileAccess)"
  1654.      TrackedInputFilesToIgnore       ="@(RCNoDependencies)"
  1655.      >
  1656.     <Output TaskParameter="SourcesCompiled" ItemName="RCSourcesCompiled"/>
  1657.    </RC>
  1658.  
  1659.    <!-- If RC did produce an output, then force link to embed that manifest.
  1660.         This enforcement is required for projects residing on FAT32 drives. -->
  1661.    <ItemGroup Condition="'$(EmbedManifestby)'=='LINK'">
  1662.      <Link>
  1663.        <MinimalRebuildFromTracking Condition="@(RCSourcesCompiled)!=''">false</MinimalRebuildFromTracking>
  1664.      </Link>
  1665.    </ItemGroup>
  1666.  </Target>
  1667.  
  1668. <!-- Makes the the directories that Manifest uses -->
  1669.  <Target Name="MakeDirsForManifest">
  1670.    <!-- List of directories and files whose directories should be made prior to running Manifest -->
  1671.      <ItemGroup Condition="'@(Manifest)'!=''">
  1672.        <ManifestDirsToMake Include="@(Manifest->'%(OutputManifestFile)')" />
  1673.        <ManifestDirsToMake Include="@(Manifest->'%(OutputResourceManifests)')" />
  1674.      </ItemGroup>
  1675.  
  1676.      <ItemGroup Condition="'@(ManifestResourceCompile)'!=''">
  1677.        <ManifestDirsToMake Include="@(ManifestResourceCompile->'%(ResourceOutputFileName)')" />
  1678.      </ItemGroup>
  1679.    <MakeDir Directories="@(ManifestDirsToMake->'%(RootDir)%(Directory)')" />
  1680.  </Target>
  1681.  
  1682.  
  1683.  <!-- *******************************************************************************************
  1684.        ManifestResourceCompile
  1685.       ******************************************************************************************* -->
  1686.  <ItemGroup Condition="'$(EmbedManifestBy)'=='LINK'">
  1687.    <ManifestResourceCompile Include="$(IntDir)$(TargetName)_manifest.rc">
  1688.      <MinimalRebuildFromTracking   >true</MinimalRebuildFromTracking>
  1689.      <TrackerLogDirectory          >$(TLogLocation)</TrackerLogDirectory>
  1690.    </ManifestResourceCompile>
  1691.  </ItemGroup>
  1692.  
  1693.  
  1694.  <Target Name="ManifestResourceCompile"
  1695.          Condition="'$(EmbedManifestBy)' == 'LINK' and '@(Manifest)' != ''">
  1696.  
  1697.    <!-- This goes into the rc file as a string so '\' needs to be escaped: IntDir already has one '\',
  1698.         so we add one more here. -->
  1699.    <PropertyGroup>
  1700.      <InputManifest>%(Manifest.OutputManifestFile)</InputManifest>
  1701.      <InputManifest>$(InputManifest.Replace(`\`,`\\`))</InputManifest>
  1702.    </PropertyGroup>
  1703.  
  1704.    <!-- Create an place holder manifest file for RC -->
  1705.    <WriteLinesToFile
  1706.      Condition="!EXISTS('%(Manifest.OutputManifestFile)')"
  1707.      File="%(Manifest.OutputManifestFile)"
  1708.      Lines=""
  1709.      Overwrite="false"
  1710.      Encoding ="Unicode"
  1711.     />
  1712.  
  1713.    <WriteLinesToFile
  1714.      Condition="'$(ConfigurationType)'=='Application' AND !EXISTS('@(ManifestResourceCompile)')"
  1715.      File="@(ManifestResourceCompile)"
  1716.      Lines="1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ &quot;$(InputManifest)&quot;"
  1717.      Overwrite="false"
  1718.      Encoding ="Unicode"
  1719.     />
  1720.  
  1721.    <WriteLinesToFile
  1722.      Condition="'$(ConfigurationType)'=='DynamicLibrary' AND !EXISTS('@(ManifestResourceCompile)')"
  1723.      File="@(ManifestResourceCompile)"
  1724.      Lines="2 /* ISOLATIONAWARE_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ &quot;$(InputManifest)&quot;"
  1725.      Overwrite="false"
  1726.      Encoding ="Unicode"
  1727.     />
  1728.  
  1729.    <ItemGroup>
  1730.      <ManifestResourceCompile Condition="'@(ManifestResourceCompile)' != ''">
  1731.        <MinimalRebuildFromTracking   Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1732.      </ManifestResourceCompile>
  1733.    </ItemGroup>
  1734.  
  1735.    <PropertyGroup>
  1736.      <RCToolArchitecture Condition="'$(RCToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</RCToolArchitecture>
  1737.    </PropertyGroup>
  1738.  
  1739.    <RC
  1740.      Source                          ="@(ManifestResourceCompile)"
  1741.      ResourceOutputFileName          ="%(ManifestResourceCompile.ResourceOutputFileName)"
  1742.      SuppressStartupBanner           ="%(ManifestResourceCompile.SuppressStartupBanner)"
  1743.      TrackerLogDirectory             ="%(ManifestResourceCompile.TrackerLogDirectory)"
  1744.      MinimalRebuildFromTracking      ="%(ManifestResourceCompile.MinimalRebuildFromTracking)"
  1745.      ToolArchitecture                ="$(RCToolArchitecture)"
  1746.      TrackerFrameworkPath            ="$(RCTrackerFrameworkPath)"
  1747.      TrackerSdkPath                  ="$(RCTrackerSdkPath)"
  1748.  
  1749.      TLogReadFiles                   ="@(RCTLogReadFiles)"
  1750.      TLogWriteFiles                  ="@(RCTLogWriteFiles)"
  1751.      ToolExe                         ="$(RCToolExe)"
  1752.      ToolPath                        ="$(RCToolPath)"
  1753.      TrackFileAccess                 ="$(TrackFileAccess)"
  1754.      TrackedInputFilesToIgnore       ="@(RCNoDependencies)"
  1755.      >
  1756.    </RC>
  1757.  </Target>
  1758.  
  1759.  <!-- *******************************************************************************************
  1760.        RegisterDll
  1761.       ******************************************************************************************* -->
  1762.  <!-- Allow regsvr32 for Win32 Platform.  If Platform is x64, then check if the host OS is 64bit. -->
  1763.  <Target Name="RegisterOutput"
  1764.          Condition="'$(LinkSkippedExecution)' != 'true' and (('$(Platform)' == 'x64' and ('$(PROCESSOR_ARCHITECTURE)' == 'AMD64' or '$(PROCESSOR_ARCHITEW6432)' == 'AMD64')) or '$(Platform)' == 'Win32')">
  1765.  
  1766.    <Exec Command="regsvr32 /s &quot;%(Link.OutputFile)&quot;" Condition="'$(ConfigurationType)'=='DynamicLibrary' and '%(Link.RegisterOutput)'=='true' and '%(Link.PerUserRedirection)'!='true'" ContinueOnError="true">
  1767.      <Output TaskParameter="ExitCode" PropertyName="_RegisterOutputExitCode"/>
  1768.    </Exec>
  1769.    <Exec Command="regsvr32 /s /n /i:user &quot;%(Link.OutputFile)&quot;" Condition="'$(ConfigurationType)'=='DynamicLibrary' and '%(Link.RegisterOutput)'=='true' and '%(Link.PerUserRedirection)'=='true'" ContinueOnError="true">
  1770.      <Output TaskParameter="ExitCode" PropertyName="_RegisterOutputExitCode"/>
  1771.    </Exec>
  1772.    <Exec Command="&quot;%(Link.OutputFile)&quot; /RegServer" Condition="'$(ConfigurationType)'=='Application' and '%(Link.RegisterOutput)'=='true' and '%(Link.PerUserRedirection)'!='true'" ContinueOnError="true">
  1773.      <Output TaskParameter="ExitCode" PropertyName="_RegisterOutputExitCode"/>
  1774.    </Exec>
  1775.    <Exec Command="&quot;%(Link.OutputFile)&quot; /RegServerPerUser" Condition="'$(ConfigurationType)'=='Application' and '%(Link.RegisterOutput)'=='true' and '%(Link.PerUserRedirection)'=='true'" ContinueOnError="true">
  1776.      <Output TaskParameter="ExitCode" PropertyName="_RegisterOutputExitCode"/>
  1777.    </Exec>
  1778.    <VCMessage Code="MSB8011" Type="Error" Condition="'$(_RegisterOutputExitCode)' != '' and '$(_RegisterOutputExitCode)' != '0'" />
  1779.  </Target>
  1780.  
  1781.  <!-- *******************************************************************************************
  1782.        XDCMake
  1783.       ******************************************************************************************* -->
  1784.  <Target Name="XdcMake"
  1785.          Condition="'@(XdcMake)' != ''">
  1786.  
  1787.    <ItemGroup>
  1788.      <XdcMake Condition="'@(XdcMake)' != ''">
  1789.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1790.      </XdcMake>
  1791.    </ItemGroup>
  1792.  
  1793.    <PropertyGroup>
  1794.      <XDCMakeToolArchitecture Condition="'$(XDCMakeToolArchitecture)' == ''">ManagedIL</XDCMakeToolArchitecture>
  1795.    </PropertyGroup>
  1796.  
  1797.    <XDCMake
  1798.      Sources                     ="@(XdcMake)"
  1799.      AdditionalOptions           ="%(XdcMake.AdditionalOptions)"
  1800.      SuppressStartupBanner       ="%(XdcMake.SuppressStartupBanner)"
  1801.      OutputFile                  ="%(XdcMake.OutputFile)"
  1802.      SlashOld                    ="true"
  1803.      ProjectName                 ="$(ProjectName)"
  1804.      TrackerLogDirectory         ="%(XdcMake.TrackerLogDirectory)"
  1805.      MinimalRebuildFromTracking  ="%(XdcMake.MinimalRebuildFromTracking)"
  1806.      ToolArchitecture            ="$(XDCMakeToolArchitecture)"
  1807.      TrackerFrameworkPath        ="$(XDCMakeTrackerFrameworkPath)"
  1808.      TrackerSdkPath              ="$(XDCMakeTrackerSdkPath)"
  1809.  
  1810.      TLogReadFiles               ="@(XDCMakeTLogReadFiles)"
  1811.      TLogWriteFiles              ="@(XDCMakeTLogWriteFiles)"
  1812.      ToolExe                     ="$(XDCMakeToolExe)"
  1813.      ToolPath                    ="$(XDCMakeToolPath)"
  1814.      TrackFileAccess             ="$(TrackFileAccess)"
  1815.      TrackedInputFilesToIgnore   ="@(XDCMakeNoDependencies)"
  1816.  
  1817.      AcceptableNonZeroExitCodes  ="%(XdcMake.AcceptableNonZeroExitCodes)"
  1818.      >
  1819.    </XDCMake>
  1820.  </Target>
  1821.  
  1822.  <!-- *******************************************************************************************
  1823.          BscMake
  1824.       ******************************************************************************************* -->
  1825.  <Target Name="BscMake"
  1826.          Condition="'@(BscMake)' != ''">
  1827.  
  1828.    <ItemGroup>
  1829.      <BscMake Condition="'@(BscMake)' != ''">
  1830.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1831.      </BscMake>
  1832.    </ItemGroup>
  1833.  
  1834.    <PropertyGroup>
  1835.      <BSCMakeToolArchitecture Condition="'$(BSCMakeToolArchitecture)' == ''">$(VCToolArchitecture)</BSCMakeToolArchitecture>
  1836.    </PropertyGroup>
  1837.  
  1838.    <BSCMake
  1839.      Sources                     ="@(BscMake)"
  1840.      AdditionalOptions           ="%(BscMake.AdditionalOptions)"
  1841.      SuppressStartupBanner       ="%(BscMake.SuppressStartupBanner)"
  1842.      OutputFile                  ="%(BscMake.OutputFile)"
  1843.      PreserveSBR                 ="%(BscMake.PreserveSBR)"
  1844.  
  1845.      TrackerLogDirectory         ="%(BscMake.TrackerLogDirectory)"
  1846.      MinimalRebuildFromTracking  ="%(BscMake.MinimalRebuildFromTracking)"
  1847.      ToolArchitecture            ="$(BSCMakeToolArchitecture)"
  1848.      TrackerFrameworkPath        ="$(BSCMakeTrackerFrameworkPath)"
  1849.      TrackerSdkPath              ="$(BSCMakeTrackerSdkPath)"
  1850.  
  1851.      TLogReadFiles               ="@(BSCMakeTLogReadFiles)"
  1852.      TLogWriteFiles              ="@(BSCMakeTLogWriteFiles)"
  1853.      ToolExe                     ="$(BSCMakeToolExe)"
  1854.      ToolPath                    ="$(BSCMakeToolPath)"
  1855.      TrackFileAccess             ="$(TrackFileAccess)"
  1856.      TrackedInputFilesToIgnore   ="@(BSCMakeNoDependencies)"
  1857.  
  1858.      AcceptableNonZeroExitCodes  ="%(BscMake.AcceptableNonZeroExitCodes)"
  1859.      >
  1860.    </BSCMake>
  1861.  </Target>
  1862.  
  1863.  <!-- *******************************************************************************************
  1864.          XSD
  1865.       ******************************************************************************************* -->
  1866.  <Target Name="Xsd"
  1867.          Condition="'@(Xsd)' != ''"
  1868.          DependsOnTargets="SelectXsd">
  1869.  
  1870.    <ItemGroup>
  1871.      <Xsd Condition="'@(Xsd)' != ''">
  1872.        <MinimalRebuildFromTracking Condition="'$(_BuildActionType)' != 'Build' or '$(ForceRebuild)' == 'true'">false</MinimalRebuildFromTracking>
  1873.      </Xsd>
  1874.    </ItemGroup>
  1875.  
  1876.    <PropertyGroup>
  1877.      <XSDToolArchitecture Condition="'$(XSDToolArchitecture)' == ''">$(WindowsSDKToolArchitecture)</XSDToolArchitecture>
  1878.    </PropertyGroup>
  1879.  
  1880.    <XSD
  1881.      Condition                          ="'%(Xsd.ExcludedFromBuild)'!='true'"
  1882.      Sources                            ="%(Xsd.Identity)"
  1883.      SuppressStartupBanner              ="%(Xsd.SuppressStartupBanner)"
  1884.      GenerateFromSchema                 ="%(Xsd.GenerateFromSchema)"
  1885.      Language                           ="%(Xsd.Language)"
  1886.      Namespace                          ="%(Xsd.Namespace)"
  1887.      TrackerLogDirectory                ="%(Xsd.TrackerLogDirectory)"
  1888.      ToolArchitecture                   ="$(XSDToolArchitecture)"
  1889.      TrackerFrameworkPath               ="$(XSDTrackerFrameworkPath)"
  1890.      TrackerSdkPath                     ="$(XSDTrackerSdkPath)"
  1891.  
  1892.      TLogReadFiles                      ="@(XSDTLogReadFiles)"
  1893.      TLogWriteFiles                     ="@(XSDTLogWriteFiles)"
  1894.      ToolExe                            ="$(XSDToolExe)"
  1895.      ToolPath                           ="$(XSDToolPath)"
  1896.      TrackFileAccess                    ="$(TrackFileAccess)"
  1897.      MinimalRebuildFromTracking         ="%(Xsd.MinimalRebuildFromTracking)"
  1898.      TrackedInputFilesToIgnore          ="@(XSDNoDependencies)"
  1899.  
  1900.      AcceptableNonZeroExitCodes         ="%(Xsd.AcceptableNonZeroExitCodes)"
  1901.      />
  1902.  </Target>
  1903.  
  1904.  <!-- *******************************************************************************************
  1905.          MetaGen
  1906.       ******************************************************************************************* -->
  1907.  <PropertyGroup>
  1908.      <MetaGenTargets Condition="'$(MetaGenTargets)'==''">$(VCTargetsPath)\Microsoft.MetaGen.targets</MetaGenTargets>
  1909.  </PropertyGroup>
  1910.  
  1911.  <Import Project="$(MetaGenTargets)" Condition="Exists('$(MetaGenTargets)')"/>
  1912.  
  1913.  <PropertyGroup>
  1914.    <MetagenInputTarget Condition="'$(MetagenInputTarget)' == ''">Link</MetagenInputTarget>
  1915.  </PropertyGroup>
  1916.  
  1917.  <Target Name="ComputeMetaGenInputs"
  1918.          BeforeTargets="MetaGenInputsOutputs"
  1919.          Condition="'$(CLRSupport)'!='' and '$(CLRSupport)'!='false'"
  1920.          >
  1921.    <PropertyGroup>
  1922.      <ConsumeAnyMetaAssembly Condition="'$(ConsumeAnyMetaAssembly)' == '' and '$(EnableManagedIncrementalBuild)' != ''">$(EnableManagedIncrementalBuild)</ConsumeAnyMetaAssembly>
  1923.      <ConsumeAnyMetaAssembly Condition="'$(ConsumeAnyMetaAssembly)' == ''">False</ConsumeAnyMetaAssembly>
  1924.      <OutputAssemblyFile>%(Link.OutputFile)</OutputAssemblyFile>
  1925.      <OutputAssemblyMetagenFile>%(Link.OutputFile).metagen</OutputAssemblyMetagenFile>
  1926.    </PropertyGroup>
  1927.  
  1928.    <Delete Condition="'$(OutputAssemblyMetagenFile)' != '' and '$(ConsumeAnyMetaAssembly)' == 'false' and Exists('$(OutputAssemblyMetagenFile)')" Files="$(OutputAssemblyMetagenFile)" ContinueOnError="true"/>
  1929.  </Target>
  1930.  
  1931.  <!-- *******************************************************************************************
  1932.          GetNativeManifest : Override GetNativeManifest in Microsoft.Common.targets
  1933.       ******************************************************************************************* -->
  1934.  <Target
  1935.        Name="GetNativeManifest"
  1936.        Returns="@(ComputedApplicationManifest)">
  1937.  
  1938.    <ItemGroup>
  1939.      <Link Include="tmp" Condition="'@(Link)' == ''">
  1940.        <DeleteSoon>true</DeleteSoon>
  1941.      </Link>
  1942.      <Manifest Include="tmp" Condition="'@(Manifest)' == ''">
  1943.        <DeleteSoon>true</DeleteSoon>
  1944.      </Manifest>
  1945.    </ItemGroup>
  1946.  
  1947.    <PropertyGroup>
  1948.      <_HasNativeManifest>true</_HasNativeManifest>
  1949.      <_HasNativeManifest Condition="'$(GenerateManifest)' != 'true'">false</_HasNativeManifest>
  1950.      <_HasNativeManifest Condition="'$(EmbedManifest)' != 'false'">false</_HasNativeManifest>
  1951.      <_HasNativeManifest Condition="'%(Manifest.AssemblyIdentity)' == ''">false</_HasNativeManifest>
  1952.      <_HasNativeManifest Condition="!Exists('@(Manifest->Metadata('OutputManifestFile')->FullPath()->Distinct())')">false</_HasNativeManifest>
  1953.    </PropertyGroup>
  1954.  
  1955.    <ItemGroup>
  1956.      <ComputedApplicationManifest Include="@(Manifest->Metadata('OutputManifestFile')->Filename()->Distinct())" Condition="'$(_HasNativeManifest)' == 'true'">
  1957.        <HintPath>@(Manifest->Metadata('OutputManifestFile')->FullPath()->Distinct())</HintPath>
  1958.      </ComputedApplicationManifest>
  1959.    </ItemGroup>
  1960.  
  1961.    <ItemGroup>
  1962.      <Link Remove="@(Link)" Condition="'%(Link.DeleteSoon)' == 'true'" />
  1963.      <Manifest Remove="@(Manifest)" Condition="'%(Manifest.DeleteSoon)' == 'true'" />
  1964.    </ItemGroup>
  1965.  
  1966.  </Target>
  1967.  <!-- The name of UAP debugger changed during Dev14 update-1 - So mapping 'AppHostRemoteDebugger' to 'UWPRemoteDebugger' to ensure compatibility-->
  1968.  <PropertyGroup Condition="'$(TargetPlatformIdentifier)'=='UAP' and '$(DebuggerFlavor)'=='AppHostRemoteDebugger'">
  1969.    <DebuggerFlavor>UWPRemoteDebugger</DebuggerFlavor>
  1970.  </PropertyGroup>
  1971.  
  1972.  <Import Condition="'$(VCLibPackagePath)' != '' and Exists('$(VCLibPackagePath).targets')" Project="$(VCLibPackagePath).targets" />
  1973.  
  1974.  <Import Condition="exists('$(VCTargetsPath)\Microsoft.CodeAnalysis.Extensions.targets')" Project="$(VCTargetsPath)\Microsoft.CodeAnalysis.Extensions.targets"/>
  1975.  <Import Condition="'$(_CppCommonExtensionTargets)' != ''" Project="$(_CppCommonExtensionTargets)" />
  1976.  
  1977. </Project>
Advertisement
Add Comment
Please, Sign In to add comment