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

github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJose Perez Rodriguez <joperezr@microsoft.com>2017-02-22 00:09:04 +0300
committerGitHub <noreply@github.com>2017-02-22 00:09:04 +0300
commit8d546b1a057ecc9a1923a21b2193bf1160255b8f (patch)
tree3c12c0094402f0f2fe41ce8e6777c6d9c6a276fd /src/shims/ApiCompat.proj
parentda677060e1a17faa8344d55040b374008a7dbdf8 (diff)
Changing uap and uapaot apiCompat baselines to run against implementation instead of reference assemblies (#16132)
Changing uap and uapaot apiCompat baselines to run against implementation instead of reference assemblies
Diffstat (limited to 'src/shims/ApiCompat.proj')
-rw-r--r--src/shims/ApiCompat.proj55
1 files changed, 55 insertions, 0 deletions
diff --git a/src/shims/ApiCompat.proj b/src/shims/ApiCompat.proj
new file mode 100644
index 0000000000..6c640b9be5
--- /dev/null
+++ b/src/shims/ApiCompat.proj
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
+ <Import Project="dir.props" />
+
+ <PropertyGroup>
+ <ApiCompatResponseFile>$(IntermediateOutputPath)/apicompat.rsp</ApiCompatResponseFile>
+ <ApiCompatBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netfx461.txt</ApiCompatBaselineFile>
+ <ApiCompatNSBaselineFile>$(MSBuildThisFileDirectory)ApiCompatBaseline.$(TargetGroup).netstandard20.txt</ApiCompatNSBaselineFile>
+ <ApiCompatImplementationDirs>$(RefPath),$(GenFacadesOutputPath)</ApiCompatImplementationDirs>
+ <!-- If we are targeting uap or uapaot run ApiCompat against the implementation assemblies instead since they don't match the reference assemblies -->
+ <ApiCompatImplementationDirs Condition="'$(TargetGroup)'=='uap' or '$(TargetGroup)'=='uapaot'">$(RuntimePath),$(GenFacadesOutputPath)</ApiCompatImplementationDirs>
+ </PropertyGroup>
+
+ <!-- Run ApiCompat -->
+ <Target Name="RunApiCompat"
+ Inputs="$(ApiCompatResponseFile);@(GenFacadesContracts)"
+ Outputs="$(ApiCompatBaselineFile);$(ApiCompatNSBaselineFile)"
+ >
+ <PropertyGroup>
+ <ApiCompatArgs>$(ApiCompatArgs) -implDirs:"$(ApiCompatImplementationDirs)"</ApiCompatArgs>
+ <ApiCompatExitCode>0</ApiCompatExitCode>
+
+ <ApiCompatCmd>$(ToolHostCmd) "$(ToolsDir)ApiCompat.exe"</ApiCompatCmd>
+ </PropertyGroup>
+
+ <MakeDir Directories="$(IntermediateOutputPath)" />
+ <WriteLinesToFile File="$(ApiCompatResponseFile)" Lines="$(ApiCompatArgs)" Overwrite="true" />
+
+ <Exec Command="$(ApiCompatCmd) &quot;@(NetFxReference->'$(NetFxRefPath)%(Identity).dll')&quot; @&quot;$(ApiCompatResponseFile)&quot; &gt; $(ApiCompatBaselineFile)"
+ Condition="'$(TargetGroup)'=='netcoreapp'"
+ CustomErrorRegularExpression="^[a-zA-Z]+ :"
+ StandardOutputImportance="Low"
+ IgnoreExitCode="true"
+ >
+ <Output TaskParameter="ExitCode" PropertyName="ApiCompatExitCode" />
+ </Exec>
+
+ <Exec Command="$(ApiCompatCmd) &quot;$(NetStandardRefPath)&quot; @&quot;$(ApiCompatResponseFile)&quot; &gt; $(ApiCompatNSBaselineFile)"
+ CustomErrorRegularExpression="^[a-zA-Z]+ :"
+ StandardOutputImportance="Low"
+ IgnoreExitCode="true"
+ >
+ <Output TaskParameter="ExitCode" PropertyName="ApiCompatExitCode" />
+ </Exec>
+
+ </Target>
+
+ <Target Name="Build" DependsOnTargets="RunApiCompat" />
+ <Target Name="Clean">
+ <RemoveDir Directories="$(IntermediateOutputPath);$(GenFacadesOutputPath)" />
+ </Target>
+ <Target Name="Rebuild" DependsOnTargets="Clean;Build" />
+
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>