dir.props (303 lines of code) (raw):
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!--
$(OS) is set to Unix/Windows_NT. This comes from an environment variable on Windows and MSBuild on Unix.
Possible Values: Windows_NT / Unix / OSX
-->
<PropertyGroup>
<OsEnvironment Condition="'$(OsEnvironment)'==''">$(OS)</OsEnvironment>
<TargetPlatformIdentifier Condition="'$(TargetPlatformIdentifier)'==''">$(OS)</TargetPlatformIdentifier>
</PropertyGroup>
<PropertyGroup>
<!-- This is to workaround an issue with a dependent assembly (Microsoft.Build.Tasks.CodeAnalysis.dll)
copying its dependencies (which are in the GAC). -->
<DoNotCopyLocalIfInGac>true</DoNotCopyLocalIfInGac>
<TargetMSBuildToolsVersion>15.0</TargetMSBuildToolsVersion>
</PropertyGroup>
<PropertyGroup>
<!-- Disable the import of the dynamically generated NuGet files because they generate warnings anyway:
Packages containing MSBuild targets and props files cannot be fully installed in projects targeting multiple frameworks. The MSBuild targets and props files have been ignored. -->
<IncludeNuGetImports Condition="'$(IncludeNuGetImports)' == ''">false</IncludeNuGetImports>
</PropertyGroup>
<!-- Localization switches -->
<PropertyGroup>
<LocalizationBuildAssetsRequired Condition="'$(LocalizedBuild)' == 'true' or '$(SyncXlf)' == 'true'">true</LocalizationBuildAssetsRequired>
<!-- Syncing xlf files in parallel leads to races because of the shared resources under /Shared/Resources/xlf -->
<BuildInParallel Condition="'$(SyncXlf)' == 'true'">false</BuildInParallel>
</PropertyGroup>
<PropertyGroup>
<SerializeProjects>false</SerializeProjects>
</PropertyGroup>
<!-- Tool versions -->
<PropertyGroup>
<ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
<SourceDir>$(ProjectDir)src\</SourceDir>
<PackagesDir>$(ProjectDir)packages\</PackagesDir>
<!-- Output directories -->
<BinDir>$(ProjectDir)bin\</BinDir>
<TestWorkingDir>$(BinDir)tests\</TestWorkingDir>
<!-- Package version / directories -->
<BuildToolsVersion>1.0.27-prerelease-00927-05</BuildToolsVersion>
<CompilerToolsVersion>2.0.0-rc3-61110-06</CompilerToolsVersion>
<XunitVersion>2.1.0</XunitVersion>
<MicroBuildVersion>0.2.0</MicroBuildVersion>
<GitVersioningVersion>1.5.46</GitVersioningVersion>
<NuSpecReferenceGeneratorVersion>1.4.2</NuSpecReferenceGeneratorVersion>
</PropertyGroup>
<!-- Common repo directories -->
<PropertyGroup>
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<SourceDir>$(RepoRoot)src$([System.IO.Path]::DirectorySeparatorChar)</SourceDir>
<SamplesDir>$(RepoRoot)Samples$([System.IO.Path]::DirectorySeparatorChar)</SamplesDir>
<ToolsDir>$(RepoRoot)Tools$([System.IO.Path]::DirectorySeparatorChar)</ToolsDir>
<ToolPackagesDir>$(RepoRoot)packages$([System.IO.Path]::DirectorySeparatorChar)</ToolPackagesDir>
<MicroBuildDir>$(ToolPackagesDir)\MicroBuild.Core\$(MicroBuildVersion)\build\</MicroBuildDir>
<GitVersioningDir>$(PackagesDir)\Nerdbank.GitVersioning\$(GitVersioningVersion)\build\</GitVersioningDir>
<!-- Tell build tools to use the full framework dlls that contain build tasks (like the nuget assets task) -->
<BuildToolsTaskDir>$(ToolsDir)net45/</BuildToolsTaskDir>
<PackagingTaskDir>$(ToolsDir)net45/</PackagingTaskDir>
<!-- Output directories -->
<BinDir>$(RepoRoot)bin$([System.IO.Path]::DirectorySeparatorChar)</BinDir>
<TestWorkingDir>$(BinDir)tests$([System.IO.Path]::DirectorySeparatorChar)</TestWorkingDir>
<!-- Tool Directories -->
<NuSpecReferenceGeneratorDir>$([System.IO.Path]::Combine($(ToolPackagesDir)NuSpec.ReferenceGenerator, $(NuSpecReferenceGeneratorVersion),"build", "dotnet"))$([System.IO.Path]::DirectorySeparatorChar)</NuSpecReferenceGeneratorDir>
<!-- nuget cache location. Used by packageresolve.targets -->
<PackagesDir Condition="'$(OsEnvironment)'=='Windows_NT'">$([System.IO.Path]::Combine($(USERPROFILE), '.nuget', 'packages'))</PackagesDir>
<PackagesDir Condition="'$(OsEnvironment)'!='Windows_NT'">$([System.IO.Path]::Combine($(HOME), '.nuget', 'packages'))</PackagesDir>
<!-- NuSpec.ReferenceGenerator targets use SolutionDir -->
<SolutionDir>$(SourceDir)</SolutionDir>
<DotnetCliPath Condition="'$(DotnetCliPath)'==''">$(ToolsDir)dotnetcli/</DotnetCliPath>
<DotnetToolCommand Condition="'$(DotnetToolCommand)' == '' and '$(OsEnvironment)'=='Windows_NT'">$(DotnetCliPath)dotnet.exe</DotnetToolCommand>
<DotnetToolCommand Condition="'$(DotnetToolCommand)' == '' and '$(OsEnvironment)'!='Windows_NT'">$(DotnetCliPath)dotnet</DotnetToolCommand>
<DnuToolPath>$(DotnetToolCommand)</DnuToolPath>
<DnuCoreRestoreCommand>"$(DnuToolPath)" restore</DnuCoreRestoreCommand>
<DnuCoreRestoreCommand Condition="'$(OsEnvironment)'=='OSX'">ulimit -n 2500 ; $(DnuCoreRestoreCommand)</DnuCoreRestoreCommand>
<!-- Temporary until everything supports lowercase package directory names -->
<DnuCoreRestoreCommand>$(DnuCoreRestoreCommand) --legacy-packages-directory</DnuCoreRestoreCommand>
<!-- packageresolve.targets from build tools uses the DnuRestoreCommand property. Setting it to use dotnet CLI under the hood-->
<DnuRestoreCommand>$(DnuCoreRestoreCommand) --packages $(PackagesDir)</DnuRestoreCommand>
</PropertyGroup>
<!-- Common nuget properties -->
<PropertyGroup>
<NuGetDir>$(ToolPackagesDir)</NuGetDir>
<NuGetConfigDir>$([System.IO.Path]::Combine($(SourceDir),".nuget"))</NuGetConfigDir>
<GlobalPropertiesFile>$(MSBuildThisFileFullPath)</GlobalPropertiesFile>
<NuGetToolPath Condition="'$(NuGetToolPath)'==''">$([System.IO.Path]::Combine($(NuGetDir), "NuGet.exe"))</NuGetToolPath>
</PropertyGroup>
<!-- Copy the "_._" file to the output directory, which is used by the NuSpecs to indicate an empty folder -->
<ItemGroup>
<None Include="$(SourceDir)\nuget\_._">
<Link>_._</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
<Visible>False</Visible>
</None>
</ItemGroup>
<!-- Set default Configuration and Platform -->
<PropertyGroup Condition="'$(Configuration)' ==''">
<Configuration Condition="'$(OS)' == 'Windows_NT'">Debug</Configuration>
<Configuration Condition="'$(OS)' != 'Windows_NT'">Debug-MONO</Configuration>
</PropertyGroup>
<PropertyGroup>
<DefineConstants>$(DefineConstants);TRACE;STANDALONEBUILD</DefineConstants>
<DefineConstants Condition="$(LocalizedBuild) == 'true'">$(DefineConstants);LOCALIZED_BUILD</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' ==''">
<Configuration Condition="'$(OS)' == 'Windows_NT'">Debug</Configuration>
<Configuration Condition="'$(OS)' != 'Windows_NT'">Debug-MONO</Configuration>
</PropertyGroup>
<!-- Setup Default symbol and optimization for Configuration -->
<PropertyGroup Condition="'$(Configuration)' == 'Debug'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
<DebugType Condition="'$(DebugType)' == ''">full</DebugType>
<MsbuildDebugger>true</MsbuildDebugger>
<DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
<FullFrameworkBuild>true</FullFrameworkBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug-MONO'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
<DebugType Condition="'$(DebugType)' == ''">full</DebugType>
<DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
<MonoBuild>true</MonoBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
<DebugType Condition="'$(DebugType)' == ''">pdbonly</DebugType>
<MsbuildDebugger>true</MsbuildDebugger>
<FullFrameworkBuild>true</FullFrameworkBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release-MONO'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
<DebugType Condition="'$(DebugType)' == ''">pdbonly</DebugType>
<MonoBuild>true</MonoBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Debug-NetCore'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
<DebugType Condition="'$(DebugType)' == ''">portable</DebugType>
<DefineConstants>$(DefineConstants);DEBUG</DefineConstants>
<NetCoreBuild>true</NetCoreBuild>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)' == 'Release-NetCore'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">true</Optimize>
<DebugType Condition="'$(DebugType)' == ''">portable</DebugType>
<NetCoreBuild>true</NetCoreBuild>
</PropertyGroup>
<!-- Set the host specific OS and Architecture variables -->
<PropertyGroup>
<!-- Possible Values: win7 / osx.10.10. For linux, the value is calculated in cibuild.sh and passed at the command-line -->
<RuntimeSystem Condition="'$(TargetPlatformIdentifier)' == 'Windows_NT'">win7</RuntimeSystem>
<RuntimeSystem Condition="'$(TargetPlatformIdentifier)' == 'OSX'">osx.10.10</RuntimeSystem>
<!-- Possible Values: Windows, Ubuntu, OSX, MONO. Append _NetCore if Configuration is net core -->
<TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'Windows_NT'">Windows</TargetSystem>
<TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'Unix'">Ubuntu</TargetSystem>
<TargetSystem Condition="'$(TargetPlatformIdentifier)' == 'OSX'">OSX</TargetSystem>
<TargetSystem Condition="'$(MonoBuild)' == 'true'">MONO</TargetSystem>
<TargetSystem Condition="'$(NetCoreBuild)' == 'true'">$(TargetSystem)_NetCore</TargetSystem>
<RuntimeArchitecture>x64</RuntimeArchitecture>
<!-- Default Platform is x86 on FullFrameworkBuild. In .NET Core, always use AnyCPU -->
<Platform Condition="'$(Platform)' == '' AND '$(FullFrameworkBuild)' == 'true'">x86</Platform>
<Platform Condition="'$(Platform)' == '' AND '$(FullFrameworkBuild)' != 'true'">AnyCPU</Platform>
<!-- Only build for specific platforms when PlatformSpecificBuild == true. Otherwise
build for AnyCPU. Only MSBuild.exe and MSBuildTaskHost.exe should need this -->
<PlatformTarget Condition="'$(PlatformSpecificBuild)' != 'true'">AnyCPU</PlatformTarget>
<PlatformTarget Condition="'$(PlatformSpecificBuild)' == 'true' AND '$(FullFrameworkBuild)' == 'true'">$(Platform)</PlatformTarget>
<PlatformTarget Condition="'$(PlatformSpecificBuild)' == 'true' AND '$(FullFrameworkBuild)' != 'true'">AnyCPU</PlatformTarget>
</PropertyGroup>
<!-- Configure bootstrapping -->
<PropertyGroup>
<BootstrapDestination Condition="'$(NetCoreBuild)' != 'true'">$(BinDir)Bootstrap$([System.IO.Path]::DirectorySeparatorChar)</BootstrapDestination>
<BootstrapDestination Condition="'$(NetCoreBuild)' == 'true'">$(BinDir)Bootstrap-NetCore$([System.IO.Path]::DirectorySeparatorChar)</BootstrapDestination>
<!-- If we're building with a bootstrapped MSBuild, use fresh extensions instead of the installed ones. -->
<MSBuildExtensionsPath Condition="'$(BootstrappedMSBuild)' == 'true'">$(BootstrapDestination)</MSBuildExtensionsPath>
</PropertyGroup>
<!-- This configuration builds against the full .NET Framework but with the compilation constants to compile against
the .NET Core surface area. This way we can build a binary to run ApiPort on to measure progress. -->
<PropertyGroup Condition="'$(Configuration)' == 'Port-Progress'">
<DebugSymbols Condition="'$(DebugSymbols)' == ''">true</DebugSymbols>
<Optimize Condition="'$(Optimize)' == ''">false</Optimize>
<DebugType Condition="'$(DebugType)' == ''">full</DebugType>
<DefineConstants>$(DefineConstants);DEBUG;TRACE;STANDALONEBUILD</DefineConstants>
<NetCoreSurface>true</NetCoreSurface>
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
</PropertyGroup>
<!-- Both Mono and windows/full framework builds -->
<PropertyGroup Condition="'$(NetCoreBuild)' != 'true'">
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
</PropertyGroup>
<!-- .NET Core build support -->
<PropertyGroup Condition="'$(NetCoreBuild)' == 'true'">
<TargetFrameworkVersion Condition="'$(TargetFrameworkVersion)' == ''">v1.3</TargetFrameworkVersion>
<!--
This property is re-created after importing Microsoft.Portable.CSharp.targets. If you change the value here, also
update it in Before.Microsoft.Common.targets -->
<TargetFrameworkIdentifier Condition="'$(TargetFrameworkIdentifier)' == ''">.NETStandard</TargetFrameworkIdentifier>
<!--
Backup $(TargetFrameworkIdentifier) because it will be statically set by Microsoft.CSharp.Portable.targets and reset in our Before.Microsoft.Common.targets
-->
<_TargetFrameworkIdentifierBackup Condition="'$(TargetFrameworkIdentifier)' != ''">$(TargetFrameworkIdentifier)</_TargetFrameworkIdentifierBackup>
<NetCoreSurface>true</NetCoreSurface>
<!-- Setting this to false stops the AppX targets, which aren't supported on .NET Core, from beeing imported -->
<WindowsAppContainer>false</WindowsAppContainer>
<DefineConstants>$(DefineConstants);RUNTIME_TYPE_NETCORE</DefineConstants>
<!-- target framework for msbuild nuget packages. Used by Nuspec.ReferenceGenerator.targets to update corefx dependencies-->
<NuSpecTfm>.NETStandard$(TargetFrameworkVersion.TrimStart('v'))</NuSpecTfm>
</PropertyGroup>
<PropertyGroup>
<ImportGetNuGetPackageVersions Condition="'$(OS)' != 'Windows_NT'">false</ImportGetNuGetPackageVersions>
<NuGetTargetMoniker Condition="'$(NetCoreBuild)' == 'true'">$(TargetFrameworkIdentifier),Version=$(TargetFrameworkVersion)</NuGetTargetMoniker>
<NuGetTargetMoniker Condition="'$(NetCoreBuild)' != 'true'">.NETFramework,Version=$(TargetFrameworkVersion)</NuGetTargetMoniker>
</PropertyGroup>
<!-- csharp targets locations -->
<PropertyGroup>
<CSharpTargets>$(MSBuildToolsPath)\Microsoft.CSharp.targets</CSharpTargets>
<CSharpPortableTargets>$(MSBuildExtensionsPath32)\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets</CSharpPortableTargets>
<CSharpPortableTargetsFallback>$(ToolsDir)Extensions\Microsoft\Portable\v5.0\Microsoft.Portable.CSharp.targets</CSharpPortableTargetsFallback>
<CustomBeforeMicrosoftCommonTargets>$(RepoRoot)\Before.Microsoft.Common.targets</CustomBeforeMicrosoftCommonTargets>
</PropertyGroup>
<PropertyGroup Condition="'$(NetCoreSurface)' != 'true'">
<DefineConstants>$(DefineConstants);FEATURE_64BIT_ENVIRONMENT_QUERY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_APARTMENT_STATE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_APM</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_APPDOMAIN</DefineConstants>
<FeatureAppDomain>true</FeatureAppDomain>
<DefineConstants>$(DefineConstants);FEATURE_APPDOMAIN_UNHANDLED_EXCEPTION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_ASSEMBLY_LOADFROM</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_ASSEMBLY_LOCATION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_ASSEMBLYNAME_CULTUREINFO</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_ASSEMBLYNAME_CLONE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_BINARY_SERIALIZATION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_COM_INTEROP</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_COMPILE_IN_TESTS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CONSOLE_BUFFERWIDTH</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CONSTRAINED_EXECUTION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CHARSET_AUTO</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CODEDOM</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CODETASKFACTORY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_CONSOLE_FALLBACK</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_GETCULTUREINFO</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_GETCULTURES</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_DOTNETVERSION</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_ENCODING_DEFAULT</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_ENVIRONMENT_SYSTEMDIRECTORY</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_FILE_TRACKER</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_FUSION_COMPAREASSEMBLYIDENTITY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_GAC</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_GET_COMMANDLINE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_HANDLE_SAFEWAITHANDLE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_HANDLEPROCESSCORRUPTEDSTATEEXCEPTIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_HANDLEREF</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_HTTP_LISTENER</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_INSTALLED_MSBUILD</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_LEGACY_GETFULLPATH</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_MEMORYSTREAM_GETBUFFER</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_NAMED_PIPES_FULL_DUPLEX</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_OSVERSION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_PERFORMANCE_COUNTERS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_PIPE_SECURITY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_PFX_SIGNING</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_REFLECTION_EMIT_DEBUG_INFO</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_REGISTRY_TOOLSETS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_REGISTRY_SDKS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_REGISTRYHIVE_DYNDATA</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_RESGEN</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_RESOURCE_EXPOSURE</DefineConstants>
<!-- System.Resources.ResourceManager.GetResourceSet() method is currently only in full framework -->
<DefineConstants>$(DefineConstants);FEATURE_RESOURCEMANAGER_GETRESOURCESET</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_RESX_RESOURCE_READER</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_RTLMOVEMEMORY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_RUN_EXE_IN_TESTS</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' == 'true'">$(DefineConstants);USE_MSBUILD_DLL_EXTN</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_SECURITY_PERMISSIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_SECURITY_PRINCIPAL_WINDOWS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_SPECIAL_FOLDERS</DefineConstants>
<FeatureSpecialFolders>true</FeatureSpecialFolders>
<DefineConstants>$(DefineConstants);FEATURE_STRING_INTERN</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_STRONG_NAMES</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_SYSTEM_CONFIGURATION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_SYSTEMPAGESIZE</DefineConstants>
<FeatureSystemConfiguration>true</FeatureSystemConfiguration>
<DefineConstants>$(DefineConstants);FEATURE_TASK_GENERATERESOURCES</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_TASKHOST</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_THREAD_ABORT</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_THREAD_CULTURE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_THREAD_PRIORITY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_MULTIPLE_TOOLSETS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_NODE_REUSE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_TYPE_INVOKEMEMBER</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_TYPE_GETINTERFACE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_USERINTERACTIVE</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_USERDOMAINNAME</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_VARIOUS_EXCEPTIONS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_XAML_TYPES</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_XAMLTASKFACTORY</DefineConstants>
<FeatureXamlTypes>true</FeatureXamlTypes>
<DefineConstants>$(DefineConstants);FEATURE_XML_SOURCE_URI</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_XML_LOADPATH</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_XML_SCHEMA_VALIDATION</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_XMLTEXTREADER</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_DEBUGGER</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_DEBUG_LAUNCH</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_WIN32_REGISTRY</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_WORKINGSET</DefineConstants>
<DefineConstants Condition="'$(MonoBuild)' != 'true'">$(DefineConstants);FEATURE_VISUALSTUDIOSETUP</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_MSCOREE</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<DefineConstants Condition="'$(MonoBuild)'=='true'">$(DefineConstants);MONO</DefineConstants>
<!-- Useful for tests that need OS information as a constant -->
<DefineConstants Condition="'$(OS)'=='Windows_NT'">$(DefineConstants);TEST_ISWINDOWS</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(NetCoreBuild)' != 'true'">
<CompilerToolsDir>$([System.IO.Path]::Combine($(ToolPackagesDir)Microsoft.Net.Compilers, $(CompilerToolsVersion), "tools"))$([System.IO.Path]::DirectorySeparatorChar)</CompilerToolsDir>
</PropertyGroup>
<PropertyGroup Condition="'$(NetCoreSurface)' == 'true'">
<!-- Indicates whether CultureInfo has setters for the CurrentCulture and CurrentUICulture properties.
If not, then the corresponding properties on Thread (which aren't in .NET Core) need to be used. -->
<DefineConstants>$(DefineConstants);FEATURE_CULTUREINFO_SETTERS</DefineConstants>
<DefineConstants>$(DefineConstants);FEATURE_PROCESSSTARTINFO_ENVIRONMENT</DefineConstants>
<DefineConstants>$(DefineConstants);USE_MSBUILD_DLL_EXTN</DefineConstants>
</PropertyGroup>
<!-- Change define constants as needed -->
<PropertyGroup Condition="'$(MsbuildDebugger)' == 'true' AND '$(MonoBuild)' != 'true'">
<DefineConstants>$(DefineConstants);FEATURE_MSBUILD_DEBUGGER</DefineConstants>
</PropertyGroup>
<!-- Setup some common paths -->
<PropertyGroup>
<CommonPath>$(SourceDir)Common\src</CommonPath>
<CommonTestPath>$(SourceDir)Common\tests</CommonTestPath>
</PropertyGroup>
<!-- Setup the default output and intermediate paths -->
<PropertyGroup>
<BaseOutputPath Condition="$(BaseOutputPath) == ''">$(BinDir)</BaseOutputPath>
<RelativeOutputPathWithConfig>$(Configuration)$([System.IO.Path]::DirectorySeparatorChar)</RelativeOutputPathWithConfig>
<RelativeOutputPathWithConfig Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(Platform),$(TargetPlatformIdentifier),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</RelativeOutputPathWithConfig>
<BaseOutputPathWithConfig>$([System.IO.Path]::Combine($(BaseOutputPath),$(RelativeOutputPathWithConfig)))$([System.IO.Path]::DirectorySeparatorChar)</BaseOutputPathWithConfig>
<OutputPath>$([System.IO.Path]::Combine($(BaseOutputPathWithConfig),"Output"))$([System.IO.Path]::DirectorySeparatorChar)</OutputPath>
<BaseIntermediateOutputPath>$(BaseOutputPath)obj$([System.IO.Path]::DirectorySeparatorChar)</BaseIntermediateOutputPath>
<IntermediateOutputPath>$([System.IO.Path]::Combine($(BaseIntermediateOutputPath)$(MSBuildProjectName),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</IntermediateOutputPath>
<IntermediateOutputPath Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(BaseIntermediateOutputPath)$(MSBuildProjectName),$(Platform),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</IntermediateOutputPath>
<!-- BuildTools uses this path to write some files -->
<ObjDir>$(IntermediateOutputPath)</ObjDir>
<!-- The TestPath seems to be used by Microsoft.DotNet.BuildTools targets. It does not seem to affect the MSBuild build in any way -->
<TestPath>$(TestWorkingDir)$([System.IO.Path]::Combine($(MSBuildProjectName),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</TestPath>
<TestPath Condition="'$(Platform)' != 'AnyCPU'">$([System.IO.Path]::Combine($(TestWorkingDir)$(MSBuildProjectName),$(Platform),$(Configuration)))$([System.IO.Path]::DirectorySeparatorChar)</TestPath>
<BypassFrameworkInstallChecks>true</BypassFrameworkInstallChecks>
<DeploymentDirName>$(TargetPlatformIdentifier)_Deployment</DeploymentDirName>
<TestDeploymentDirName>$(DeploymentDirName)_Test</TestDeploymentDirName>
<DeploymentDir>$([System.IO.Path]::Combine($(BaseOutputPath), $(Configuration), $(DeploymentDirName)))$([System.IO.Path]::DirectorySeparatorChar)</DeploymentDir>
<TestDeploymentDir>$([System.IO.Path]::Combine($(BaseOutputPath), $(Configuration), $(TestDeploymentDirName)))$([System.IO.Path]::DirectorySeparatorChar)</TestDeploymentDir>
<!-- Output path for helper tasks that we build for our own build process (e.g. localization tasks). Tasks should be imported from this property -->
<BuildBinDir>$([System.IO.Path]::Combine($(ProjectDir), "build", "bin", $(RelativeOutputPathWithConfig), "Output"))$([System.IO.Path]::DirectorySeparatorChar)</BuildBinDir>
</PropertyGroup>
<PropertyGroup>
<IBCMergeSubPath>x86/MSBuild</IBCMergeSubPath>
</PropertyGroup>
</Project>