Run illink before ApiCompat (#66706)
authorViktor Hofer <viktor.hofer@microsoft.com>
Tue, 26 Apr 2022 06:18:08 +0000 (08:18 +0200)
committerGitHub <noreply@github.com>
Tue, 26 Apr 2022 06:18:08 +0000 (08:18 +0200)
* Run illink before ApiCompat and GenAPI

As observed in https://github.com/dotnet/runtime/issues/66634#issuecomment-1068556981, illink currently runs after APICompat. This happens because nuget imports the ApiCompat targets earlier than the illink.targets is imported.

* Update illink.targets

* Use ApiCompatDependsOn

eng/illink.targets

index ce06abb..33d7dd9 100644 (file)
@@ -1,17 +1,10 @@
 <Project>
   <PropertyGroup>
     <IsTrimmable Condition="'$(IsTrimmable)' == ''">true</IsTrimmable>
-    <PrepareResourcesDependsOn>
-      _EmbedILLinkXmls;
-      $(PrepareResourcesDependsOn)
-    </PrepareResourcesDependsOn>
-  </PropertyGroup>
-
-  <PropertyGroup>
-    <TargetsTriggeredByCompilation Condition="'$(DesignTimeBuild)' != 'true'">
-      $(TargetsTriggeredByCompilation);
-      ILLinkTrimAssembly
-    </TargetsTriggeredByCompilation>
+    <PrepareResourcesDependsOn>_EmbedILLinkXmls;$(PrepareResourcesDependsOn)</PrepareResourcesDependsOn>
+    <TargetsTriggeredByCompilation Condition="'$(DesignTimeBuild)' != 'true'">$(TargetsTriggeredByCompilation);ILLinkTrimAssembly</TargetsTriggeredByCompilation>
+    <!-- ApiCompat should perform compatibility checks on the trimmed assemblies. -->
+    <ApiCompatDependsOn>$(ApiCompatDependsOn);ILLinkTrimAssembly</ApiCompatDependsOn>
   </PropertyGroup>
 
   <!-- Inputs and outputs of ILLinkTrimAssembly -->