|
1 | 1 | <?xml version="1.0" encoding="utf-8"?>
|
2 | 2 | <Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
| 3 | + <UsingTask AssemblyFile="$(PrepTasksAssembly)" TaskName="Xamarin.Android.BuildTools.PrepTasks.GitDiff" /> |
3 | 4 | <UsingTask AssemblyFile="$(PrepTasksAssembly)" TaskName="Xamarin.Android.BuildTools.PrepTasks.ReplaceFileContents" />
|
4 | 5 | <UsingTask AssemblyFile="$(BootstrapTasksAssembly)" TaskName="Xamarin.Android.Tools.BootstrapTasks.CheckApiCompatibility" />
|
5 | 6 | <Import Project="..\..\build-tools\scripts\XAVersionInfo.targets" />
|
|
183 | 184 | <ApiCompatibilityFiles Include="$(ApiCompatibilityDir)/reference/*.*" />
|
184 | 185 | </ItemGroup>
|
185 | 186 | <Target
|
186 |
| - Name="AfterBuild" |
| 187 | + Name="_CheckApiCompatibility" |
187 | 188 | Condition=" '$(DisableApiCompatibilityCheck)' != 'True' "
|
| 189 | + AfterTargets="Build" |
188 | 190 | Inputs="$(TargetPath);@(ApiCompatibilityFiles)"
|
189 | 191 | Outputs="$(IntermediateOutputPath)CheckApiCompatibility.stamp">
|
190 | 192 | <CheckApiCompatibility
|
| 193 | + ContinueOnError="ErrorAndContinue" |
191 | 194 | ApiCompatPath="$(XAPackagesDir)\microsoft.dotnet.apicompat\5.0.0-beta.20078.1\tools\net472\"
|
192 | 195 | ApiLevel="$(AndroidFrameworkVersion)"
|
193 | 196 | LastStableApiLevel="$(AndroidLatestStableFrameworkVersion)"
|
194 | 197 | TargetImplementationPath="$(OutputPath)"
|
195 | 198 | ApiCompatibilityPath="$(ApiCompatibilityDir)"
|
196 | 199 | />
|
197 |
| - <Touch |
198 |
| - Files="$(IntermediateOutputPath)CheckApiCompatibility.stamp" |
199 |
| - AlwaysCreate="True" |
| 200 | + <PropertyGroup> |
| 201 | + <_RunApiDiff Condition=" '$(MSBuildLastTaskResult)' == 'False' ">True</_RunApiDiff> |
| 202 | + <_GenAPI>"$(XAPackagesDir)\microsoft.dotnet.genapi\5.0.0-beta.20078.1\tools\net472\Microsoft.DotNet.GenAPI.exe"</_GenAPI> |
| 203 | + <_ContractRefSrc>"$(ApiCompatibilityDir)\reference\Mono.Android.dll.cs"</_ContractRefSrc> |
| 204 | + <_TargetRefSrc>"$(TargetPath).cs"</_TargetRefSrc> |
| 205 | + </PropertyGroup> |
| 206 | + <Exec |
| 207 | + Condition=" '$(_RunApiDiff)' == 'True' " |
| 208 | + Command="$(ManagedRuntime) $(ManagedRuntimeArgs) $(_GenAPI) "$(TargetPath)" > $(_TargetRefSrc)" |
| 209 | + /> |
| 210 | + <GitDiff |
| 211 | + Condition=" '$(_RunApiDiff)' == 'True' " |
| 212 | + ContinueOnError="ErrorAndContinue" |
| 213 | + Arguments="--no-index $(_ContractRefSrc) $(_TargetRefSrc)" |
| 214 | + WorkingDirectory="$(MSBuildThisFileDirectory)" |
200 | 215 | />
|
201 | 216 | <ItemGroup>
|
202 | 217 | <FileWrites Include="$(IntermediateOutputPath)CheckApiCompatibility.stamp" />
|
203 | 218 | </ItemGroup>
|
| 219 | + <Touch |
| 220 | + Files="$(IntermediateOutputPath)CheckApiCompatibility.stamp" |
| 221 | + AlwaysCreate="True" |
| 222 | + /> |
204 | 223 | </Target>
|
205 | 224 | </Project>
|
0 commit comments