Merge pull request #3955 from davmason/master
[platform/upstream/coreclr.git] / dir.props
1 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
2
3   <!--
4     $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
5   -->
6   <PropertyGroup>
7     <OsEnvironment Condition="'$(OsEnvironment)'=='' and '$(OS)'=='OSX'">Unix</OsEnvironment>
8     <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
9   </PropertyGroup>
10   
11   <!-- Build Tools Versions -->
12   <PropertyGroup>
13     <RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
14     <RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
15   </PropertyGroup>
16
17     <!-- 
18      Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer 
19      as well as runnning the build on mono. Until we can get these sorted out we will continue using the .NET 4.5 version of the tasks. 
20      --> 
21   <PropertyGroup>
22     <BuildToolsTargets45>true</BuildToolsTargets45> 
23   </PropertyGroup>
24   
25   <!-- Common properties -->
26   <PropertyGroup>
27     <!-- Set basic properties and normalize -->
28     
29     <BuildArch>$(__BuildArch)</BuildArch>
30     <BuildArch Condition="'$(__BuildArch)'==''">x64</BuildArch>
31     <BuildArch Condition="'$(__BuildArch)' == 'amd64'">x64</BuildArch>
32
33     <BuildType Condition="'$(__BuildType)'==''">Debug</BuildType>
34     <BuildType Condition="'$(__BuildType)' == 'debug'">Debug</BuildType>
35     <BuildType Condition="'$(__BuildType)' == 'release'">Release</BuildType>
36     <BuildType Condition="'$(__BuildType)' == 'checked'">Checked</BuildType>
37
38     <BuildOS>$(__BuildOS)</BuildOS>
39     <BuildOS Condition="'$(__BuildOS)' == ''">Windows_NT</BuildOS>
40
41     <ProjectDir>$(__ProjectDir)\</ProjectDir>
42     <ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
43
44     <SourceDir>$(__SourceDir)\</SourceDir>
45     <SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
46
47     <PackagesDir>$(__PackagesDir)\</PackagesDir>
48     <PackagesDir Condition="'$(__PackagesDir)'==''">$(ProjectDir)packages\</PackagesDir>
49
50     <RootBinDir>$(__RootBinDir)\</RootBinDir>
51     <RootBinDir Condition="'$(__RootBinDir)'==''">$(ProjectDir)bin\</RootBinDir>
52
53     <BinDir>$(__BinDir)\</BinDir>
54     <BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(BuildOS).$(BuildArch).$(BuildType)\</BinDir>
55
56     <IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(__IntermediatesDir)\</IntermediateOutputRootPath>
57
58     <!-- We don't append back slash because this path is used by nuget.exe as output directory and it
59          fails to write packages to it if the path contains the forward slash.
60     -->
61     <PackagesBinDir>$(__PackagesBinDir)</PackagesBinDir>
62     <PackagesBinDir Condition="'$(__PackagesBinDir)'==''">$(BinDir).nuget\</PackagesBinDir>
63     
64     <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools/</ToolsDir> 
65     <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath> 
66     <BuildToolsSemaphore Condition="'$(BuildToolsSemaphore)' == ''">$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll</BuildToolsSemaphore>
67     
68     <TestWorkingDir>$(__TestWorkingDir)\</TestWorkingDir>
69     <TestWorkingDir Condition="'$(__TestWorkingDir)'==''">$(RootBinDir)tests\$(BuildOS).$(BuildArch).$(BuildType)\</TestWorkingDir>
70     <BuildToolsTaskDir Condition="'$(BuildToolsTargets45)' == 'true'">$(ToolsDir)net45/</BuildToolsTaskDir>
71
72     <Platform Condition="'$(Platform)' == ''">$(BuildArch)</Platform>
73     <Platform Condition="'$(Platform)' == 'amd64'">x64</Platform>
74     
75   </PropertyGroup>
76
77   <!-- Output paths -->
78   <PropertyGroup>
79     <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj</BaseIntermediateOutputPath>
80     <IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(BuildType)</IntermediateOutputPath>
81     <OutputPath Condition="'$(OutputPath)' == ''">$(BaseIntermediateOutputPath)\$(BuildOS).$(BuildArch).$(BuildType)</OutputPath>
82     <FinalOutputPath Condition="'$(FinalOutputPath)' == ''">$(BinDir)</FinalOutputPath>
83   </PropertyGroup>
84   
85   <!-- Import Build tools common props file where repo-independent properties are found -->  
86   <Import Condition="Exists('$(ToolsDir)Build.Common.props')" Project="$(ToolsDir)Build.Common.props" />  
87
88   
89   <!-- Common nuget properties -->
90   <PropertyGroup>
91     <NuGetToolPath Condition="'$(NuGetToolPath)'==''">$(PackagesDir)NuGet.exe</NuGetToolPath>
92     <NuGetConfigFile Condition="'$(NuGetConfigFile)'==''">$(SourceDir)NuGet.Config</NuGetConfigFile>
93     <NuGetConfigCommandLine>-ConfigFile "$(NuGetConfigFile)"</NuGetConfigCommandLine>
94
95     <NugetRestoreCommand>"$(NuGetToolPath)"</NugetRestoreCommand>
96     <NugetRestoreCommand>$(NugetRestoreCommand) install</NugetRestoreCommand>
97     <!-- Trim off the last slash so that nuget doesn't get confused and say there are illegal characters on
98          the path. -->
99     <NugetRestoreCommand>$(NugetRestoreCommand) -OutputDirectory "$(PackagesDir.TrimEnd('\\'))"</NugetRestoreCommand>
100     <NugetRestoreCommand>$(NugetRestoreCommand) $(NuGetConfigCommandLine)</NugetRestoreCommand>
101     <NugetRestoreCommand>$(NugetRestoreCommand) -Verbosity detailed</NugetRestoreCommand>
102     <NugetRestoreCommand Condition="'$(OsEnvironment)'=='Unix'">mono $(NuGetRestoreCommand)</NugetRestoreCommand>
103   </PropertyGroup>
104   
105   <PropertyGroup>
106     <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'!='Unix'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>  
107     <DotnetToolCommand Condition="'$(DotnetToolCommand)'=='' and '$(OsEnvironment)'=='Unix'">$(DotnetCliPath)dotnet</DotnetToolCommand>  
108
109     <!-- If CORE_ROOT is set on Windows, the dotnet CLI tool tries to use it. This results in DLL resolution errors. Unset CORE_ROOT during restore. -->
110     <DnuRestoreCommand Condition="'$(OsEnvironment)'!='Unix'">(set CORE_ROOT=) &amp;</DnuRestoreCommand>
111     
112     <DnuRestoreCommand>$(DnuRestoreCommand) "$(DotnetToolCommand)"</DnuRestoreCommand> 
113     <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
114     <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('\\'))"</DnuRestoreCommand>
115     <DnuRestoreCommand Condition="'$(InferRuntimes)'!='false'">$(DnuRestoreCommand) --infer-runtimes</DnuRestoreCommand>
116   </PropertyGroup>
117   
118   <!--
119     Set up Roslyn predefines
120   -->
121   <PropertyGroup>
122     <RoslynPackageDir>$(PackagesDir)/$(RoslynPackageName).$(RoslynVersion)/</RoslynPackageDir>
123     <RoslynPropsFile>$(RoslynPackageDir)build/Microsoft.Net.ToolsetCompilers.props</RoslynPropsFile>
124   </PropertyGroup>
125
126   <!-- Setup common target properties that we use to conditionally include sources -->
127   <PropertyGroup>
128     <TargetsFreeBSD Condition="'$(BuildOS)' == 'FreeBSD'">true</TargetsFreeBSD>
129     <TargetsLinux Condition="'$(BuildOS)' == 'Linux'">true</TargetsLinux>
130     <TargetsOSX Condition="'$(BuildOS)' == 'OSX'">true</TargetsOSX>
131     <TargetsWindows Condition="'$(BuildOS)' == 'Windows_NT'">true</TargetsWindows>
132     
133     <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsOSX)' == 'true'">true</TargetsUnix>
134
135     <!-- We are only tracking Linux Distributions for Nuget RID mapping -->
136     <DistroName Condition="'$(TargetsLinux)' == 'true'">$(__DistroName)</DistroName>
137
138   </PropertyGroup>
139
140   <!-- Packaging properties -->
141   <PropertyGroup>
142     <PreReleaseLabel>rc3</PreReleaseLabel>
143     <PackageDescriptionFile>$(SourceDir).nuget/descriptions.json</PackageDescriptionFile>
144     <PackageLicenseFile>$(SourceDir).nuget/dotnet_library_license.txt</PackageLicenseFile>
145     <PackageThirdPartyNoticesFile>$(SourceDir).nuget/ThirdPartyNotices.txt</PackageThirdPartyNoticesFile>
146     
147     <!-- This should be kept in sync with package details in src/.nuget/init/project.json -->
148     <RuntimeIdGraphDefinitionFile>$(PackagesDir)/Microsoft.NETCore.Platforms/1.0.1-rc2-23712/runtime.json</RuntimeIdGraphDefinitionFile>
149
150     <!-- On Windows, MSbuild still runs against Desktop FX while it runs on .NET Core on non-Windows. this requires
151          pulling in different packaging dependencies.
152      -->
153     <PackagingTaskDir Condition="'$(TargetsWindows)' == 'true'">$(ToolsDir)net45/</PackagingTaskDir>
154     <BuildNumberMajor Condition="'$(BuildNumberMajor)' == ''">00001</BuildNumberMajor>
155     <!-- defined in buildtools packaging.targets, but we need this before targets are imported -->
156     <PackagePlatform Condition="'$(PackagePlatform)' == ''">$(Platform)</PackagePlatform>
157     <PackagePlatform Condition="'$(PackagePlatform)' == 'amd64'">x64</PackagePlatform>
158     <PackageOutputPath>$(PackagesBinDir)/pkg/</PackageOutputPath>
159   </PropertyGroup>
160
161 </Project>