Was too aggressive with changes to PackageOutputPath property.
[platform/upstream/coreclr.git] / dir.props
1 <?xml version="1.0" encoding="utf-8"?>
2 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
3   <Import Condition="Exists('..\dir.props')" Project="..\dir.props" />
4
5   <Import Project="dir.common.props" />
6
7   <PropertyGroup>
8     <LangVersion>8.0</LangVersion>
9     <UseSharedCompilation>true</UseSharedCompilation>
10   </PropertyGroup>
11
12   <!-- Set the kind of PDB to Portable -->
13   <PropertyGroup>
14     <DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
15   </PropertyGroup>
16
17   <!-- Version numbers for both managed & native binaries -->
18   <PropertyGroup>
19     <MajorVersion>4</MajorVersion>
20     <MinorVersion>6</MinorVersion>
21   </PropertyGroup>
22
23   <!--
24      Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer
25      as well as running the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks.
26      -->
27   <PropertyGroup>
28     <RunningOnCore>false</RunningOnCore>
29     <RunningOnCore Condition="'$(MSBuildRuntimeType)' == 'core'">true</RunningOnCore>
30     <BuildToolsTargetsDesktop>false</BuildToolsTargetsDesktop>
31     <BuildToolsTargetsDesktop Condition="'$(RunningOnCore)' != 'true'">true</BuildToolsTargetsDesktop>
32     <BuildToolsTargets45>$(BuildToolsTargetsDesktop)</BuildToolsTargets45>
33   </PropertyGroup>
34
35   <!-- Common properties -->
36   <PropertyGroup>
37
38     <ProjectDir>$(__ProjectDir)\</ProjectDir>
39     <ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
40
41     <SourceDir>$(__SourceDir)\</SourceDir>
42     <SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
43
44     <!-- This name is used to create a GIT repository URL https://github.com/dotnet/$(GitHubRepositoryName) used to find source code for debugging -->
45     <GitHubRepositoryName Condition="'$(GitHubRepositoryName)' == ''">coreclr</GitHubRepositoryName>
46
47     <RootBinDir>$(__RootBinDir)\</RootBinDir>
48     <RootBinDir Condition="'$(__RootBinDir)'==''">$(ProjectDir)bin\</RootBinDir>
49
50     <BinDir>$(__BinDir)\</BinDir>
51     <BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(PlatformConfigPathPart)\</BinDir>
52
53     <!-- We don't append back slash because this path is used by nuget.exe as output directory and it
54          fails to write packages to it if the path contains the forward slash.
55     -->
56     <PackagesBinDir>$(__PackagesBinDir)</PackagesBinDir>
57     <PackagesBinDir Condition="'$(__PackagesBinDir)'==''">$(BinDir).nuget\</PackagesBinDir>
58
59     <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools\</ToolsDir>
60     <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ProjectDir).dotnet\</DotnetCliPath>
61     <OverrideToolHost>$(DotnetCliPath)dotnet</OverrideToolHost>
62     <BuildToolsSemaphore Condition="'$(BuildToolsSemaphore)' == ''">$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll</BuildToolsSemaphore>
63
64     <TestWorkingDir>$(__TestWorkingDir)\</TestWorkingDir>
65     <TestWorkingDir Condition="'$(__TestWorkingDir)'==''">$(RootBinDir)tests\$(PlatformConfigPathPart)\</TestWorkingDir>
66
67     <Platform Condition="'$(Platform)' == ''">$(BuildArch)</Platform>
68     <Platform Condition="'$(Platform)' == 'amd64'">x64</Platform>
69
70     <!-- Default to portable build if not explicitly set -->
71     <PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
72
73     <OverrideRestoreOutputPath>true</OverrideRestoreOutputPath>
74   </PropertyGroup>
75
76   <!-- Output paths -->
77   <PropertyGroup>
78     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj\</BaseIntermediateOutputPath>
79
80     <AppendTargetFrameworkToOutputPath Condition="'$(ArcadeBuild)' == 'true'">false</AppendTargetFrameworkToOutputPath>
81     <IntermediateOutputPath>$(__IntermediatesDir)\$(MSBuildProjectName)\</IntermediateOutputPath>
82     <IntermediateOutputPath Condition="'$(__IntermediatesDir)' == ''">$(RootBinDir)obj/$(PlatformConfigPathPart)/$(MSBuildProjectName)/</IntermediateOutputPath>
83
84     <OutputPath Condition="'$(OutputPath)' == ''">$(BinDir)</OutputPath>
85   </PropertyGroup>
86
87   <!-- Explicitly set BuildVersionFile before importing common. This is used by BuildVersion.targets. -->
88   <PropertyGroup Condition="'$(OfficialBuildId)' != ''">
89     <BuildVersionFile>$(BaseIntermediateOutputPath)BuildVersion-$(OfficialBuildId).props</BuildVersionFile>
90   </PropertyGroup>
91
92   <!-- Import Build tools common props file where repo-independent properties are found -->
93   <Import Condition="Exists('$(ToolsDir)Build.Common.props')" Project="$(ToolsDir)Build.Common.props" />
94
95   <!-- Setup common target properties that we use to conditionally include sources -->
96   <PropertyGroup>
97     <TargetsFreeBSD Condition="'$(BuildOS)' == 'FreeBSD'">true</TargetsFreeBSD>
98     <TargetsLinux Condition="'$(BuildOS)' == 'Linux'">true</TargetsLinux>
99     <TargetsNetBSD Condition="'$(BuildOS)' == 'NetBSD'">true</TargetsNetBSD>
100     <TargetsOSX Condition="'$(BuildOS)' == 'OSX'">true</TargetsOSX>
101     <TargetsWindows Condition="'$(BuildOS)' == 'Windows_NT'">true</TargetsWindows>
102
103     <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true'">true</TargetsUnix>
104
105     <!-- We are only tracking Linux Distributions for Nuget RID mapping -->
106     <DistroRid Condition="'$(TargetsLinux)' == 'true'">$(__DistroRid)</DistroRid>
107
108   </PropertyGroup>
109
110   <!-- Provides properties for dependency versions and configures dependency verification/auto-upgrade. -->
111   <Import Project="$(ProjectDir)dependencies.props" />
112
113   <!-- Packaging properties -->
114   <PropertyGroup>
115     <LicenseUrl>https://github.com/dotnet/coreclr/blob/master/LICENSE.TXT</LicenseUrl>
116     <PackageDescriptionFile>$(SourceDir).nuget/descriptions.json</PackageDescriptionFile>
117     <PackageLicenseFile>$(ProjectDir)LICENSE.TXT</PackageLicenseFile>
118     <PackageThirdPartyNoticesFile>$(ProjectDir)THIRD-PARTY-NOTICES.TXT</PackageThirdPartyNoticesFile>
119     <SyncInfoDirectory>$(BaseIntermediateOutputPath)</SyncInfoDirectory>
120
121     <!-- If true, indicates that this is not an officially supported release -->
122     <!-- It is important to flip this to false in official release branches -->
123     <!-- Keep it in sync with PRERELEASE in clrdefinitions.cmake -->
124     <IsPrerelease>true</IsPrerelease>
125
126     <!-- This should be kept in sync with package details in src/.nuget/init/project.json -->
127     <RuntimeIdGraphDefinitionVersion>1.0.2-beta-24224-02</RuntimeIdGraphDefinitionVersion>
128     <RuntimeIdGraphDefinitionFile>$(PackagesDir)/microsoft.netcore.platforms/$(RuntimeIdGraphDefinitionVersion)/runtime.json</RuntimeIdGraphDefinitionFile>
129
130     <!-- This link should be updated for each release milestone, currently this points to 1.1.0-beta -->
131     <ReleaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</ReleaseNotes>
132
133     <ProjectUrl>https://dot.net</ProjectUrl>
134
135     <!-- On Windows, MSbuild can still run against Desktop FX while it runs on .NET Core on non-Windows. this requires
136          pulling in different packaging dependencies.
137      -->
138     <PackagingTaskDir Condition="'$(MSBuildRuntimeType)' != 'core'">$(ToolsDir)net46/</PackagingTaskDir>
139     <!-- defined in buildtools packaging.targets, but we need this before targets are imported -->
140     <PackagePlatform Condition="'$(PackagePlatform)' == ''">$(Platform)</PackagePlatform>
141     <PackagePlatform Condition="'$(PackagePlatform)' == 'amd64'">x64</PackagePlatform>
142     <MinOSForArch>win7</MinOSForArch>
143     <MinOSForArch Condition="'$(PackagePlatform)' == 'arm'">win8</MinOSForArch>
144     <MinOSForArch Condition="'$(PackagePlatform)' == 'arm64'">win10</MinOSForArch>
145     <!-- This property must be set to disable local package installation -->
146     <SkipInstallLocallyBuiltPackages>true</SkipInstallLocallyBuiltPackages>
147
148     <!-- Define packaging attributes for cross target components -->
149     <HasCrossTargetComponents Condition="'$(TargetsWindows)' == 'true' and ('$(PackagePlatform)' =='arm64' or '$(PackagePlatform)' =='arm')">true</HasCrossTargetComponents>
150     <HasCrossTargetComponents Condition="'$(TargetsLinux)' == 'true' and ('$(PackagePlatform)' =='arm64' or '$(PackagePlatform)' =='arm') and '$(__DoCrossArchBuild)' == '1'">true</HasCrossTargetComponents>
151     <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm64'">x64</CrossTargetComponentFolder>
152     <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm' and '$(TargetsWindows)' == 'true'">x86</CrossTargetComponentFolder>
153     <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm' and '$(TargetsLinux)' == 'true'">x64</CrossTargetComponentFolder>
154
155     <!-- Created package output locations must be kept in sync with eng/build-job.yml -->
156     <PackageOutputPath>$(PackagesBinDir)/pkg/</PackageOutputPath>
157     <SymbolPackageOutputPath>$(PackagesBinDir)/symbolpkg/</SymbolPackageOutputPath>
158     <PackageIndexFile>$(MSBuildThisFileDirectory)/src/.nuget/packageIndex.json</PackageIndexFile>
159
160     <!-- coreclr doesn't currently use the index so don't force it to be in sync -->
161     <SkipIndexCheck>true</SkipIndexCheck>
162   </PropertyGroup>
163
164   <!-- Add required legal files to packages -->
165   <ItemGroup Condition="'$(MSBuildProjectExtension)' == '.pkgproj'">
166     <File Condition="Exists('$(PackageLicenseFile)')"
167           Include="$(PackageLicenseFile)" >
168       <SkipPackageFileCheck>true</SkipPackageFileCheck>
169     </File>
170     <File Condition="Exists('$(PackageThirdPartyNoticesFile)')"
171           Include="$(PackageThirdPartyNoticesFile)" >
172       <SkipPackageFileCheck>true</SkipPackageFileCheck>
173     </File>
174     <PackageIndex Include="$(PackageIndexFile)" />
175   </ItemGroup>
176
177   <!-- Use Roslyn Compilers to build -->
178   <Import Project="$(RoslynPropsFile)" Condition="Exists('$(RoslynPropsFile)')" />
179 </Project>