summaryrefslogtreecommitdiff
path: root/packages/microsoft.dotnet.buildtools/2.1.0-rc1-02804-05/lib/ReferenceAssemblies.targets
blob: 5b7fc1278b6dfc88aa89d7c9f1a5cfeb8d04bf72 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <!-- The first two parts of the assembly version represent API version, 
         the third part is for bugfixes, the fourth is for hotfixes/securtity-updates -->
    <APIVersion>$([System.Version]::Parse('$(AssemblyVersion)').ToString(2))</APIVersion>

    <_usingRoslyn Condition="'$(MSBuildToolsVersion)' == 'dogfood' OR '$(MSBuildToolsVersion)' &gt;= '14.0'">true</_usingRoslyn>

    <!-- Create a common root output directory for all reference assemblies -->
    <ReferenceAssemblyOutputPath Condition="'$(ReferenceAssemblyOutputPath)' == ''">$(BaseOutputPath)ref/</ReferenceAssemblyOutputPath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(IsReferenceAssembly)'=='true'">
    <AssemblyName Condition="'$(AssemblyName)' == ''">$(MSBuildProjectName)</AssemblyName>
    <TargetOutputRelPath Condition="'$(IsCompatAssembly)'=='true'">$(TargetOutputRelPath)Compat/</TargetOutputRelPath>
    <OutputPath>$(ReferenceAssemblyOutputPath)$(AssemblyName)/$(AssemblyVersion)/$(TargetOutputRelPath)</OutputPath>
    <IntermediateOutputPath>$(BaseIntermediateOutputPath)ref/$(AssemblyName)/$(AssemblyVersion)/$(TargetOutputRelPath)</IntermediateOutputPath>

    <OmitTransitiveCompileReferences>true</OmitTransitiveCompileReferences>
    <!-- if this is a reference assembly deployment project use compile assets 
         instead of runtime -->
    <NuGetDeploySourceItem>Reference</NuGetDeploySourceItem>
  </PropertyGroup>

  <ItemGroup Condition="'$(IsReferenceAssembly)'=='true'">
    <!-- All reference assemblies are marked APTCA. An internal tool used to generate reference 
         assembly source normalizes the security annotations from seed -> reference assembly 
         under that assumption. -->
    <!-- NOTE: Reference assemblies are not executable so this is for reference only and does 
         not provide any security privileges at runtime. -->
    <AssemblyInfoLines Include="[assembly:System.Security.AllowPartiallyTrustedCallers]" />
    <!-- All reference assemblies should have the 0x70 flag which prevents them from loading 
         and the ReferenceAssemblyAttribute. -->
    <AssemblyInfoLines Include="[assembly:System.Runtime.CompilerServices.ReferenceAssembly]" />
    <AssemblyInfoLines Include="[assembly:System.Reflection.AssemblyFlags((System.Reflection.AssemblyNameFlags)0x70)]" />
  </ItemGroup>

  <!-- Roslyn requires the runtimemetadataversion parameter when building a core assembly -->
  <Target Name="AddCoreAssemblyResponseFile" Condition="'$(IsCoreAssembly)' == 'true' AND '$(_usingRoslyn)' == 'true'" BeforeTargets="CoreCompile">
    <PropertyGroup>
      <CompilerResponseFile Condition="'$(CompilerResponseFile)'!=''">$(MSBuildThisFileDirectory)coreAssembly.rsp;$(CompilerResponseFile)</CompilerResponseFile>
      <CompilerResponseFile Condition="'$(CompilerResponseFile)'==''">$(MSBuildThisFileDirectory)coreAssembly.rsp</CompilerResponseFile>
    </PropertyGroup>
  </Target>
</Project>