Welcome to mirror list, hosted at ThFree Co, Russian Federation.

codeOptimization.targets « eng - github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 83b7612b719d6442d7a905e31e27f3e842c85425 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
<Project>

  <PropertyGroup Condition="'$(IsEligibleForNgenOptimization)' == ''">
     <IsEligibleForNgenOptimization>true</IsEligibleForNgenOptimization>
     <IsEligibleForNgenOptimization Condition="'$(IsReferenceAssemblyProject)' == 'true'">false</IsEligibleForNgenOptimization>
     <IsEligibleForNgenOptimization Condition="'$(GeneratePlatformNotSupportedAssembly)' == 'true' or '$(GeneratePlatformNotSupportedAssemblyMessage)' != ''">false</IsEligibleForNgenOptimization>
      <!-- There's an issue causing IBCMerge failures because of mismatched MVIDs
           across many of our assemblies on Mac, so disable
           IBCMerge optimizations on Mac for now to unblock the official build.
           See issue https://github.com/dotnet/runtime/issues/33303
      -->
      <IsEligibleForNgenOptimization Condition="'$(TargetOS)' == 'OSX' or '$(TargetsMobile)' == 'true'">false</IsEligibleForNgenOptimization>
  </PropertyGroup>

  <Target Name="SetApplyNgenOptimization"
          Condition="'$(IsEligibleForNgenOptimization)' == 'true'"
          BeforeTargets="CoreCompile">
    <PropertyGroup>
      <IbcOptimizationDataDir Condition="'$(TargetOS)' == 'Unix' or '$(TargetOS)' == 'Linux'">$(IbcOptimizationDataDir)Linux\</IbcOptimizationDataDir>
      <IbcOptimizationDataDir Condition="'$(TargetOS)' == 'windows'">$(IbcOptimizationDataDir)Windows\</IbcOptimizationDataDir>
    </PropertyGroup>
    <ItemGroup>
      <_optimizationDataAssembly Include="$(IbcOptimizationDataDir)**\$(TargetFileName)" />
    </ItemGroup>
    <PropertyGroup>
      <ApplyNgenOptimization Condition="'@(_optimizationDataAssembly)' != ''">full</ApplyNgenOptimization>
    </PropertyGroup>
  </Target>

</Project>