summaryrefslogtreecommitdiff
path: root/.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets
diff options
context:
space:
mode:
Diffstat (limited to '.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets')
-rwxr-xr-x.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets167
1 files changed, 167 insertions, 0 deletions
diff --git a/.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets b/.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets
new file mode 100755
index 0000000000..987f3355b4
--- /dev/null
+++ b/.packages/microsoft.net.compilers.toolset/3.2.0-beta2-19272-03/tasks/netcoreapp2.1/Microsoft.Managed.Core.targets
@@ -0,0 +1,167 @@
+<?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="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <!--
+ Common targets for managed compilers.
+ -->
+ <UsingTask TaskName="Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots" AssemblyFile="$(MSBuildThisFileDirectory)Microsoft.Build.Tasks.CodeAnalysis.dll" />
+
+ <Target Name="ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies"
+ BeforeTargets="CoreCompile"
+ Condition="'@(ReferencePathWithRefAssemblies)' == ''">
+ <!--
+ FindReferenceAssembliesForReferences target in Common targets populate this item
+ since dev15.3. The compiler targets may be used (via NuGet package) on earlier MSBuilds.
+ If the ReferencePathWithRefAssemblies item is not populated, just use ReferencePaths
+ (implementation assemblies) as they are.
+
+ Since XAML inner build runs CoreCompile directly (instead of Compile target),
+ it also doesn't invoke FindReferenceAssembliesForReferences listed in CompileDependsOn.
+ In that case we also populate ReferencePathWithRefAssemblies with implementation assemblies.
+ -->
+ <ItemGroup>
+ <ReferencePathWithRefAssemblies Include="@(ReferencePath)" />
+ </ItemGroup>
+ </Target>
+
+ <Target Name="_BeforeVBCSCoreCompile"
+ DependsOnTargets="ShimReferencePathsWhenCommonTargetsDoesNotUnderstandReferenceAssemblies">
+
+ <ItemGroup Condition="'$(TargetingClr2Framework)' == 'true'">
+ <ReferencePathWithRefAssemblies>
+ <EmbedInteropTypes />
+ </ReferencePathWithRefAssemblies>
+ </ItemGroup>
+
+ <!-- Prefer32Bit was introduced in .NET 4.5. Set it to false if we are targeting 4.0 -->
+ <PropertyGroup Condition="('$(TargetFrameworkVersion)' == 'v4.0')">
+ <Prefer32Bit>false</Prefer32Bit>
+ </PropertyGroup>
+
+ <!-- TODO: Remove this ItemGroup once it has been moved to "_GenerateCompileInputs" target in Microsoft.Common.CurrentVersion.targets.
+ https://github.com/dotnet/roslyn/issues/12223 -->
+ <ItemGroup Condition="('$(AdditionalFileItemNames)' != '')">
+ <AdditionalFileItems Include="$(AdditionalFileItemNames)" />
+ <AdditionalFiles Include="@(%(AdditionalFileItems.Identity))" />
+ </ItemGroup>
+
+ <PropertyGroup Condition="'$(UseSharedCompilation)' == ''">
+ <UseSharedCompilation>true</UseSharedCompilation>
+ </PropertyGroup>
+ </Target>
+
+ <!--
+ ========================
+ .editorconfig Support
+ ========================
+
+ The discovery of .editorconfig files depends on MSBuild features only available in version 16.1 and later. To avoid evaluation errors when
+ running under earlier versions of MSBuild we place the relevant properties and imports in a separate .targets file.
+
+ TODO: Inline the import when we no longer need to support earlier versions of MSBuild.
+ -->
+ <Import Project="Microsoft.Managed.EditorConfig.targets" Condition="$(MSBuildVersion) >= 16.1.0" />
+
+ <!--
+ ========================
+ DeterministicSourcePaths
+ ========================
+
+ Unless specified otherwise enable deterministic source root (PathMap) when building deterministically on CI server, but not for local builds.
+ In order for the debugger to find source files when debugging a locally built binary the PDB must contain original, unmapped local paths.
+ -->
+ <PropertyGroup>
+ <DeterministicSourcePaths Condition="'$(DeterministicSourcePaths)' == '' and '$(Deterministic)' == 'true' and '$(ContinuousIntegrationBuild)' == 'true'">true</DeterministicSourcePaths>
+ </PropertyGroup>
+
+ <!--
+ ==========
+ SourceRoot
+ ==========
+
+ All source files of the project are expected to be located under one of the directories specified by SourceRoot item group.
+ This target collects all SourceRoots from various sources.
+
+ This target calculates final local path for each SourceRoot and sets SourceRoot.MappedPath metadata accordingly.
+ The final path is a path with deterministic prefix when DeterministicSourcePaths is true, and the original path otherwise.
+ In addition, the target validates and deduplicates the SourceRoot items.
+
+ InitializeSourceControlInformation is an msbuild target that ensures the SourceRoot items are populated from source control.
+ The target is available only if SourceControlInformationFeatureSupported is true.
+
+ A consumer of SourceRoot.MappedPath metadata, such as Source Link generator, shall depend on this target.
+ -->
+
+ <Target Name="InitializeSourceRootMappedPaths"
+ DependsOnTargets="_InitializeSourceRootMappedPathsFromSourceControl">
+
+ <ItemGroup Condition="'@(_MappedSourceRoot)' != ''">
+ <_MappedSourceRoot Remove="@(_MappedSourceRoot)" />
+ </ItemGroup>
+
+ <Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots SourceRoots="@(SourceRoot)" Deterministic="$(DeterministicSourcePaths)">
+ <Output TaskParameter="MappedSourceRoots" ItemName="_MappedSourceRoot" />
+ </Microsoft.CodeAnalysis.BuildTasks.MapSourceRoots>
+
+ <ItemGroup>
+ <SourceRoot Remove="@(SourceRoot)" />
+ <SourceRoot Include="@(_MappedSourceRoot)" />
+ </ItemGroup>
+ </Target>
+
+ <!--
+ Declare that target InitializeSourceRootMappedPaths that populates MappedPaths metadata on SourceRoot items is available.
+ -->
+ <PropertyGroup>
+ <SourceRootMappedPathsFeatureSupported>true</SourceRootMappedPathsFeatureSupported>
+ </PropertyGroup>
+
+ <!--
+ If InitializeSourceControlInformation target isn't supported, we just continue without invoking that synchronization target.
+ We'll proceed with SourceRoot (and other source control properties) provided by the user (or blank).
+ -->
+ <Target Name="_InitializeSourceRootMappedPathsFromSourceControl"
+ DependsOnTargets="InitializeSourceControlInformation"
+ Condition="'$(SourceControlInformationFeatureSupported)' == 'true'" />
+
+ <!--
+ =======
+ PathMap
+ =======
+
+ If DeterministicSourcePaths is true sets PathMap based on SourceRoot.MappedPaths.
+
+ This target requires SourceRoot to be initialized in order to calculate the PathMap.
+ If SourceRoot doesn't contain any top-level roots an error is reported.
+ -->
+
+ <Target Name="_SetPathMapFromSourceRoots"
+ DependsOnTargets="InitializeSourceRootMappedPaths"
+ BeforeTargets="CoreCompile"
+ Condition="'$(DeterministicSourcePaths)' == 'true'">
+
+ <ItemGroup>
+ <_TopLevelSourceRoot Include="@(SourceRoot)" Condition="'%(SourceRoot.NestedRoot)' == ''"/>
+ </ItemGroup>
+
+ <PropertyGroup Condition="'@(_TopLevelSourceRoot)' != ''">
+ <!-- TODO: Report error/warning if /pathmap doesn't cover all emitted source paths: https://github.com/dotnet/roslyn/issues/23969 -->
+
+ <!-- TODO: PathMap should accept and ignore empty mapping: https://github.com/dotnet/roslyn/issues/23523 -->
+ <PathMap Condition="'$(PathMap)' != ''">,$(PathMap)</PathMap>
+
+ <!--
+ Prepend the SourceRoot.MappedPath values to PathMap, if it already has a value.
+ For each emitted source path the compiler applies the first mapping that matches the path.
+ PathMap values set previously will thus only be applied if the mapping provided by
+ SourceRoot.MappedPath doesn't match. Since SourceRoot.MappedPath is also used by SourceLink
+ preferring it over manually set PathMap ensures that PathMap is consistent with SourceLink.
+
+ TODO: quote the paths to avoid misinterpreting ',' and '=' in them as separators,
+ but quoting doesn't currently work (see https://github.com/dotnet/roslyn/issues/22835).
+ -->
+ <PathMap>@(_TopLevelSourceRoot->'%(Identity)=%(MappedPath)', ',')$(PathMap)</PathMap>
+ </PropertyGroup>
+ </Target>
+
+</Project> \ No newline at end of file