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

dir.targets - github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: acbed35048691a154171759331dda43818a00a10 (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
110
111
112
113
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="14.0" InitialTargets="CheckForBuildTools" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <Target Name="CheckForBuildTools">
    <Error Condition="!Exists('$(ToolsDir)') and '$(OverrideToolsDir)'=='true'"
           Text="The tools directory [$(ToolsDir)] does not exist. Please run sync in your enlistment to ensure the tools are installed before attempting to build an individual project." />
    <Error Condition="!Exists('$(ToolsDir)') and '$(OverrideToolsDir)'!='true'"
           Text="The tools directory [$(ToolsDir)] does not exist. Please run init-tools.cmd in your enlistment to ensure the tools are installed before attempting to build an individual project." />
  </Target>

  <Import Project="buildvertical.targets" />

  <!-- Corefx-specific binplacing properties -->
  <PropertyGroup>
    <IsRuntimeAssembly Condition="'$(IsRuntimeAssembly)'=='' AND '$(IsReferenceAssembly)' != 'true' AND '$(BinPlaceRef)' != 'true' AND '$(IsTestProject)' != 'true'">true</IsRuntimeAssembly>
    <!-- Try to determine if this is a simple library without a ref project.
         https://github.com/dotnet/corefx/issues/14291 is tracking cleaning this up -->
    <IsRuntimeAndReferenceAssembly Condition="'$(IsRuntimeAndReferenceAssembly)' == '' and '$(IsRuntimeAssembly)' == 'true' and Exists('$(SourceDir)/$(MSBuildProjectName)') and !Exists('$(SourceDir)/$(MSBuildProjectName)/ref') and !$(MSBuildProjectName.StartsWith('System.Private'))">true</IsRuntimeAndReferenceAssembly>
    <IsNETCoreAppRef Condition="'$(IsNETCoreAppRef)' == ''">$(IsNETCoreApp)</IsNETCoreAppRef>
    <IsUAPRef Condition="'$(IsUAPRef)' == ''">$(IsUAP)</IsUAPRef>
    <IsNetFxNETStandardRef Condition="'$(IsNetFxNETStandardRef)' == ''">$(IsNetFxNETStandard)</IsNetFxNETStandardRef>

    <BinPlaceRef Condition="'$(BinPlaceRef)' == '' And ('$(IsReferenceAssembly)' == 'true' OR '$(IsRuntimeAndReferenceAssembly)' == 'true')">true</BinPlaceRef>
    <BinPlaceRuntime Condition="'$(BinPlaceRuntime)' == '' And ('$(IsRuntimeAssembly)' == 'true' OR '$(IsRuntimeAndReferenceAssembly)' == 'true')">true</BinPlaceRuntime>
  </PropertyGroup>

  <ItemGroup Condition="'@(BinPlaceConfiguration)' == ''">
    <!-- binplace to directories for the target vertical -->
    <BinPlaceConfiguration Include="$(BuildConfiguration)">
      <RefPath>$(BuildConfigurationRefPath)</RefPath>
      <RuntimePath>$(RuntimePath)</RuntimePath>
    </BinPlaceConfiguration>
    <!-- binplace to directories for packages -->
    <BinPlaceConfiguration Condition="'$(IsNETCoreApp)' == 'true' AND '$(BuildingNETCoreAppVertical)' == 'true'" Include="netcoreapp-$(_bc_OSGroup)">
      <PackageFileRefPath Condition="'$(IsNETCoreAppRef)' == 'true'">$(NETCoreAppPackageRefPath)</PackageFileRefPath>
      <PackageFileRuntimePath>$(NETCoreAppPackageRuntimePath)</PackageFileRuntimePath>
      <RuntimePath Condition="'$(BinPlaceNETCoreAppPackage)' == 'true'">$(NETCoreAppPackageRuntimePath)\..\runtime</RuntimePath>
      <!-- enable trimming for any runtime project that's part of the shared framework and hasn't already set ILLinkTrimAssembly -->
      <SetProperties Condition="'$(BinPlaceRuntime)' == 'true' AND '$(ILLinkTrimAssembly)' == ''">ILLinkTrimAssembly=true</SetProperties>
    </BinPlaceConfiguration>
    <BinPlaceConfiguration Condition="'$(IsUAPRef)'=='true' AND ('$(BuildingUAPVertical)' == 'true' OR '$(BuildingUAPAOTVertical)' == 'true')" Include="uap-$(_bc_OSGroup)">
      <PackageFileRefPath>$(UAPPackageRefPath)</PackageFileRefPath>
    </BinPlaceConfiguration>
    <BinPlaceConfiguration Condition="'$(IsUAP)' == 'true' AND '$(BuildingUAPVertical)' == 'true'" Include="uap-$(_bc_OSGroup)">
      <PackageFileRuntimePath>$(UAPPackageRuntimePath)</PackageFileRuntimePath>
    </BinPlaceConfiguration>
    <BinPlaceConfiguration Condition="'$(IsUAP)' == 'true' AND '$(BuildingUAPAOTVertical)' == 'true'" Include="uapaot-$(_bc_OSGroup)">
      <PackageFileRuntimePath>$(UAPAOTPackageRuntimePath)</PackageFileRuntimePath>
    </BinPlaceConfiguration>
    <BinPlaceConfiguration Condition="('$(IsNetFxNETStandard)' == 'true' OR '$(IsNetFxNETStandardRef)' == 'true') AND '$(BuildingNETFxVertical)' == 'true'"
                           Include="netfx-$(_bc_OSGroup);net462-$(_bc_OSGroup);net47-$(_bc_OSGroup)">
      <PackageFileRefPath Condition="'$(IsNetFxNETStandardRef)'=='true'">$(NetFxPackageRefPath)</PackageFileRefPath>
      <PackageFileRuntimePath Condition="'$(IsNetFxNETStandard)'=='true'">$(NetFxPackageRuntimePath)</PackageFileRuntimePath>
    </BinPlaceConfiguration>

    <!-- Setup the shared framework directory for testing -->
    <BinPlaceConfiguration Condition="'$(BinPlaceTestSharedFramework)' == 'true'" Include="netcoreapp-$(_bc_OSGroup)">
      <RuntimePath>$(NETCoreAppTestSharedFrameworkPath)</RuntimePath>
    </BinPlaceConfiguration>
    <!-- Setup the ILCInputFolder directory for testing uapaot -->
    <BinPlaceConfiguration Condition="'$(BinPlaceILCInputFolder)' == 'true'" Include="uapaot-$(_bc_OSGroup)">
      <RuntimePath>$(ILCFXInputFolder)</RuntimePath>
    </BinPlaceConfiguration>
    <!-- And the UAP folder for the F5 (CoreCLR UAP-debugging) scenario -->
    <BinPlaceConfiguration Condition="'$(BinPlaceUAPFramework)' == 'true'" Include="uap-$(_bc_OSGroup)">
      <RuntimePath>$(UAPTestSharedFrameworkPath)</RuntimePath>
    </BinPlaceConfiguration>
    <BinPlaceConfiguration Condition="'$(BinPlaceNETFXRuntime)' == 'true'" Include="netfx-$(_bc_OSGroup)">
      <RuntimePath>$(TestHostRootPath)</RuntimePath>
    </BinPlaceConfiguration>

    <!-- binplace targeting packs which may be different from BuildConfiguration -->
    <BinPlaceConfiguration Include="netstandard">
      <RefPath>$(RefRootPath)netstandard/</RefPath>
    </BinPlaceConfiguration>
    <!-- for BuildAllConfigurations make sure all refpaths are created.  -->
    <_TargetGroupsWithIsAot Condition="'$(BuildAllConfigurations)' == 'true'" Include="@(TargetGroups)">
      <IsAot>$([System.String]::new('%(Identity)').Contains('aot'))</IsAot>
    </_TargetGroupsWithIsAot>
    <BinPlaceConfiguration Condition="'$(BuildAllConfigurations)' == 'true'"
                           Include="@(_TargetGroupsWithIsAot->WithMetadataValue('IsAot', 'false'))">
      <RefPath>$(RefRootPath)%(Identity)/</RefPath>
    </BinPlaceConfiguration>
  </ItemGroup>

  <Import Project="$(ToolsDir)/Build.Common.targets" Condition="Exists('$(ToolsDir)/Build.Common.targets')" />

  <!-- permit a wrapping build system to contribute targets to this build -->
  <Import Condition="Exists('$(MSBuildThisFileDirectory)..\open.targets')" Project="$(MSBuildThisFileDirectory)..\open.targets" />

  <Import Project="$(MSBuildThisFileDirectory)referenceFromRuntime.targets" />
  <Import Project="$(MSBuildThisFileDirectory)illink.targets" />

  <ItemGroup Condition="'$(NuGetTargetMoniker)'=='.NETStandard,Version=v1.7'">
    <!-- Temporarily suppress the message until we get a nuget version that knows about the mapping between netstandard1.7 and uap10.1 -->
    <SuppressPackageTargetFrameworkCompatibility Include="uap10.1" />
  </ItemGroup>

  <Target Name="ProducesPackageId"
          Returns="@(PackageIds)">
    <ItemGroup>
      <PackageIds Include="$(Id)" />
    </ItemGroup>
  </Target>

  <Target Name="ReportConfigurationErrorMessage"
          BeforeTargets="AssignProjectConfiguration"
           Condition="'$(BuildConfigurations)' != ''" >
    <Message Importance="Low" Text="$(MSBuildProjectFullPath), C: $(Configuration) BC: $(BuildConfiguration) BCs: $(BuildConfigurations)" />
    <Message Importance="High" Condition="'$(ConfigurationErrorMsg)' != ''" Text="$(MSBuildProjectFullPath) ConfigurationErrorMessage: $(ConfigurationErrorMsg)" />
  </Target>

</Project>