<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <Import Condition="Exists('..\dir.props')" Project="..\dir.props" />
+<Project>
+ <!-- dir.common.props is imported by Directory.Build.props when building with Arcade -->
+ <Import Project="dir.common.props" Condition="'$(ArcadeBuild)' != 'true'" />
- <Import Project="dir.common.props" />
+ <!-- [ARCADE REMOVE] This entire file can be removed. Properties set by this file should be moved into
+ dir.common.props and Directory.Build.props as appropriate and projects should stop importing this. -->
- <!--
- $(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
- -->
<PropertyGroup>
- <OsEnvironment Condition="'$(OsEnvironment)'=='' and '$(OS)'=='OSX'">Unix</OsEnvironment>
- <OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
+ <LangVersion>8.0</LangVersion>
+ <UseSharedCompilation>true</UseSharedCompilation>
</PropertyGroup>
- <!-- Set the kind of PDB to Portable and turn on SourceLink (fetching source from GitHub) -->
+ <!-- Set the kind of PDB to Portable -->
<PropertyGroup>
- <DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
- <UseSourceLink>true</UseSourceLink>
- </PropertyGroup>
-
- <!-- Version numbers for both managed & native binaries -->
- <PropertyGroup>
- <MajorVersion>4</MajorVersion>
- <MinorVersion>6</MinorVersion>
- </PropertyGroup>
-
- <!-- Build Tools Versions -->
- <PropertyGroup>
- <RoslynVersion>1.0.0-rc3-20150510-01</RoslynVersion>
- <RoslynPackageName>Microsoft.Net.ToolsetCompilers</RoslynPackageName>
- </PropertyGroup>
-
- <!--
- Switching to the .NET Core version of the BuildTools tasks seems to break numerous scenarios, such as VS intellisense and resource designer
- 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.
- -->
- <PropertyGroup>
- <RunningOnCore>false</RunningOnCore>
- <RunningOnCore Condition="'$(MSBuildRuntimeType)' == 'Core'">true</RunningOnCore>
- <BuildToolsTargetsDesktop>false</BuildToolsTargetsDesktop>
- <BuildToolsTargetsDesktop Condition="'$(RunningOnCore)' != 'true'">true</BuildToolsTargetsDesktop>
- <BuildToolsTargets45>$(BuildToolsTargetsDesktop)</BuildToolsTargets45>
+ <DebugType Condition="'$(DebugType)' == ''">Portable</DebugType>
</PropertyGroup>
<!-- Common properties -->
<PropertyGroup>
- <ProjectDir>$(__ProjectDir)\</ProjectDir>
- <ProjectDir Condition="'$(__ProjectDir)'==''">$(MSBuildThisFileDirectory)</ProjectDir>
-
- <SourceDir>$(__SourceDir)\</SourceDir>
- <SourceDir Condition="'$(__SourceDir)'==''">$(ProjectDir)src\</SourceDir>
-
<!-- This name is used to create a GIT repository URL https://github.com/dotnet/$(GitHubRepositoryName) used to find source code for debugging -->
<GitHubRepositoryName Condition="'$(GitHubRepositoryName)' == ''">coreclr</GitHubRepositoryName>
- <PackagesDir>$(DotNetRestorePackagesPath)</PackagesDir>
- <PackagesDir Condition="'$(PackagesDir)'=='' and '$(__PackagesDir)'!=''">$(__PackagesDir)\</PackagesDir>
- <PackagesDir Condition="'$(PackagesDir)'==''">$(ProjectDir)packages\</PackagesDir>
-
- <RootBinDir>$(__RootBinDir)\</RootBinDir>
- <RootBinDir Condition="'$(__RootBinDir)'==''">$(ProjectDir)bin\</RootBinDir>
-
- <BinDir>$(__BinDir)\</BinDir>
- <BinDir Condition="'$(__BinDir)'==''">$(RootBinDir)Product\$(BuildOS).$(BuildArch).$(BuildType)\</BinDir>
-
- <__IntermediatesDir Condition="'$(__IntermediatesDir)' == ''">$(RootBinDir)obj\$(BuildOS).$(BuildArch).$(BuildType)</__IntermediatesDir>
- <IntermediateOutputRootPath Condition="'$(IntermediateOutputRootPath)' == ''">$(__IntermediatesDir)\</IntermediateOutputRootPath>
-
- <!-- We don't append back slash because this path is used by nuget.exe as output directory and it
- fails to write packages to it if the path contains the forward slash.
- -->
- <PackagesBinDir>$(__PackagesBinDir)</PackagesBinDir>
- <PackagesBinDir Condition="'$(__PackagesBinDir)'==''">$(BinDir).nuget\</PackagesBinDir>
-
- <ToolsDir Condition="'$(ToolsDir)'==''">$(ProjectDir)Tools\</ToolsDir>
- <DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli\</DotnetCliPath>
- <OverrideToolHost>$(DotnetCliPath)dotnet</OverrideToolHost>
- <BuildToolsSemaphore Condition="'$(BuildToolsSemaphore)' == ''">$(ToolsDir)Microsoft.DotNet.Build.Tasks.dll</BuildToolsSemaphore>
-
- <TestWorkingDir>$(__TestWorkingDir)\</TestWorkingDir>
- <TestWorkingDir Condition="'$(__TestWorkingDir)'==''">$(RootBinDir)tests\$(BuildOS).$(BuildArch).$(BuildType)\</TestWorkingDir>
-
<Platform Condition="'$(Platform)' == ''">$(BuildArch)</Platform>
<Platform Condition="'$(Platform)' == 'amd64'">x64</Platform>
<!-- Default to portable build if not explicitly set -->
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
- </PropertyGroup>
- <!-- Output paths -->
- <PropertyGroup>
- <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj\</BaseIntermediateOutputPath>
- <IntermediateOutputPath Condition="'$(IntermediateOutputPath)' == ''">$(BaseIntermediateOutputPath)$(BuildOS).$(BuildArch).$(BuildType)\$(MSBuildProjectName)</IntermediateOutputPath>
- <OutputPath Condition="'$(OutputPath)' == ''">$(BinDir)</OutputPath>
- </PropertyGroup>
+ <OverrideRestoreOutputPath>true</OverrideRestoreOutputPath>
- <!-- Explicitly set BuildVersionFile before importing common. This is used by BuildVersion.targets. -->
- <PropertyGroup Condition="'$(OfficialBuildId)' != ''">
- <BuildVersionFile>$(BaseIntermediateOutputPath)BuildVersion-$(OfficialBuildId).props</BuildVersionFile>
+ <!-- If true, indicates that this is not an officially supported release -->
+ <!-- It is important to flip this to false in official release branches -->
+ <!-- Keep it in sync with PRERELEASE in clrdefinitions.cmake -->
+ <IsPrerelease>false</IsPrerelease>
</PropertyGroup>
- <!-- Import Build tools common props file where repo-independent properties are found -->
- <Import Condition="Exists('$(ToolsDir)Build.Common.props')" Project="$(ToolsDir)Build.Common.props" />
-
- <!-- Setup common target properties that we use to conditionally include sources -->
+ <!-- Output paths -->
<PropertyGroup>
- <TargetsFreeBSD Condition="'$(BuildOS)' == 'FreeBSD'">true</TargetsFreeBSD>
- <TargetsLinux Condition="'$(BuildOS)' == 'Linux'">true</TargetsLinux>
- <TargetsNetBSD Condition="'$(BuildOS)' == 'NetBSD'">true</TargetsNetBSD>
- <TargetsOSX Condition="'$(BuildOS)' == 'OSX'">true</TargetsOSX>
- <TargetsWindows Condition="'$(BuildOS)' == 'Windows_NT'">true</TargetsWindows>
-
- <TargetsUnix Condition="'$(TargetsFreeBSD)' == 'true' or '$(TargetsLinux)' == 'true' or '$(TargetsNetBSD)' == 'true' or '$(TargetsOSX)' == 'true'">true</TargetsUnix>
+ <BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$(RootBinDir)obj\</BaseIntermediateOutputPath>
- <!-- We are only tracking Linux Distributions for Nuget RID mapping -->
- <DistroRid Condition="'$(TargetsLinux)' == 'true'">$(__DistroRid)</DistroRid>
+ <AppendTargetFrameworkToOutputPath Condition="'$(ArcadeBuild)' == 'true'">false</AppendTargetFrameworkToOutputPath>
+ <IntermediateOutputPath>$(__IntermediatesDir)\$(MSBuildProjectName)\</IntermediateOutputPath>
+ <IntermediateOutputPath Condition="'$(__IntermediatesDir)' == ''">$(RootBinDir)obj/$(PlatformConfigPathPart)/$(MSBuildProjectName)/</IntermediateOutputPath>
+ <OutputPath Condition="'$(OutputPath)' == ''">$(BinDir)</OutputPath>
</PropertyGroup>
<!-- Provides properties for dependency versions and configures dependency verification/auto-upgrade. -->
<Import Project="$(ProjectDir)dependencies.props" />
-
- <!-- Packaging properties -->
- <PropertyGroup>
- <LicenseUrl>https://github.com/dotnet/coreclr/blob/master/LICENSE.TXT</LicenseUrl>
- <PackageDescriptionFile>$(SourceDir).nuget/descriptions.json</PackageDescriptionFile>
- <PackageLicenseFile>$(ProjectDir)LICENSE.TXT</PackageLicenseFile>
- <PackageThirdPartyNoticesFile>$(ProjectDir)THIRD-PARTY-NOTICES.TXT</PackageThirdPartyNoticesFile>
- <SyncInfoDirectory>$(BaseIntermediateOutputPath)</SyncInfoDirectory>
-
- <!-- If true, indicates that this is not an officially supported release -->
- <!-- It is important to flip this to false in official release branches -->
- <!-- Keep it in sync with PRERELEASE in clrdefinitions.cmake -->
- <IsPrerelease>true</IsPrerelease>
-
- <!-- This should be kept in sync with package details in src/.nuget/init/project.json -->
- <RuntimeIdGraphDefinitionVersion>1.0.2-beta-24224-02</RuntimeIdGraphDefinitionVersion>
- <RuntimeIdGraphDefinitionFile>$(PackagesDir)/microsoft.netcore.platforms/$(RuntimeIdGraphDefinitionVersion)/runtime.json</RuntimeIdGraphDefinitionFile>
-
- <!-- This link should be updated for each release milestone, currently this points to 1.1.0-beta -->
- <ReleaseNotes>https://go.microsoft.com/fwlink/?LinkID=799421</ReleaseNotes>
-
- <ProjectUrl>https://dot.net</ProjectUrl>
-
- <!-- On Windows, MSbuild still runs against Desktop FX while it runs on .NET Core on non-Windows. this requires
- pulling in different packaging dependencies.
- -->
- <PackagingTaskDir Condition="'$(TargetsWindows)' == 'true'">$(ToolsDir)net46/</PackagingTaskDir>
- <!-- defined in buildtools packaging.targets, but we need this before targets are imported -->
- <PackagePlatform Condition="'$(PackagePlatform)' == ''">$(Platform)</PackagePlatform>
- <PackagePlatform Condition="'$(PackagePlatform)' == 'amd64'">x64</PackagePlatform>
- <MinOSForArch>win7</MinOSForArch>
- <MinOSForArch Condition="'$(PackagePlatform)' == 'arm'">win8</MinOSForArch>
- <MinOSForArch Condition="'$(PackagePlatform)' == 'arm64'">win10</MinOSForArch>
- <!-- This property must be set to disable local package installation -->
- <SkipInstallLocallyBuiltPackages>true</SkipInstallLocallyBuiltPackages>
-
- <!-- Define packaging attributes for cross target components -->
- <HasCrossTargetComponents Condition="'$(TargetsWindows)' == 'true' and ('$(PackagePlatform)' =='arm64' or '$(PackagePlatform)' =='arm')">true</HasCrossTargetComponents>
- <HasCrossTargetComponents Condition="'$(TargetsLinux)' == 'true' and ('$(PackagePlatform)' =='arm64' or '$(PackagePlatform)' =='arm') and '$(__DoCrossArchBuild)' == '1'">true</HasCrossTargetComponents>
- <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm64'">x64</CrossTargetComponentFolder>
- <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm' and '$(TargetsWindows)' == 'true'">x86</CrossTargetComponentFolder>
- <CrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm' and '$(TargetsLinux)' == 'true'">x64</CrossTargetComponentFolder>
- <_HasObsoleteCrossTargetComponents Condition="'$(TargetsLinux)' == 'true' and '$(PackagePlatform)' =='arm' and '$(__DoCrossArchBuild)' == '1'">true</_HasObsoleteCrossTargetComponents>
- <_ObsoleteCrossTargetComponentFolder Condition="'$(PackagePlatform)' == 'arm'">x86</_ObsoleteCrossTargetComponentFolder>
-
- <PackageOutputPath Condition="'$(PackageOutputPath)' == ''">$(PackagesBinDir)/pkg/</PackageOutputPath>
- <SymbolPackageOutputPath Condition="'$(SymbolPackageOutputPath)' == ''">$(PackagesBinDir)/symbolpkg/</SymbolPackageOutputPath>
- <PackageIndexFile>$(MSBuildThisFileDirectory)/src/.nuget/packageIndex.json</PackageIndexFile>
-
- <!-- coreclr doesn't currently use the index so don't force it to be in sync -->
- <SkipIndexCheck>true</SkipIndexCheck>
- </PropertyGroup>
-
- <!-- Add required legal files to packages -->
- <ItemGroup Condition="'$(MSBuildProjectExtension)' == '.pkgproj'">
- <File Condition="Exists('$(PackageLicenseFile)')"
- Include="$(PackageLicenseFile)" >
- <SkipPackageFileCheck>true</SkipPackageFileCheck>
- </File>
- <File Condition="Exists('$(PackageThirdPartyNoticesFile)')"
- Include="$(PackageThirdPartyNoticesFile)" >
- <SkipPackageFileCheck>true</SkipPackageFileCheck>
- </File>
- <PackageIndex Include="$(PackageIndexFile)" />
- </ItemGroup>
-
- <!-- Use Roslyn Compilers to build -->
- <Import Project="$(RoslynPropsFile)" Condition="'$(RunningOnUnix)'!='true' and Exists('$(RoslynPropsFile)') and '$(UseRoslynCompilers)'!='false' and '$(RoslynIncompatibleMsbuildVersion)' != 'true'" />
- <Import Project="$(RoslynPropsFile)" Condition="'$(RunningOnUnix)'=='true' and Exists('$(RoslynPropsFile)') and '$(RoslynIncompatibleMsbuildVersion)' != 'true'" />
</Project>