summaryrefslogtreecommitdiff
path: root/packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets
diff options
context:
space:
mode:
authorGleb Balykov <g.balykov@samsung.com>2018-09-07 16:40:01 +0300
committerGleb Balykov <g.balykov@samsung.com>2018-09-18 15:49:14 +0300
commit526edf5f944417734d165ecd95151636f284bde5 (patch)
treeaa40aeee15d733b1392996565b7da87c8802bb0e /packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets
parent26389129ae16c6dd9b1fca19684b6d4ffbe59593 (diff)
downloadcoreclr-526edf5f944417734d165ecd95151636f284bde5.tar.gz
coreclr-526edf5f944417734d165ecd95151636f284bde5.tar.bz2
coreclr-526edf5f944417734d165ecd95151636f284bde5.zip
[Tizen] Update build tools to 2.1.0-rc1-03006-01
Diffstat (limited to 'packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets')
-rwxr-xr-xpackages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets125
1 files changed, 125 insertions, 0 deletions
diff --git a/packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets b/packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets
new file mode 100755
index 0000000000..f24f4930dc
--- /dev/null
+++ b/packages/microsoft.dotnet.buildtools/2.1.0-rc1-03006-01/lib/ApiCompat.targets
@@ -0,0 +1,125 @@
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <UsingTask TaskName="PrereleaseResolveNuGetPackageAssets" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>
+ <UsingTask TaskName="LocatePreviousContract" AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll"/>
+
+ <PropertyGroup>
+ <RunApiCompat Condition="'$(RunApiCompat)'==''">false</RunApiCompat>
+ </PropertyGroup>
+
+ <PropertyGroup Condition="'$(RunApiCompat)' == 'true'">
+ <ApiCompatBaseline Condition="!Exists('$(ApiCompatBaseline)')">$(MSBuildProjectDirectory)\ApiCompatBaseline.$(TargetGroup).txt</ApiCompatBaseline>
+ <ApiCompatBaseline Condition="!Exists('$(ApiCompatBaseline)')">$(MSBuildProjectDirectory)\ApiCompatBaseline.txt</ApiCompatBaseline>
+
+ <MatchingRefApiCompatBaseline Condition="!Exists('$(MatchingRefApiCompatBaseline)')">$(MSBuildProjectDirectory)\MatchingRefApiCompatBaseline.$(TargetGroup).txt</MatchingRefApiCompatBaseline>
+ <MatchingRefApiCompatBaseline Condition="'$(BaselineAllMatchingRefApiCompatError)' != 'true' and !Exists('$(MatchingRefApiCompatBaseline)')">$(MSBuildProjectDirectory)\MatchingRefApiCompatBaseline.txt</MatchingRefApiCompatBaseline>
+
+ <RunApiCompatForSrc Condition="$(MSBuildProjectDirectory.EndsWith('src'))">true</RunApiCompatForSrc>
+
+ <RunMatchingRefApiCompat Condition="'$(RunMatchingRefApiCompat)' == ''">$(RunApiCompatForSrc)</RunMatchingRefApiCompat>
+
+ <ResolveMatchingContract Condition="'$(RunApiCompatForSrc)'=='true'">true</ResolveMatchingContract>
+ <TargetsTriggeredByCompilation Condition="'$(RunApiCompatForSrc)'=='true'">$(TargetsTriggeredByCompilation);ValidateApiCompatForSrc</TargetsTriggeredByCompilation>
+ <TargetsTriggeredByCompilation Condition="'$(RunMatchingRefApiCompat)'=='true'">$(TargetsTriggeredByCompilation);RunMatchingRefApiCompat</TargetsTriggeredByCompilation>
+ </PropertyGroup>
+
+ <!-- ApiCompat for Implementation Assemblies -->
+ <Target Name="ValidateApiCompatForSrc"
+ Condition="'$(RunApiCompatForSrc)' == 'true' AND '$(RunApiCompat)' == 'true' and '@(ResolvedMatchingContract)' != ''">
+
+ <PropertyGroup>
+ <ReferenceAssembly>@(ResolvedMatchingContract)</ReferenceAssembly>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_DependencyDirectoriesTemp Include="@(ReferencePath->'%(RootDir)%(Directory)')" />
+ <!-- Remove duplicate directories by batching over them -->
+ <!-- Add project references first to give precedence to project-specific files -->
+ <_DependencyDirectories Condition="'%(_DependencyDirectoriesTemp.ReferenceSourceTarget)'=='ProjectReference'" Include="%(_DependencyDirectoriesTemp.Identity)" />
+ <_DependencyDirectories Condition="'%(_DependencyDirectoriesTemp.ReferenceSourceTarget)'!='ProjectReference'" Include="%(_DependencyDirectoriesTemp.Identity)" />
+ <_ContractDependencyDirectories Include="@(ResolvedMatchingContract->'%(RootDir)%(Directory)')" />
+ <_ContractDependencyDirectories Include="$(ContractOutputPath)" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <ApiCompatArgs>$(ApiCompatArgs) "$(ReferenceAssembly)"</ApiCompatArgs>
+ <ApiCompatArgs>$(ApiCompatArgs) -contractDepends:"@(_ContractDependencyDirectories, ','),"</ApiCompatArgs>
+ <ApiCompatArgs>$(ApiCompatArgs) -implDirs:"$(IntermediateOutputPath),@(_DependencyDirectories, ','),"</ApiCompatArgs>
+ <ApiCompatArgs Condition="'$(BaselineAllAPICompatError)'!='true' and Exists('$(ApiCompatBaseline)')">$(ApiCompatArgs) -baseline:"$(ApiCompatBaseline)"</ApiCompatArgs>
+ <ApiCompatBaselineAll Condition="'$(BaselineAllAPICompatError)'=='true'">&gt; $(ApiCompatBaseline)</ApiCompatBaselineAll>
+ <ApiCompatExitCode>0</ApiCompatExitCode>
+
+ <ApiCompatResponseFile>$(IntermediateOutputPath)apicompat.rsp</ApiCompatResponseFile>
+ <ApiCompatCmd>$(ToolHostCmd) "$(ToolsDir)ApiCompat.exe"</ApiCompatCmd>
+ </PropertyGroup>
+
+ <MakeDir Directories="$(IntermediateOutputPath)" />
+ <WriteLinesToFile File="$(ApiCompatResponseFile)" Lines="$(ApiCompatArgs)" Overwrite="true" />
+
+ <Exec Condition="Exists('$(ReferenceAssembly)')"
+ Command="$(ApiCompatCmd) @&quot;$(ApiCompatResponseFile)&quot; $(ApiCompatBaselineAll)"
+ CustomErrorRegularExpression="^[a-zA-Z]+ :"
+ StandardOutputImportance="Low"
+ IgnoreExitCode="true"
+ >
+ <Output TaskParameter="ExitCode" PropertyName="ApiCompatExitCode" />
+ </Exec>
+
+ <!--
+ To force incremental builds to show failures again we are invalidating
+ one compile input by touching the assembly info file
+ -->
+ <Touch Condition="'$(ApiCompatExitCode)'!='0'" Files="$(AssemblyInfoFile)" />
+ <Error Condition="'$(ApiCompatExitCode)'!='0'" Text="ApiCompat failed for '$(TargetPath)'" />
+ </Target>
+
+ <!-- Reverse APICompat to verify that the reference assembly has all the APIs that are in the implementation -->
+ <Target Name="RunMatchingRefApiCompat"
+ Condition="'$(RunMatchingRefApiCompat)' == 'true' AND '$(RunApiCompat)' == 'true' AND '@(ReferenceFromRuntime)' == ''" >
+
+ <PropertyGroup>
+ <ImplemetnationAssemblyAsContract>@(IntermediateAssembly)</ImplemetnationAssemblyAsContract>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <_ContractDependencyDirectoriesTemp Include="@(ReferencePath->'%(RootDir)%(Directory)')" />
+ <!-- Remove duplicate directories by batching over them -->
+ <!-- Add project references first to give precedence to project-specific files -->
+ <_ContractDependencyDirectories Condition="'%(_ContractDependencyDirectoriesTemp.ReferenceSourceTarget)'=='ProjectReference'" Include="%(_ContractDependencyDirectoriesTemp.Identity)" />
+ <_ContractDependencyDirectories Condition="'%(_ContractDependencyDirectoriesTemp.ReferenceSourceTarget)'!='ProjectReference'" Include="%(_ContractDependencyDirectoriesTemp.Identity)" />
+ <_ImplementationDependencyDirectories Include="@(ResolvedMatchingContract->'%(RootDir)%(Directory)')" />
+ <_ImplementationDependencyDirectories Include="$(ContractOutputPath)" />
+ </ItemGroup>
+
+ <PropertyGroup>
+ <MatchingRefApiCompatArgs>$(MatchingRefApiCompatArgs) "$(ImplemetnationAssemblyAsContract)"</MatchingRefApiCompatArgs>
+ <MatchingRefApiCompatArgs>$(MatchingRefApiCompatArgs) -contractDepends:"@(_ContractDependencyDirectories, ','),"</MatchingRefApiCompatArgs>
+ <MatchingRefApiCompatArgs>$(MatchingRefApiCompatArgs) -implDirs:"@(_ImplementationDependencyDirectories, ','),"</MatchingRefApiCompatArgs>
+ <MatchingRefApiCompatArgs Condition="'$(BaselineAllMatchingRefApiCompatError)'!='true' and Exists('$(MatchingRefApiCompatBaseline)')">$(MatchingRefApiCompatArgs) -baseline:"$(MatchingRefApiCompatBaseline)"</MatchingRefApiCompatArgs>
+ <MatchingRefApiCompatBaselineAll Condition="'$(BaselineAllMatchingRefApiCompatError)'=='true'">&gt; $(MatchingRefApiCompatBaseline)</MatchingRefApiCompatBaselineAll>
+
+ <MatchingRefApiCompatExitCode>0</MatchingRefApiCompatExitCode>
+
+ <MatchingRefApiCompatResponseFile>$(IntermediateOutputPath)MatchingRefApiCompat_verifyexactref.rsp</MatchingRefApiCompatResponseFile>
+ <MatchingRefApiCompatCmd>$(ToolHostCmd) "$(ToolsDir)ApiCompat.exe"</MatchingRefApiCompatCmd>
+ </PropertyGroup>
+
+ <MakeDir Directories="$(IntermediateOutputPath)" />
+ <WriteLinesToFile File="$(MatchingRefApiCompatResponseFile)" Lines="$(MatchingRefApiCompatArgs)" Overwrite="true" />
+
+ <Exec Condition="Exists('$(ReferenceAssembly)')"
+ Command="$(MatchingRefApiCompatCmd) @&quot;$(MatchingRefApiCompatResponseFile)&quot; $(MatchingRefApiCompatBaselineAll)"
+ CustomErrorRegularExpression="^[a-zA-Z]+ :"
+ StandardOutputImportance="Low"
+ IgnoreExitCode="true"
+ >
+ <Output TaskParameter="ExitCode" PropertyName="MatchingRefApiCompatExitCode" />
+ </Exec>
+
+ <!--
+ To force incremental builds to show failures again we are invalidating
+ one compile input by touching the assembly info file
+ -->
+ <Touch Condition="'$(MatchingRefApiCompatExitCode)'!='0'" Files="$(AssemblyInfoFile)" />
+ <Error Condition="'$(MatchingRefApiCompatExitCode)'!='0'" Text="MatchingRefApiCompat failed - The reference assembly doesn't match all the APIs in the implementation for '$(TargetPath)'. To address either fix errors in the reference assembly (referenced as implementation in compat errors for this reverse compat check), add the issues to the baseline file '$(MatchingRefApiCompatBaseline)' or disable this check by setting RunMatchingRefApiCompat=false in this project." />
+ </Target>
+</Project>