1 <Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
4 $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
7 <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
10 <!-- Build Tools Versions -->
12 <BuildToolsVersion>1.0.25-prerelease-00121</BuildToolsVersion>
13 <BuildToolsCoreCLRVersion>1.0.3-prerelease</BuildToolsCoreCLRVersion>
14 <DnxVersion Condition="'$(OsEnvironment)'!='Unix'">1.0.0-rc2-16128</DnxVersion>
15 <DnxVersion Condition="'$(OsEnvironment)'=='Unix'">1.0.0-rc2-16128</DnxVersion>
16 <DnxPackageName Condition="'$(DnxPackageName)' == '' and '$(OsEnvironment)'!='Unix'">dnx-coreclr-win-x86.$(DnxVersion)</DnxPackageName>
17 <DnxPackageName Condition="'$(DnxPackageName)' == '' and '$(OsEnvironment)'=='Unix'">dnx-mono.$(DnxVersion)</DnxPackageName>
18 <RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
19 <RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
20 <BuildToolsCoreCLRPackageName>Microsoft.DotNet.BuildTools.CoreCLR</BuildToolsCoreCLRPackageName>
21 <BuildToolsCoreCLRLocation>$(ToolsDir)$(BuildToolsCoreCLRPackageName).$(BuildToolsCoreCLRVersion)</BuildToolsCoreCLRLocation>
24 <!-- Common properties -->
26 <!-- Set basic properties and normalize -->
28 <BuildArch>$(__BuildArch)</BuildArch>
29 <BuildArch Condition="'$(__BuildArch)'==''">x64</BuildArch>
30 <BuildArch Condition="'$(__BuildArch)' == 'amd64'">x64</BuildArch>
32 <BuildType Condition="'$(__BuildType)'==''">Debug</BuildType>
33 <BuildType Condition="'$(__BuildType)' == 'debug'">Debug</BuildType>
34 <BuildType Condition="'$(__BuildType)' == 'release'">Release</BuildType>
35 <BuildType Condition="'$(__BuildType)' == 'checked'">Checked</BuildType>
37 <BuildOS>$(__BuildOS)</BuildOS>
38 <BuildOS Condition="'$(__BuildOS)' == ''">Windows_NT</BuildOS>
40 <ProjectDir>$(__ProjectDir)\</ProjectDir>
41 <ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
43 <SourceDir>$(__SourceDir)\</SourceDir>
44 <SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
46 <PackagesDir>$(__PackagesDir)\</PackagesDir>
47 <PackagesDir Condition="'$(__PackagesDir)'==''">$(ProjectDir)packages\</PackagesDir>
49 <RootBinDir>$(__RootBinDir)\</RootBinDir>
50 <RootBinDir Condition="'$(__RootBinDir)'==''">$(ProjectDir)bin\</RootBinDir>
52 <BinDir>$(__BinDir)\</BinDir>
53 <BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(BuildOS).$(BuildArch).$(BuildType)\</BinDir>
55 <IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(__IntermediatesDir)\</IntermediateOutputRootPath>
57 <!-- We don't append back slash because this path is used by nuget.exe as output directory and it
58 fails to write packages to it if the path contains the forward slash.
60 <PackagesBinDir>$(__PackagesBinDir)</PackagesBinDir>
61 <PackagesBinDir Condition="'$(__PackagesBinDir)'==''">$(BinDir).nuget</PackagesBinDir>
63 <ToolsDir Condition="'$(ToolsDir)'==''">$(PackagesDir)Microsoft.DotNet.BuildTools.$(BuildToolsVersion)/lib/</ToolsDir>
64 <BuildToolsSemaphore Condition="'$(BuildToolsSemaphore)' == ''">$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll</BuildToolsSemaphore>
65 <!-- Directory for the CoreCLR tools (BCLRewriter, etc.) -->
66 <CoreCLRToolsDir>$(PackagesDir)Microsoft.DotNet.BuildTools.CoreCLR.$(BuildToolsCoreCLRVersion)/</CoreCLRToolsDir>
68 <TestWorkingDir>$(__TestWorkingDir)\</TestWorkingDir>
69 <TestWorkingDir Condition="'$(__TestWorkingDir)'==''">$(RootBinDir)tests\$(BuildOS).$(BuildArch).$(BuildType)\</TestWorkingDir>
72 <!-- Common nuget properties -->
74 <NuGetToolPath Condition="'$(NuGetToolPath)'==''">$(PackagesDir)NuGet.exe</NuGetToolPath>
75 <NuGetConfigFile Condition="'$(NuGetConfigFile)'==''">$(SourceDir)NuGet.Config</NuGetConfigFile>
76 <NuGetConfigCommandLine>-ConfigFile "$(NuGetConfigFile)"</NuGetConfigCommandLine>
78 <NugetRestoreCommand>"$(NuGetToolPath)"</NugetRestoreCommand>
79 <NugetRestoreCommand>$(NugetRestoreCommand) install</NugetRestoreCommand>
80 <!-- Trim off the last slash so that nuget doesn't get confused and say there are illegal characters on
82 <NugetRestoreCommand>$(NugetRestoreCommand) -OutputDirectory "$(PackagesDir.TrimEnd('\\'))"</NugetRestoreCommand>
83 <NugetRestoreCommand>$(NugetRestoreCommand) $(NuGetConfigCommandLine)</NugetRestoreCommand>
84 <NugetRestoreCommand>$(NugetRestoreCommand) -Verbosity detailed</NugetRestoreCommand>
85 <NugetRestoreCommand Condition="'$(OsEnvironment)'=='Unix'">mono $(NuGetRestoreCommand)</NugetRestoreCommand>
89 <DnxPackageDir Condition="'$(DnxPackageDir)'==''">$(PackagesDir)/$(DnxPackageName)/</DnxPackageDir>
90 <DnuToolPath Condition="'$(DnuToolPath)'=='' and '$(OsEnvironment)'!='Unix'">$(DnxPackageDir)\bin\dnu.cmd</DnuToolPath>
91 <DnuToolPath Condition="'$(DnuToolPath)'=='' and '$(OsEnvironment)'=='Unix'">$(DnxPackageDir)/bin/dnu</DnuToolPath>
93 <DnuRestoreCommand>"$(DnuToolPath)"</DnuRestoreCommand>
94 <DnuRestoreCommand>$(DnuRestoreCommand) restore</DnuRestoreCommand>
95 <DnuRestoreCommand>$(DnuRestoreCommand) --packages "$(PackagesDir.TrimEnd('\\'))"</DnuRestoreCommand>
96 <DnuRestoreCommand Condition="'$(LockDependencies)' == 'true'">$(DnuRestoreCommand) --lock</DnuRestoreCommand>
99 <!-- Common build tool properties -->
101 <BuildToolsCoreCLRPackageName>Microsoft.DotNet.BuildTools.CoreCLR</BuildToolsCoreCLRPackageName>
102 <BuildToolsCoreCLRVersion>1.0.2-prerelease</BuildToolsCoreCLRVersion>
103 <BuildToolsCoreCLRLocation>$(ToolsDir)$(BuildToolsCoreCLRPackageName).$(BuildToolsCoreCLRVersion)</BuildToolsCoreCLRLocation>
106 <!-- Setup Nuget properties -->
108 <NuSpecSrcs Include="$(SourceDir)\.nuget\Microsoft.DotNet.CoreCLR.nuspec" />
109 <NuSpecSrcs Include="$(SourceDir)\.nuget\toolchain.win7-x64.Microsoft.DotNet.RyuJit.nuspec" />
110 <NuSpecSrcs Condition="'$(Configuration)'=='Release'" Include="$(SourceDir)\.nuget\Microsoft.DotNet.CoreCLR.Development.nuspec" />
111 <NuSpecSrcs Condition="'$(Configuration)'=='Debug'" Include="$(SourceDir)\.nuget\Microsoft.DotNet.CoreCLR.Debug.Development.nuspec" />
114 <!-- Backslash appended, see note in dir.props about the PackagesBinDir property -->
115 <NuSpecs Include="$(PackagesBinDir)\Microsoft.DotNet.CoreCLR.nuspec" />
116 <NuSpecs Include="$(PackagesBinDir)\toolchain.win7-x64.Microsoft.DotNet.RyuJit.nuspec" />
117 <NuSpecs Condition="'$(Configuration)'=='Release'" Include="$(PackagesBinDir)\Microsoft.DotNet.CoreCLR.Development.nuspec" />
118 <NuSpecs Condition="'$(Configuration)'=='Debug'" Include="$(PackagesBinDir)\Microsoft.DotNet.CoreCLR.Debug.Development.nuspec" />
122 Set up Roslyn predefines
125 <RoslynPackageDir>$(PackagesDir)/$(RoslynPackageName).$(RoslynVersion)/</RoslynPackageDir>
126 <RoslynPropsFile>$(RoslynPackageDir)build/Microsoft.Net.ToolsetCompilers.props</RoslynPropsFile>
129 <!-- Setup common target properties that we use to conditionally include sources -->
131 <TargetsFreeBSD Condition="'$(BuildOS)' == 'FreeBSD'">true</TargetsFreeBSD>
132 <TargetsLinux Condition="'$(BuildOS)' == 'Linux'">true</TargetsLinux>
133 <TargetsOSX Condition="'$(BuildOS)' == 'OSX'">true</TargetsOSX>
134 <TargetsWindows Condition="'$(BuildOS)' == 'Windows_NT'">true</TargetsWindows>
136 <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsOSX)' == 'true'">true</TargetsUnix>