You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

45 lines
2.9 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information. -->
<Project ToolsVersion="15.0" DefaultTargets="Build" InitialTargets="ValidateMSBuildToolsVersion" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- The UsingTask, UseSharedCompilation, and ToolPath/Exe variables all interact to
choose which compiler path to use and whether or not to use the compiler server.
If UsingTask and UseSharedCompilation are set then the compiler server next to the
task will be used (i.e., the one in this package).
If UseSharedCompilation is false or ToolPath/Exe are set the compiler server will
not be used and the compiler exe at the ToolPath, if set, will be executed, otherwise
the executable in the MSBuild install path will be executed. -->
<Target Name="ValidateMSBuildToolsVersion" Condition="'$(BuildingProject)' == 'true'">
<Error Text="Microsoft.Net.Compilers is only supported on MSBuild v15.0 and above"
Condition="'$(MSBuildToolsVersion)' == '2.0' OR
'$(MSBuildToolsVersion)' == '3.5' OR
'$(MSBuildToolsVersion)' == '4.0' OR
'$(MSBuildToolsVersion)' == '12.0' OR
'$(MSBuildToolsVersion)' == '14.0'" />
</Target>
<!-- Always use the local build task, even if we just shell out to an exe in case there are
new properties in the local build task. -->
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.Csc"
AssemblyFile="$(MSBuildThisFileDirectory)..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll" />
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.Vbc"
AssemblyFile="$(MSBuildThisFileDirectory)..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll" />
<UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.CopyRefAssembly"
AssemblyFile="$(MSBuildThisFileDirectory)..\tools\Microsoft.Build.Tasks.CodeAnalysis.dll" />
<PropertyGroup>
<!-- By default don't use the compiler server in Visual Studio. -->
<UseSharedCompilation Condition="'$(UseSharedCompilation)' == ''">false</UseSharedCompilation>
<CSharpCoreTargetsPath>$(MSBuildThisFileDirectory)..\tools\Microsoft.CSharp.Core.targets</CSharpCoreTargetsPath>
<VisualBasicCoreTargetsPath>$(MSBuildThisFileDirectory)..\tools\Microsoft.VisualBasic.Core.targets</VisualBasicCoreTargetsPath>
</PropertyGroup>
<!-- If we're not using the compiler server, set ToolPath/Exe to direct to
the exes in this package -->
<PropertyGroup Condition="'$(UseSharedCompilation)' != 'true'">
<CscToolPath>$(MSBuildThisFileDirectory)..\tools</CscToolPath>
<CscToolExe>csc.exe</CscToolExe>
<VbcToolPath>$(MSBuildThisFileDirectory)..\tools</VbcToolPath>
<VbcToolExe>vbc.exe</VbcToolExe>
</PropertyGroup>
</Project>