summaryrefslogtreecommitdiff
path: root/src/mscorlib/facade/mscorlib.csproj
blob: 7d0133af39ec07e7b4009615218643eaa9bd7ff6 (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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />

  <PropertyGroup>
    <AssemblyName>mscorlib</AssemblyName>
    <ProjectGuid>{263342A6-FC48-4CFC-B16A-2AF964D3536C}</ProjectGuid>
    <ClsCompliant>true</ClsCompliant>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
    <IsPartialFacadeAssembly>true</IsPartialFacadeAssembly>
    <OutputType>Library</OutputType>
    <ExcludeMscorlibFacade>true</ExcludeMscorlibFacade>

    <!-- This prevents the default MsBuild targets from referencing System.Core.dll -->
    <AddAdditionalExplicitAssemblyReferences>false</AddAdditionalExplicitAssemblyReferences>
    <!-- These prevent the default MsBuild targets from referencing System.dll and mscorlib.dll -->
    <NoStdLib>true</NoStdLib>
    <NoCompilerStandardLib>true</NoCompilerStandardLib>

    <DebugSymbols>true</DebugSymbols>
    <DebugType>full</DebugType>
    <AvailablePlatforms>amd64,x86,arm,arm-softfp,arm64</AvailablePlatforms>
    <Configuration Condition=" '$(Configuration)' == '' ">$(BuildType)</Configuration>
    <Platform Condition=" '$(Platform)' == '' ">$(BuildArch)</Platform>
    <!-- The CLR properties use amd64 as their platform string, we want to keep in sync with those, so set Platform appropriately,
         though still use the 'x64' output path (see use of BuildArch below) -->
    <Platform Condition=" '$(Platform)' == 'x64' ">amd64</Platform>
    <Platform Condition=" '$(Platform)' == 'arm-softfp' ">arm</Platform>

    <!-- We want to exclude the transitive closure of the packages pulled in via project.json as that introduces ambiguity -->
    <OmitTransitiveCompileReferences>true</OmitTransitiveCompileReferences>
    <NuGetTargetMoniker>.NETStandard,Version=v1.3</NuGetTargetMoniker>
  </PropertyGroup>

  <!-- Default configurations to help VS understand the options -->
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Debug|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50_Debug|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50_Release|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50aot_Debug|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'netcore50aot_Release|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'net462_Debug|AnyCPU'" />
  <PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'net462_Release|AnyCPU'" />

  <!-- Roslyn does not support writing PDBs on Unix -->
  <PropertyGroup Condition="'$(OsEnvironment)' == 'Unix'">
    <DebugSymbols>false</DebugSymbols>
    <DebugType>none</DebugType>
  </PropertyGroup>

  <!-- Output paths -->
  <PropertyGroup>
    <BaseIntermediateOutputPath>$(RootBinDir)\obj</BaseIntermediateOutputPath>
    <!-- IntermediateOutputPath must have a trailing slash, however GenFacades
         surrounds the value in quotes when passing as the '-facadepath' argument.
         To avoid escaping the trailing quote, use a forward slash. -->
    <IntermediateOutputPath>$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(Configuration)\facade/</IntermediateOutputPath>
    <OutputPath>$(BinDir)\facade</OutputPath>
  </PropertyGroup>

  <ItemGroup>
    <ProjectReference Include="..\System.Private.CoreLib.csproj" />
  </ItemGroup>

  <ItemGroup>
    <None Include="project.json" />
  </ItemGroup>

  <PropertyGroup>
    <StrongNameSig>Silverlight</StrongNameSig>
  </PropertyGroup>

  <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />

  <PropertyGroup>
    <!-- Overwrite the key that we are going to use for signing -->
    <AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)..\Tools\Signing\mscorlib.snk</AssemblyOriginatorKeyFile>
  </PropertyGroup>

  <!-- the signing marker file is incorrectly named mscorlib.dll.requires_signing -->
  <Target Name="RenameSigningMarker" AfterTargets="WriteSigningRequired" Condition="Exists('$(TargetPath).requires_signing')">
    <Move SourceFiles="$(TargetPath).requires_signing" DestinationFiles="$(OutputPath)\System.Private.CoreLib.dll.requires_signing" />
  </Target>

  <ItemGroup>
    <SeedTypePreference Include="System.Console">
      <Assembly>System.Console</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.BinaryReader">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.BinaryWriter">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.EndOfStreamException">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.MemoryStream">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.SeekOrigin">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
    <SeedTypePreference Include="System.IO.Stream">
      <Assembly>System.IO</Assembly>
    </SeedTypePreference>
  </ItemGroup>

</Project>