Merge master into local branch.
This commit is contained in:
commit
208776ed69
2 changed files with 322 additions and 321 deletions
|
@ -1,319 +1,320 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="compile/Microsoft.DotNet.Cli.LzmaArchive.targets" />
|
||||
<Import Project="crossgen/Microsoft.DotNet.Cli.Crossgen.targets" />
|
||||
|
||||
<PropertyGroup>
|
||||
<BinaryToCorehostifyRelDir>runtimes/any/native</BinaryToCorehostifyRelDir>
|
||||
<MSBuildImportsDir>$(RepoRoot)/resources/MSBuildImports</MSBuildImportsDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PublishOutputExtensions Include="$(ExeExtension);.dll;.pdb;.deps.json;.runtimeconfig.json" />
|
||||
<BundledTools Include="MSBuild;NuGet.CommandLine.XPlat;dotnet" />
|
||||
<MSBuildImportsContent Include="$(MSBuildImportsDir)/**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="Compile" DependsOnTargets="Prepare;
|
||||
SetupStage;
|
||||
CompileStage;
|
||||
PublishSdks;
|
||||
PublishTemplates;
|
||||
BuildProjectsForNuGetPackages;
|
||||
GetNuGetPackagesArchive;" />
|
||||
|
||||
<Target Name="SetupStage"
|
||||
DependsOnTargets="Prepare">
|
||||
<PropertyGroup>
|
||||
<SrcDirectory>$(RepoRoot)/src</SrcDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CompileStageInputs Include="$(SrcDirectory)/**/*.cs" Exclude="$(SrcDirectory)/**/obj/**/*.cs" />
|
||||
<CompileStageInputs Include="$(SrcDirectory)/**/*.csproj;$(SrcDirectory)/**/project.assets.json" />
|
||||
|
||||
<Stage Include="Stage1">
|
||||
<Inputs>@(CompileStageInputs)</Inputs>
|
||||
<StageDirectory>$(Stage1Directory)</StageDirectory>
|
||||
<StageSymbolsDirectory>$(Stage1SymbolsDirectory)</StageSymbolsDirectory>
|
||||
<DotnetDir>$(Stage0Directory)</DotnetDir>
|
||||
</Stage>
|
||||
<Stage Include="Stage2">
|
||||
<Inputs>@(CompileStageInputs)</Inputs>
|
||||
<StageDirectory>$(Stage2Directory)</StageDirectory>
|
||||
<StageSymbolsDirectory>$(Stage2SymbolsDirectory)</StageSymbolsDirectory>
|
||||
<DotnetDir>$(Stage0Directory)</DotnetDir>
|
||||
</Stage>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CompileStage"
|
||||
DependsOnTargets="SetupStage;
|
||||
InitCrossgenProps;"
|
||||
Inputs="%(Stage.Inputs)"
|
||||
Outputs="%(StageDirectory)/sdk/$(SdkVersion)/dotnet.dll">
|
||||
<PropertyGroup>
|
||||
<DynamicLibPrefix Condition=" '$(OSName)' == 'win' "></DynamicLibPrefix>
|
||||
<DynamicLibPrefix Condition=" '$(OSName)' != 'win' ">lib</DynamicLibPrefix>
|
||||
|
||||
<DynamicLibSuffix Condition=" '$(OSName)' == 'win' ">.dll</DynamicLibSuffix>
|
||||
<DynamicLibSuffix Condition=" '$(OSName)' == 'osx' ">.dylib</DynamicLibSuffix>
|
||||
<DynamicLibSuffix Condition=" '$(DynamicLibSuffix)' == '' ">.so</DynamicLibSuffix>
|
||||
|
||||
<DotnetHostBaseName>dotnet$(ExeExtension)</DotnetHostBaseName>
|
||||
<DotnetHostFxrBaseName>$(DynamicLibPrefix)hostfxr$(DynamicLibSuffix)</DotnetHostFxrBaseName>
|
||||
<HostPolicyBaseName>$(DynamicLibPrefix)hostpolicy$(DynamicLibSuffix)</HostPolicyBaseName>
|
||||
|
||||
<StageDirectory>%(Stage.StageDirectory)</StageDirectory>
|
||||
<StageSymbolsDirectory>%(Stage.StageSymbolsDirectory)</StageSymbolsDirectory>
|
||||
<SdkOutputDirectory>$(StageDirectory)/sdk/$(SdkVersion)</SdkOutputDirectory>
|
||||
<BinaryToCorehostifyOutDir>$(SdkOutputDirectory)/$(BinaryToCorehostifyRelDir)</BinaryToCorehostifyOutDir>
|
||||
<MSBuildTargetsDirectory>$(SdkOutputDirectory)/runtimes/any/native</MSBuildTargetsDirectory>
|
||||
|
||||
<SharedFrameworkNameVersionPath>$(StageDirectory)/shared/$(SharedFrameworkName)/$(SharedFrameworkVersion)</SharedFrameworkNameVersionPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<BinObj Remove="*" />
|
||||
<BinObj Include="$(SrcDirectory)/**/bin/**/*" />
|
||||
<BinObj Include="$(SrcDirectory)/**/obj/**/*" Exclude="$(SrcDirectory)/**/obj/project.assets.json;$(SrcDirectory)/**/obj/*.csproj.nuget.g.props;$(SrcDirectory)/**/obj/*.csproj.nuget.g.targets" />
|
||||
|
||||
<SharedFramework Remove="*" />
|
||||
<SharedFramework Include="$(SharedFrameworkPublishDirectory)/**/*" />
|
||||
|
||||
<RuntimeTargetsAssetsToRemoveFromDeps Remove="*" />
|
||||
<RuntimeTargetsAssetsToRemoveFromDeps Include="MSBuild" />
|
||||
|
||||
<RuntimeAssetsToRemoveFromDeps Remove="*" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="redist" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="tool_msbuild" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="tool_nuget" />
|
||||
</ItemGroup>
|
||||
|
||||
<Delete Files="@(BinObj)" />
|
||||
|
||||
<RemoveDir Directories="$(StageDirectory)" />
|
||||
<MakeDir Directories="$(StageDirectory)"/>
|
||||
|
||||
<!-- CopySharedFramework -->
|
||||
<Copy SourceFiles="@(SharedFramework)"
|
||||
DestinationFiles="@(SharedFramework->'$(StageDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<!-- Workaround for https://github.com/dotnet/sdk/issues/115 -->
|
||||
<ItemGroup>
|
||||
<HackFilesToCopy Include="$(NuGetPackagesDir)\microsoft.build.runtime\$(CLI_MSBuild_Version)\contentFiles\any\netcoreapp1.0\**;
|
||||
$(NuGetPackagesDir)\microsoft.build.runtime\$(CLI_MSBuild_Version)\contentFiles\any\netcoreapp1.1\**;
|
||||
$(NuGetPackagesDir)\microsoft.codeanalysis.build.tasks\$(CLI_Roslyn_Version)\contentFiles\any\any\**;
|
||||
$(NuGetPackagesDir)\microsoft.testplatform.cli\$(CLI_TestPlatform_Version)\contentFiles\any\any\**" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="@(HackFilesToCopy)"
|
||||
DestinationFiles="@(HackFilesToCopy->'$(SdkOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<!-- Publish DotNet -->
|
||||
<DotNetPublish ToolPath="%(Stage.DotnetDir)"
|
||||
Output="$(SdkOutputDirectory)"
|
||||
Configuration="$(Configuration)"
|
||||
VersionSuffix="$(CommitCount)"
|
||||
ProjectPath="$(SrcDirectory)/redist/redist.csproj"
|
||||
MSBuildArgs="/p:GenerateRuntimeConfigurationFiles=true" />
|
||||
|
||||
<!-- Publish DotNet -->
|
||||
<DotNetPublish ToolPath="%(Stage.DotnetDir)"
|
||||
Output="$(SdkOutputDirectory)/Roslyn"
|
||||
Configuration="$(Configuration)"
|
||||
VersionSuffix="$(CommitCount)"
|
||||
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" />
|
||||
|
||||
<!-- Corehostify Binaries -->
|
||||
<ItemGroup Condition=" '$(OSName)' != 'win' ">
|
||||
<SdkOutputChmodTargets Remove="*" />
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*.exe;
|
||||
$(SdkOutputDirectory)/**/*.dll" >
|
||||
<!-- Managed assemblies do not need execute -->
|
||||
<Mode>u=rw,g=r,o=r</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*.dylib;
|
||||
$(SdkOutputDirectory)/**/*.so" >
|
||||
<!-- Generally, dylibs and sos have 'x' -->
|
||||
<Mode>u=rwx,g=rx,o=rx</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*"
|
||||
Exclude="$(SdkOutputDirectory)/**/*.*" >
|
||||
<!-- Executables need x -->
|
||||
<Mode>u=rwx,g=rx,o=rx</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
</ItemGroup>
|
||||
|
||||
<Chmod Condition=" '$(OSName)' != 'win' "
|
||||
File="%(SdkOutputChModTargets.FullPath)"
|
||||
Mode="%(SdkOutputChModTargets.Mode)" />
|
||||
|
||||
<RemoveAssetFromDepsPackages DepsFile="$(SdkOutputDirectory)/redist.deps.json"
|
||||
SectionName="runtimeTargets"
|
||||
AssetPath="$(BinaryToCorehostifyRelDir)/%(RuntimeTargetsAssetsToRemoveFromDeps.Identity).exe" />
|
||||
|
||||
<RemoveAssetFromDepsPackages DepsFile="$(SdkOutputDirectory)/redist.deps.json"
|
||||
SectionName="runtime"
|
||||
AssetPath="%(RuntimeAssetsToRemoveFromDeps.Identity).dll" />
|
||||
|
||||
<Copy SourceFiles="$(SdkOutputDirectory)/redist.deps.json"
|
||||
DestinationFiles="$(SdkOutputDirectory)/%(BundledTools.Identity).deps.json" />
|
||||
|
||||
<Copy SourceFiles="$(SdkOutputDirectory)/redist.runtimeconfig.json"
|
||||
DestinationFiles="$(SdkOutputDirectory)/%(BundledTools.Identity).runtimeconfig.json" />
|
||||
|
||||
<ChangeEntryPointLibraryName
|
||||
DepsFile="$(SdkOutputDirectory)/%(BundledTools.Identity).deps.json"
|
||||
NewName="%(BundledTools.Identity).deps.json" />
|
||||
|
||||
<!-- cleanup project output we don't need -->
|
||||
<Delete Files="$(SdkOutputDirectory)/redist%(PublishOutputExtensions.Identity)" />
|
||||
<Delete Files="$(SdkOutputDirectory)/tool_msbuild%(PublishOutputExtensions.Identity)" />
|
||||
<Delete Files="$(SdkOutputDirectory)/tool_nuget%(PublishOutputExtensions.Identity)" />
|
||||
|
||||
<!-- Copy Host to SDK Directory -->
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(DotnetHostBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/corehost$(ExeExtension)" />
|
||||
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(DotnetHostFxrBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/$(DotnetHostFxrBaseName)" />
|
||||
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(HostPolicyBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/$(HostPolicyBaseName)" />
|
||||
|
||||
<!-- copy core sdk -->
|
||||
<Copy SourceFiles="@(MSBuildImportsContent)"
|
||||
DestinationFolder="$(SdkOutputDirectory)/%(RecursiveDir)" />
|
||||
|
||||
<ItemGroup>
|
||||
<NETCore10Assemblies Include="$(SdkOutputDirectory)/System.ComponentModel.Primitives.dll;
|
||||
$(SdkOutputDirectory)/System.Collections.Specialized.dll;
|
||||
$(SdkOutputDirectory)/System.Collections.NonGeneric.dll" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Move these "1.0" assemblies that TestPlatform lays down out of the way so crossgen doesn't pick them up.
|
||||
We need https://github.com/dotnet/cli/issues/5464 fixed, so test platform is in a separate directory -->
|
||||
<Move SourceFiles="@(NETCore10Assemblies)"
|
||||
DestinationFiles="@(NETCore10Assemblies->'$(SdkOutputDirectory)/%(Filename)%(Extension).bak')" />
|
||||
|
||||
<!-- Crossgen the CLI -->
|
||||
<ItemGroup>
|
||||
<SdkFiles Remove="*" />
|
||||
|
||||
<!-- Removing Full CLR built TestHost assemblies from getting Crossgen as it is throwing error -->
|
||||
<SdkFilesExclude Include="$(SdkOutputDirectory)/TestHost*/**/*" />
|
||||
<!-- Remove NuGet.LibraryModel due to https://github.com/dotnet/coreclr/issues/9118 -->
|
||||
<SdkFilesExclude Include="$(SdkOutputDirectory)/NuGet.LibraryModel.dll" />
|
||||
<SdkFiles Include="$(SdkOutputDirectory)/**/*" Exclude="@(SdkFilesExclude)" />
|
||||
<SdkFilesWithPEMarker Remove="*" />
|
||||
</ItemGroup>
|
||||
|
||||
<AddMetadataIsPE Items="@(SdkFiles)">
|
||||
<Output TaskParameter="ResultItems" ItemName="SdkFilesWithPEMarker" />
|
||||
</AddMetadataIsPE>
|
||||
|
||||
<ItemGroup>
|
||||
<CrossgenTargets Remove="*" />
|
||||
<CrossgenTargets Include="%(SdkFilesWithPEMarker.FullPath)" Condition=" '%(SdkFilesWithPEMarker.IsPE)' == 'True' " />
|
||||
|
||||
<CompileStageSdkDirectories Remove="*" />
|
||||
</ItemGroup>
|
||||
|
||||
<RemoveDuplicates Inputs="@(SdkFiles->'%(RootDir)%(Directory)')">
|
||||
<Output TaskParameter="Filtered" ItemName="CompileStageSdkDirectories" />
|
||||
</RemoveDuplicates>
|
||||
|
||||
<!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 -->
|
||||
<Chmod Condition=" '$(OSName)' != 'win' "
|
||||
File="$(CrossgenPath)"
|
||||
Mode="u+x" />
|
||||
|
||||
<Crossgen Condition=" '$(DISABLE_CROSSGEN)' != '1' "
|
||||
SourceAssembly="%(CrossgenTargets.FullPath)"
|
||||
DestinationPath="%(CrossgenTargets.FullPath)"
|
||||
JITPath="$(LibCLRJitPath)"
|
||||
CrossgenPath="$(CrossgenPath)"
|
||||
ReadyToRun="True"
|
||||
PlatformAssemblyPaths="@(PlatformAssemblies);
|
||||
@(CompileStageSdkDirectories);
|
||||
$(SharedFrameworkNameVersionPath)" />
|
||||
|
||||
<!-- Move the "1.0" assemblies back -->
|
||||
<Move SourceFiles="@(NETCore10Assemblies->'$(SdkOutputDirectory)/%(Filename)%(Extension).bak')"
|
||||
DestinationFiles="@(NETCore10Assemblies)" />
|
||||
|
||||
<!-- Generate .version file -->
|
||||
<WriteLinesToFile File="$(SdkOutputDirectory)/.version"
|
||||
Lines="$(CommitHash);$(SdkVersion);$(Rid)"
|
||||
Overwrite="true" />
|
||||
|
||||
<ItemGroup>
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.targets" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.Targets" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.props" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.overridetasks" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.tasks" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(MSBuildTargetsToCopy)"
|
||||
DestinationFiles="@(MSBuildTargetsToCopy->'$(SdkOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<ItemGroup>
|
||||
<FilesToClean Include="$(StageDirectory)/sdk/**/vbc.exe" />
|
||||
</ItemGroup>
|
||||
|
||||
<Delete Files="@(FilesToClean)" />
|
||||
|
||||
<ItemGroup>
|
||||
<FilesToCopy Include="$(StageDirectory)/**/*" />
|
||||
<PdbsToClean Include="$(StageDirectory)/sdk/**/*.pdb" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(FilesToCopy)"
|
||||
DestinationFiles="@(FilesToCopy->'$(StageSymbolsDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<Delete Files="@(PdbsToClean)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishSdks"
|
||||
DependsOnTargets="Prepare">
|
||||
<ItemGroup>
|
||||
<SdksToBundle Include="build/Microsoft.DotNet.Cli.BundledSdks.proj">
|
||||
<Properties>
|
||||
CLIBuildDll=$(CLIBuildDll);
|
||||
NuGetPackagesDir=$(NuGetPackagesDir);
|
||||
SdkLayoutDirectory=$(SdkOutputDirectory)/Sdks/%(BundledSdk.Identity);
|
||||
SdkPackageName=%(BundledSdk.Identity);
|
||||
SdkPackageVersion=%(BundledSdk.Version);
|
||||
Stage0Directory=$(Stage0Directory)
|
||||
</Properties>
|
||||
</SdksToBundle>
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild
|
||||
BuildInParallel="False"
|
||||
Projects="@(SdksToBundle)">
|
||||
</MSBuild>
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishTemplates"
|
||||
DependsOnTargets="Prepare">
|
||||
<ItemGroup>
|
||||
<TemplatesToBundle Include="build/Microsoft.DotNet.Cli.BundledTemplates.proj">
|
||||
<Properties>
|
||||
TemplateLayoutDirectory=$(SdkOutputDirectory)/Templates;
|
||||
TemplatePackageName=%(BundledTemplate.Identity);
|
||||
TemplatePackageVersion=%(BundledTemplate.Version);
|
||||
Stage0Directory=$(Stage0Directory)
|
||||
</Properties>
|
||||
</TemplatesToBundle>
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild
|
||||
BuildInParallel="False"
|
||||
Projects="@(TemplatesToBundle)">
|
||||
</MSBuild>
|
||||
</Target>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="compile/Microsoft.DotNet.Cli.LzmaArchive.targets" />
|
||||
<Import Project="crossgen/Microsoft.DotNet.Cli.Crossgen.targets" />
|
||||
|
||||
<PropertyGroup>
|
||||
<BinaryToCorehostifyRelDir>runtimes/any/native</BinaryToCorehostifyRelDir>
|
||||
<MSBuildImportsDir>$(RepoRoot)/resources/MSBuildImports</MSBuildImportsDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PublishOutputExtensions Include="$(ExeExtension);.dll;.pdb;.deps.json;.runtimeconfig.json" />
|
||||
<BundledTools Include="MSBuild;NuGet.CommandLine.XPlat;dotnet" />
|
||||
<MSBuildImportsContent Include="$(MSBuildImportsDir)/**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="Compile" DependsOnTargets="Prepare;
|
||||
SetupStage;
|
||||
CompileStage;
|
||||
PublishSdks;
|
||||
PublishTemplates;
|
||||
BuildProjectsForNuGetPackages;
|
||||
GetNuGetPackagesArchive;" />
|
||||
|
||||
<Target Name="SetupStage"
|
||||
DependsOnTargets="Prepare">
|
||||
<PropertyGroup>
|
||||
<SrcDirectory>$(RepoRoot)/src</SrcDirectory>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<CompileStageInputs Include="$(SrcDirectory)/**/*.cs" Exclude="$(SrcDirectory)/**/obj/**/*.cs" />
|
||||
<CompileStageInputs Include="$(SrcDirectory)/**/*.csproj;$(SrcDirectory)/**/project.assets.json" />
|
||||
|
||||
<Stage Include="Stage1">
|
||||
<Inputs>@(CompileStageInputs)</Inputs>
|
||||
<StageDirectory>$(Stage1Directory)</StageDirectory>
|
||||
<StageSymbolsDirectory>$(Stage1SymbolsDirectory)</StageSymbolsDirectory>
|
||||
<DotnetDir>$(Stage0Directory)</DotnetDir>
|
||||
</Stage>
|
||||
<Stage Include="Stage2">
|
||||
<Inputs>@(CompileStageInputs)</Inputs>
|
||||
<StageDirectory>$(Stage2Directory)</StageDirectory>
|
||||
<StageSymbolsDirectory>$(Stage2SymbolsDirectory)</StageSymbolsDirectory>
|
||||
<DotnetDir>$(Stage0Directory)</DotnetDir>
|
||||
</Stage>
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="CompileStage"
|
||||
DependsOnTargets="SetupStage;
|
||||
InitCrossgenProps;"
|
||||
Inputs="%(Stage.Inputs)"
|
||||
Outputs="%(StageDirectory)/sdk/$(SdkVersion)/dotnet.dll">
|
||||
<PropertyGroup>
|
||||
<DynamicLibPrefix Condition=" '$(OSName)' == 'win' "></DynamicLibPrefix>
|
||||
<DynamicLibPrefix Condition=" '$(OSName)' != 'win' ">lib</DynamicLibPrefix>
|
||||
|
||||
<DynamicLibSuffix Condition=" '$(OSName)' == 'win' ">.dll</DynamicLibSuffix>
|
||||
<DynamicLibSuffix Condition=" '$(OSName)' == 'osx' ">.dylib</DynamicLibSuffix>
|
||||
<DynamicLibSuffix Condition=" '$(DynamicLibSuffix)' == '' ">.so</DynamicLibSuffix>
|
||||
|
||||
<DotnetHostBaseName>dotnet$(ExeExtension)</DotnetHostBaseName>
|
||||
<DotnetHostFxrBaseName>$(DynamicLibPrefix)hostfxr$(DynamicLibSuffix)</DotnetHostFxrBaseName>
|
||||
<HostPolicyBaseName>$(DynamicLibPrefix)hostpolicy$(DynamicLibSuffix)</HostPolicyBaseName>
|
||||
|
||||
<StageDirectory>%(Stage.StageDirectory)</StageDirectory>
|
||||
<StageSymbolsDirectory>%(Stage.StageSymbolsDirectory)</StageSymbolsDirectory>
|
||||
<SdkOutputDirectory>$(StageDirectory)/sdk/$(SdkVersion)</SdkOutputDirectory>
|
||||
<BinaryToCorehostifyOutDir>$(SdkOutputDirectory)/$(BinaryToCorehostifyRelDir)</BinaryToCorehostifyOutDir>
|
||||
<MSBuildTargetsDirectory>$(SdkOutputDirectory)/runtimes/any/native</MSBuildTargetsDirectory>
|
||||
|
||||
<SharedFrameworkNameVersionPath>$(StageDirectory)/shared/$(SharedFrameworkName)/$(SharedFrameworkVersion)</SharedFrameworkNameVersionPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<BinObj Remove="*" />
|
||||
<BinObj Include="$(SrcDirectory)/**/bin/**/*" />
|
||||
<BinObj Include="$(SrcDirectory)/**/obj/**/*" Exclude="$(SrcDirectory)/**/obj/project.assets.json;$(SrcDirectory)/**/obj/*.csproj.nuget.g.props;$(SrcDirectory)/**/obj/*.csproj.nuget.g.targets" />
|
||||
|
||||
<SharedFramework Remove="*" />
|
||||
<SharedFramework Include="$(SharedFrameworkPublishDirectory)/**/*" />
|
||||
|
||||
<RuntimeTargetsAssetsToRemoveFromDeps Remove="*" />
|
||||
<RuntimeTargetsAssetsToRemoveFromDeps Include="MSBuild" />
|
||||
|
||||
<RuntimeAssetsToRemoveFromDeps Remove="*" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="redist" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="tool_msbuild" />
|
||||
<RuntimeAssetsToRemoveFromDeps Include="tool_nuget" />
|
||||
</ItemGroup>
|
||||
|
||||
<Delete Files="@(BinObj)" />
|
||||
|
||||
<RemoveDir Directories="$(StageDirectory)" />
|
||||
<MakeDir Directories="$(StageDirectory)"/>
|
||||
|
||||
<!-- CopySharedFramework -->
|
||||
<Copy SourceFiles="@(SharedFramework)"
|
||||
DestinationFiles="@(SharedFramework->'$(StageDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<!-- Workaround for https://github.com/dotnet/sdk/issues/115 -->
|
||||
<ItemGroup>
|
||||
<HackFilesToCopy Include="$(NuGetPackagesDir)\microsoft.build.runtime\$(CLI_MSBuild_Version)\contentFiles\any\netcoreapp1.0\**;
|
||||
$(NuGetPackagesDir)\microsoft.build.runtime\$(CLI_MSBuild_Version)\contentFiles\any\netcoreapp1.1\**;
|
||||
$(NuGetPackagesDir)\microsoft.codeanalysis.build.tasks\$(CLI_Roslyn_Version)\contentFiles\any\any\**;
|
||||
$(NuGetPackagesDir)\microsoft.testplatform.cli\$(CLI_TestPlatform_Version)\contentFiles\any\any\**" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="@(HackFilesToCopy)"
|
||||
DestinationFiles="@(HackFilesToCopy->'$(SdkOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<!-- Publish DotNet -->
|
||||
<DotNetPublish ToolPath="%(Stage.DotnetDir)"
|
||||
Output="$(SdkOutputDirectory)"
|
||||
Configuration="$(Configuration)"
|
||||
VersionSuffix="$(CommitCount)"
|
||||
ProjectPath="$(SrcDirectory)/redist/redist.csproj"
|
||||
MSBuildArgs="/p:GenerateRuntimeConfigurationFiles=true" />
|
||||
|
||||
<!-- Publish DotNet -->
|
||||
<DotNetPublish ToolPath="%(Stage.DotnetDir)"
|
||||
Output="$(SdkOutputDirectory)/Roslyn"
|
||||
Configuration="$(Configuration)"
|
||||
VersionSuffix="$(CommitCount)"
|
||||
ProjectPath="$(SrcDirectory)/tool_roslyn/tool_roslyn.csproj" />
|
||||
|
||||
<!-- Corehostify Binaries -->
|
||||
<ItemGroup Condition=" '$(OSName)' != 'win' ">
|
||||
<SdkOutputChmodTargets Remove="*" />
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*.exe;
|
||||
$(SdkOutputDirectory)/**/*.dll" >
|
||||
<!-- Managed assemblies do not need execute -->
|
||||
<Mode>u=rw,g=r,o=r</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*.dylib;
|
||||
$(SdkOutputDirectory)/**/*.so" >
|
||||
<!-- Generally, dylibs and sos have 'x' -->
|
||||
<Mode>u=rwx,g=rx,o=rx</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
|
||||
<SdkOutputChmodTargets Include="$(SdkOutputDirectory)/**/*"
|
||||
Exclude="$(SdkOutputDirectory)/**/*.*" >
|
||||
<!-- Executables need x -->
|
||||
<Mode>u=rwx,g=rx,o=rx</Mode>
|
||||
</SdkOutputChmodTargets>
|
||||
</ItemGroup>
|
||||
|
||||
<Chmod Condition=" '$(OSName)' != 'win' "
|
||||
File="%(SdkOutputChModTargets.FullPath)"
|
||||
Mode="%(SdkOutputChModTargets.Mode)" />
|
||||
|
||||
<RemoveAssetFromDepsPackages DepsFile="$(SdkOutputDirectory)/redist.deps.json"
|
||||
SectionName="runtimeTargets"
|
||||
AssetPath="$(BinaryToCorehostifyRelDir)/%(RuntimeTargetsAssetsToRemoveFromDeps.Identity).exe" />
|
||||
|
||||
<RemoveAssetFromDepsPackages DepsFile="$(SdkOutputDirectory)/redist.deps.json"
|
||||
SectionName="runtime"
|
||||
AssetPath="%(RuntimeAssetsToRemoveFromDeps.Identity).dll" />
|
||||
|
||||
<Copy SourceFiles="$(SdkOutputDirectory)/redist.deps.json"
|
||||
DestinationFiles="$(SdkOutputDirectory)/%(BundledTools.Identity).deps.json" />
|
||||
|
||||
<Copy SourceFiles="$(SdkOutputDirectory)/redist.runtimeconfig.json"
|
||||
DestinationFiles="$(SdkOutputDirectory)/%(BundledTools.Identity).runtimeconfig.json" />
|
||||
|
||||
<ChangeEntryPointLibraryName
|
||||
DepsFile="$(SdkOutputDirectory)/%(BundledTools.Identity).deps.json"
|
||||
NewName="%(BundledTools.Identity).deps.json" />
|
||||
|
||||
<!-- cleanup project output we don't need -->
|
||||
<Delete Files="$(SdkOutputDirectory)/redist%(PublishOutputExtensions.Identity)" />
|
||||
<Delete Files="$(SdkOutputDirectory)/tool_msbuild%(PublishOutputExtensions.Identity)" />
|
||||
<Delete Files="$(SdkOutputDirectory)/tool_nuget%(PublishOutputExtensions.Identity)" />
|
||||
|
||||
<!-- Copy Host to SDK Directory -->
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(DotnetHostBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/corehost$(ExeExtension)" />
|
||||
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(DotnetHostFxrBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/$(DotnetHostFxrBaseName)" />
|
||||
|
||||
<Copy SourceFiles="$(SharedFrameworkNameVersionPath)/$(HostPolicyBaseName)"
|
||||
DestinationFiles="$(SdkOutputDirectory)/$(HostPolicyBaseName)" />
|
||||
|
||||
<!-- copy core sdk -->
|
||||
<Copy SourceFiles="@(MSBuildImportsContent)"
|
||||
DestinationFolder="$(SdkOutputDirectory)/%(RecursiveDir)" />
|
||||
|
||||
<ItemGroup>
|
||||
<NETCore10Assemblies Include="$(SdkOutputDirectory)/System.ComponentModel.Primitives.dll;
|
||||
$(SdkOutputDirectory)/System.Collections.Specialized.dll;
|
||||
$(SdkOutputDirectory)/System.Collections.NonGeneric.dll;
|
||||
$(SdkOutputDirectory)/System.Private.DataContractSerialization.dll" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Move these "1.0" assemblies that TestPlatform lays down out of the way so crossgen doesn't pick them up.
|
||||
We need https://github.com/dotnet/cli/issues/5464 fixed, so test platform is in a separate directory -->
|
||||
<Move SourceFiles="@(NETCore10Assemblies)"
|
||||
DestinationFiles="@(NETCore10Assemblies->'$(SdkOutputDirectory)/%(Filename)%(Extension).bak')" />
|
||||
|
||||
<!-- Crossgen the CLI -->
|
||||
<ItemGroup>
|
||||
<SdkFiles Remove="*" />
|
||||
|
||||
<!-- Removing Full CLR built TestHost assemblies from getting Crossgen as it is throwing error -->
|
||||
<SdkFilesExclude Include="$(SdkOutputDirectory)/TestHost*/**/*" />
|
||||
<!-- Remove NuGet.LibraryModel due to https://github.com/dotnet/coreclr/issues/9118 -->
|
||||
<SdkFilesExclude Include="$(SdkOutputDirectory)/NuGet.LibraryModel.dll" />
|
||||
<SdkFiles Include="$(SdkOutputDirectory)/**/*" Exclude="@(SdkFilesExclude)" />
|
||||
<SdkFilesWithPEMarker Remove="*" />
|
||||
</ItemGroup>
|
||||
|
||||
<AddMetadataIsPE Items="@(SdkFiles)">
|
||||
<Output TaskParameter="ResultItems" ItemName="SdkFilesWithPEMarker" />
|
||||
</AddMetadataIsPE>
|
||||
|
||||
<ItemGroup>
|
||||
<CrossgenTargets Remove="*" />
|
||||
<CrossgenTargets Include="%(SdkFilesWithPEMarker.FullPath)" Condition=" '%(SdkFilesWithPEMarker.IsPE)' == 'True' " />
|
||||
|
||||
<CompileStageSdkDirectories Remove="*" />
|
||||
</ItemGroup>
|
||||
|
||||
<RemoveDuplicates Inputs="@(SdkFiles->'%(RootDir)%(Directory)')">
|
||||
<Output TaskParameter="Filtered" ItemName="CompileStageSdkDirectories" />
|
||||
</RemoveDuplicates>
|
||||
|
||||
<!-- Ensure crossgen tool is executable. See https://github.com/NuGet/Home/issues/4424 -->
|
||||
<Chmod Condition=" '$(OSName)' != 'win' "
|
||||
File="$(CrossgenPath)"
|
||||
Mode="u+x" />
|
||||
|
||||
<Crossgen Condition=" '$(DISABLE_CROSSGEN)' != '1' "
|
||||
SourceAssembly="%(CrossgenTargets.FullPath)"
|
||||
DestinationPath="%(CrossgenTargets.FullPath)"
|
||||
JITPath="$(LibCLRJitPath)"
|
||||
CrossgenPath="$(CrossgenPath)"
|
||||
ReadyToRun="True"
|
||||
PlatformAssemblyPaths="@(PlatformAssemblies);
|
||||
@(CompileStageSdkDirectories);
|
||||
$(SharedFrameworkNameVersionPath)" />
|
||||
|
||||
<!-- Move the "1.0" assemblies back -->
|
||||
<Move SourceFiles="@(NETCore10Assemblies->'$(SdkOutputDirectory)/%(Filename)%(Extension).bak')"
|
||||
DestinationFiles="@(NETCore10Assemblies)" />
|
||||
|
||||
<!-- Generate .version file -->
|
||||
<WriteLinesToFile File="$(SdkOutputDirectory)/.version"
|
||||
Lines="$(CommitHash);$(SdkVersion);$(Rid)"
|
||||
Overwrite="true" />
|
||||
|
||||
<ItemGroup>
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.targets" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.Targets" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.props" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.overridetasks" />
|
||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.tasks" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(MSBuildTargetsToCopy)"
|
||||
DestinationFiles="@(MSBuildTargetsToCopy->'$(SdkOutputDirectory)/%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<ItemGroup>
|
||||
<FilesToClean Include="$(StageDirectory)/sdk/**/vbc.exe" />
|
||||
</ItemGroup>
|
||||
|
||||
<Delete Files="@(FilesToClean)" />
|
||||
|
||||
<ItemGroup>
|
||||
<FilesToCopy Include="$(StageDirectory)/**/*" />
|
||||
<PdbsToClean Include="$(StageDirectory)/sdk/**/*.pdb" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(FilesToCopy)"
|
||||
DestinationFiles="@(FilesToCopy->'$(StageSymbolsDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||
|
||||
<Delete Files="@(PdbsToClean)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishSdks"
|
||||
DependsOnTargets="Prepare">
|
||||
<ItemGroup>
|
||||
<SdksToBundle Include="build/Microsoft.DotNet.Cli.BundledSdks.proj">
|
||||
<Properties>
|
||||
CLIBuildDll=$(CLIBuildDll);
|
||||
NuGetPackagesDir=$(NuGetPackagesDir);
|
||||
SdkLayoutDirectory=$(SdkOutputDirectory)/Sdks/%(BundledSdk.Identity);
|
||||
SdkPackageName=%(BundledSdk.Identity);
|
||||
SdkPackageVersion=%(BundledSdk.Version);
|
||||
Stage0Directory=$(Stage0Directory)
|
||||
</Properties>
|
||||
</SdksToBundle>
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild
|
||||
BuildInParallel="False"
|
||||
Projects="@(SdksToBundle)">
|
||||
</MSBuild>
|
||||
</Target>
|
||||
|
||||
<Target Name="PublishTemplates"
|
||||
DependsOnTargets="Prepare">
|
||||
<ItemGroup>
|
||||
<TemplatesToBundle Include="build/Microsoft.DotNet.Cli.BundledTemplates.proj">
|
||||
<Properties>
|
||||
TemplateLayoutDirectory=$(SdkOutputDirectory)/Templates;
|
||||
TemplatePackageName=%(BundledTemplate.Identity);
|
||||
TemplatePackageVersion=%(BundledTemplate.Version);
|
||||
Stage0Directory=$(Stage0Directory)
|
||||
</Properties>
|
||||
</TemplatesToBundle>
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild
|
||||
BuildInParallel="False"
|
||||
Projects="@(TemplatesToBundle)">
|
||||
</MSBuild>
|
||||
</Target>
|
||||
</Project>
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<PropertyGroup>
|
||||
<CLI_SharedFrameworkVersion>2.0.0-beta-001386-00</CLI_SharedFrameworkVersion>
|
||||
<CLI_CoreCLRVersion>1.2.0-beta-24904-03</CLI_CoreCLRVersion>
|
||||
<CLI_MSBuild_Version>15.1.0-preview-000539-01</CLI_MSBuild_Version>
|
||||
<CLI_SharedFrameworkVersion>2.0.0-beta-001450-00</CLI_SharedFrameworkVersion>
|
||||
<CLI_CoreCLRVersion>2.0.0-beta-24927-03</CLI_CoreCLRVersion>
|
||||
<CLI_MSBuild_Version>15.2.0-preview-000002-01</CLI_MSBuild_Version>
|
||||
<CLI_Roslyn_Version>2.0.0-rc4-61325-08</CLI_Roslyn_Version>
|
||||
<CLI_NETSDK_Version>1.0.0-alpha-20170125-1</CLI_NETSDK_Version>
|
||||
<!-- non-official NuGet build taken from https://github.com/nuget/nuget.client/tree/release-4.0.0-rc3-netstandard2.0 to contain "2.0" TFMs -->
|
||||
|
|
Loading…
Reference in a new issue