|
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" />
|
|
174 | 175 | <ApiCompatibilityFiles Include="$(ApiCompatibilityDir)/reference/*.*" />
|
175 | 176 | </ItemGroup>
|
176 | 177 | <Target
|
177 |
| - Name="AfterBuild" |
| 178 | + Name="_CheckApiCompatibility" |
178 | 179 | Condition=" '$(DisableApiCompatibilityCheck)' != 'True' "
|
| 180 | + AfterTargets="Build" |
179 | 181 | Inputs="$(TargetPath);@(ApiCompatibilityFiles)"
|
180 | 182 | Outputs="$(IntermediateOutputPath)CheckApiCompatibility.stamp">
|
181 | 183 | <CheckApiCompatibility
|
| 184 | + ContinueOnError="ErrorAndContinue" |
182 | 185 | ApiCompatPath="$(XAPackagesDir)\microsoft.dotnet.apicompat\5.0.0-beta.20078.1\tools\net472\"
|
183 | 186 | ApiLevel="$(AndroidFrameworkVersion)"
|
184 | 187 | LastStableApiLevel="$(AndroidLatestStableFrameworkVersion)"
|
185 | 188 | TargetImplementationPath="$(OutputPath)"
|
186 | 189 | ApiCompatibilityPath="$(ApiCompatibilityDir)"
|
187 | 190 | />
|
188 |
| - <Touch |
189 |
| - Files="$(IntermediateOutputPath)CheckApiCompatibility.stamp" |
190 |
| - AlwaysCreate="True" |
| 191 | + <PropertyGroup> |
| 192 | + <_RunApiDiff Condition=" '$(MSBuildLastTaskResult)' == 'False' ">True</_RunApiDiff> |
| 193 | + <_GenAPI>"$(XAPackagesDir)\microsoft.dotnet.genapi\5.0.0-beta.20078.1\tools\net472\Microsoft.DotNet.GenAPI.exe"</_GenAPI> |
| 194 | + <_ContractRefSrc>"$(ApiCompatibilityDir)\reference\Mono.Android.dll.cs"</_ContractRefSrc> |
| 195 | + <_TargetRefSrc>"$(TargetPath).cs"</_TargetRefSrc> |
| 196 | + </PropertyGroup> |
| 197 | + <Exec |
| 198 | + Condition=" '$(_RunApiDiff)' == 'True' " |
| 199 | + Command="$(ManagedRuntime) $(ManagedRuntimeArgs) $(_GenAPI) "$(TargetPath)" > $(_TargetRefSrc)" |
| 200 | + /> |
| 201 | + <GitDiff |
| 202 | + Condition=" '$(_RunApiDiff)' == 'True' " |
| 203 | + ContinueOnError="ErrorAndContinue" |
| 204 | + Arguments="--no-index $(_ContractRefSrc) $(_TargetRefSrc)" |
| 205 | + WorkingDirectory="$(MSBuildThisFileDirectory)" |
191 | 206 | />
|
192 | 207 | <ItemGroup>
|
193 | 208 | <FileWrites Include="$(IntermediateOutputPath)CheckApiCompatibility.stamp" />
|
194 | 209 | </ItemGroup>
|
| 210 | + <Touch |
| 211 | + Files="$(IntermediateOutputPath)CheckApiCompatibility.stamp" |
| 212 | + AlwaysCreate="True" |
| 213 | + /> |
195 | 214 | </Target>
|
196 | 215 | </Project>
|
0 commit comments