Use a consistent rootfs location (#2005)
[platform/upstream/dotnet/runtime.git] / Directory.Build.props
1 <Project TreatAsLocalProperty="RepoRoot">
2
3   <PropertyGroup>
4     <!--
5       For non-SDK projects that import this file and then import Microsoft.Common.props,
6       tell Microsoft.Common.props not to import Directory.Build.props again
7     -->
8     <ImportDirectoryBuildProps>false</ImportDirectoryBuildProps>
9   </PropertyGroup>
10
11   <!--
12     Import the arcade sdk with these requirements.
13     After:
14       Configuration setup
15     Before:
16       DebugType needs to be not be set to embedded at least for facades
17       OutputPath setup
18   -->
19   <Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipImportArcadeSdkFromRoot)' != 'true'" />
20
21   <!-- Set these properties early enough for libraries as they import the Arcade SDK not early enough.  -->
22   <PropertyGroup Condition="'$(SkipImportArcadeSdkFromRoot)' == 'true'">
23     <RepoRoot>$([MSBuild]::EnsureTrailingSlash('$(MSBuildThisFileDirectory)'))</RepoRoot>
24     <RepositoryEngineeringDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng'))</RepositoryEngineeringDir>
25     <ArtifactsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</ArtifactsDir>
26     <ArtifactsBinDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin'))</ArtifactsBinDir>
27   </PropertyGroup>
28
29   <!-- The TFMs to build and test against. -->
30   <PropertyGroup>
31     <NETCoreAppCurrentVersion>5.0</NETCoreAppCurrentVersion>
32     <NetCoreAppCurrentTargetFrameworkMoniker>.NETCoreApp,Version=v$(NETCoreAppCurrentVersion)</NetCoreAppCurrentTargetFrameworkMoniker>
33     <NetCoreAppCurrent>netcoreapp$(NETCoreAppCurrentVersion)</NetCoreAppCurrent>
34     <NetFrameworkCurrent>net472</NetFrameworkCurrent>
35   </PropertyGroup>
36
37   <!--
38     Get ProjectToBuild and '<subset>ProjectToBuild' items. Using the items lets projects handle
39     $(Subset) automatically when creating project-to-project dependencies.
40   -->
41   <Import Project="$(RepositoryEngineeringDir)Subsets.props" />
42
43   <PropertyGroup>
44     <!-- Installer specific, required during restore. -->
45     <InstallerTasksOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsBinDir)', 'installer.tasks'))</InstallerTasksOutputPath>
46     <InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' == 'Core'">$([MSBuild]::NormalizePath('$(InstallerTasksOutputPath)', 'Debug', 'netstandard2.0', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
47     <InstallerTasksAssemblyPath Condition="'$(MSBuildRuntimeType)' != 'Core'">$([MSBuild]::NormalizePath('$(InstallerTasksOutputPath)', 'Debug', 'net46', 'installer.tasks.dll'))</InstallerTasksAssemblyPath>
48     <HostMachineInfoProps>$(ArtifactsObjDir)HostMachineInfo.props</HostMachineInfoProps>
49
50     <DocsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'docs'))</DocsDir>
51     <ManPagesDir>$([MSBuild]::NormalizeDirectory('$(DocsDir)', 'manpages'))</ManPagesDir>
52     <CoreLibSharedDir>$([MSBuild]::NormalizeDirectory('$(LibrariesProjectRoot)', 'System.Private.CoreLib', 'src'))</CoreLibSharedDir>
53   </PropertyGroup>
54
55   <!-- Packaging properties -->
56   <PropertyGroup>
57     <!--
58       This name is used to create a GIT repository URL https://github.com/dotnet/$(GitHubRepositoryName) used
59       to find source code for debugging. It is also used to name the build output manifest for orchestrated builds.
60     -->
61     <GitHubRepositoryName>runtime</GitHubRepositoryName>
62     <RepositoryUrl>git://github.com/dotnet/runtime</RepositoryUrl>
63     <ProjectUrl>https://github.com/dotnet/runtime</ProjectUrl>
64     <LicenseUrl>https://github.com/dotnet/runtime/blob/master/LICENSE.TXT</LicenseUrl>
65     <RuntimeIdGraphDefinitionFile>$([MSBuild]::NormalizePath('$(LibrariesProjectRoot)', 'pkg', 'Microsoft.NETCore.Platforms', 'runtime.json'))</RuntimeIdGraphDefinitionFile>
66     <LicenseFile>$(RepoRoot)LICENSE.TXT</LicenseFile>
67
68     <!-- Indicates this is not an officially supported release. Release branches should set this to false. -->
69     <IsPrerelease>true</IsPrerelease>
70
71     <!-- Experimental packages should not be stable -->
72     <SuppressFinalPackageVersion Condition="'$(SuppressFinalPackageVersion)' == '' and $(MSBuildProjectName.Contains('Experimental'))">true</SuppressFinalPackageVersion>
73     <IsShippingAssembly Condition="$(MSBuildProjectName.Contains('Experimental'))">false</IsShippingAssembly>
74
75     <!-- We don't want Private packages to be shipped to NuGet.org -->
76     <IsShippingPackage Condition="$(MSBuildProjectName.Contains('Private')) and '$(MSBuildProjectExtension)' == '.pkgproj'">false</IsShippingPackage>
77   </PropertyGroup>
78
79   <!-- Language configuration -->
80   <PropertyGroup>
81     <!-- default to allowing all language features -->
82     <LangVersion>latest</LangVersion>
83     <LangVersion Condition="'$(Language)' == 'C#'">preview</LangVersion>
84     <Deterministic>true</Deterministic>
85
86     <!-- Resource naming bug: https://github.com/microsoft/msbuild/issues/4740 -->
87     <EmbeddedResourceUseDependentUponConvention>false</EmbeddedResourceUseDependentUponConvention>
88   </PropertyGroup>
89
90   <PropertyGroup>
91     <!-- Default to portable build if not explicitly set -->
92     <PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
93     <!-- Used for launchSettings.json and runtime config files. -->
94     <AppDesignerFolder>Properties</AppDesignerFolder>
95     <!-- Determine what architecture we are building on. -->
96     <BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</BuildArchitecture>
97   </PropertyGroup>
98
99   <Import Project="$(RepositoryEngineeringDir)Analyzers.props" />
100
101 </Project>