Merge pull request #14004 from noahfalk/fix_tiered_dynamicmethod
[platform/upstream/coreclr.git] / src / sign.builds
1 <?xml version="1.0" encoding="utf-8"?>
2 <Project ToolsVersion="14.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3
4   <Import Project="..\dir.props"/>
5   <Import Project="..\dir.targets" />
6
7   <PropertyGroup>
8     <!-- The SignFiles target needs OutDir to be defined -->
9     <OutDir>$(BinDir)</OutDir>
10   </PropertyGroup>
11
12   <UsingTask AssemblyFile="$(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll" TaskName="ReadSigningRequired" />
13
14   <ItemGroup>
15     <WindowsNativeLocation Include="$(BinDir)*.dll" />
16     <WindowsNativeLocation Include="$(BinDir)*.exe" />
17   </ItemGroup>
18
19   <Target Name="GenerateSignForWindowsNative">
20     <!--
21       Managed assemblies should already have a requires_signing file dropped so only generate
22       a requires_signing file for ones that don't exist which should leave just native assembies
23     -->
24     <WriteSigningRequired AuthenticodeSig="$(AuthenticodeSig)"
25                           MarkerFile="%(WindowsNativeLocation.Identity).requires_signing"
26                           Condition="!Exists('%(WindowsNativeLocation.Identity).requires_signing')" />
27   </Target>
28
29   <!-- populates item group FilesToSign with the list of files to sign -->
30   <Target Name="GetFilesToSignItems"
31           DependsOnTargets="GenerateSignForWindowsNative">
32     <!-- read all of the marker files and populate the FilesToSign item group -->
33     <ItemGroup>
34       <SignMarkerFile Include="$(OutDir)**\*.requires_signing" />
35     </ItemGroup>
36     <ReadSigningRequired MarkerFiles="@(SignMarkerFile)">
37       <Output TaskParameter="SigningMetadata" ItemName="FilesToSign" />
38     </ReadSigningRequired>
39
40     <Message Importance="High" Text="Attempting to sign %(FilesToSign.Identity) with authenticode='%(FilesToSign.Authenticode)' and strongname='%(FilesToSign.StrongName)'" />
41
42   </Target>
43
44   <Target Name="Build"
45           Condition="'$(SkipSigning)' != 'true' and '$(SignType)' != 'oss'"
46           DependsOnTargets="GetFilesToSignItems;SignFiles">
47
48     <!-- now that the files have been signed delete the marker files -->
49     <Delete Files="@(SignMarkerFile)" />
50   </Target>
51
52 </Project>