Revert "Making CompileStage batch over the different stages to avoid msbuild caching of targets."
This reverts commit e100b950d2
.
This commit is contained in:
parent
e100b950d2
commit
f661ec4a8b
3 changed files with 87 additions and 64 deletions
|
@ -8,7 +8,7 @@
|
||||||
<PlatformScriptHost Condition=" '$(OS)' != 'Windows_NT' "></PlatformScriptHost>
|
<PlatformScriptHost Condition=" '$(OS)' != 'Windows_NT' "></PlatformScriptHost>
|
||||||
|
|
||||||
<PlatformScriptExtension Condition=" '$(OS)' == 'Windows_NT' ">.ps1</PlatformScriptExtension>
|
<PlatformScriptExtension Condition=" '$(OS)' == 'Windows_NT' ">.ps1</PlatformScriptExtension>
|
||||||
<PlatformScriptExtension Condition=" '$(OS)' != 'Windows_NT' ">.sh</PlatformScriptExtension>
|
<PlatformScriptExtension Condition=" '$(OS)' != 'Windows_NT' ">.sh</PlatformScriptExtension>
|
||||||
|
|
||||||
<NoRunArg Condition=" '$(OS)' == 'Windows_NT' ">-NoRun</NoRunArg>
|
<NoRunArg Condition=" '$(OS)' == 'Windows_NT' ">-NoRun</NoRunArg>
|
||||||
<NoRunArg Condition=" '$(OS)' != 'Windows_NT' ">--norun</NoRunArg>
|
<NoRunArg Condition=" '$(OS)' != 'Windows_NT' ">--norun</NoRunArg>
|
||||||
|
@ -55,6 +55,10 @@
|
||||||
<UsingTask TaskName="TestTargets" AssemblyFile="$(CLIBuildDll)" />
|
<UsingTask TaskName="TestTargets" AssemblyFile="$(CLIBuildDll)" />
|
||||||
<UsingTask TaskName="PublishTargets" AssemblyFile="$(CLIBuildDll)" />
|
<UsingTask TaskName="PublishTargets" AssemblyFile="$(CLIBuildDll)" />
|
||||||
|
|
||||||
|
<Target DependsOnTargets="BuildDotnetCliBuildFramework" Name="Prepare">
|
||||||
|
<PrepareTargets />
|
||||||
|
</Target>
|
||||||
|
|
||||||
<Target DependsOnTargets="BuildDotnetCliBuildFramework" Name="Test">
|
<Target DependsOnTargets="BuildDotnetCliBuildFramework" Name="Test">
|
||||||
<TestTargets />
|
<TestTargets />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
|
@ -9,55 +9,47 @@
|
||||||
<UsingTask TaskName="CrossgenDirectory" AssemblyFile="$(CLIBuildDll)" />
|
<UsingTask TaskName="CrossgenDirectory" AssemblyFile="$(CLIBuildDll)" />
|
||||||
|
|
||||||
<Target Name="Compile" DependsOnTargets="BuildDotnetCliBuildFramework;
|
<Target Name="Compile" DependsOnTargets="BuildDotnetCliBuildFramework;
|
||||||
Init;
|
CompileStage1;
|
||||||
SetupStage;
|
CompileStage2">
|
||||||
CompileStage;
|
|
||||||
BuildProjectsForNuGetPackages;
|
|
||||||
GenerateNuGetPackagesArchive">
|
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="SetupStage">
|
|
||||||
<ItemGroup>
|
|
||||||
<CompileStageInputs Include="$(RepoRoot)/src/**/*.cs" Exclude="$(RepoRoot)/src/**/obj/**/*.cs" />
|
|
||||||
<CompileStageInputs Include="$(RepoRoot)/src/**/project.json;$(RepoRoot)/src/**/project.lock.json" />
|
|
||||||
|
|
||||||
<Stage Include="Stage1">
|
<Target Name="CompileStage1"
|
||||||
<Inputs>@(CompileStageInputs)</Inputs>
|
DependsOnTargets="BuildDotnetCliBuildFramework;
|
||||||
<StageDirectory>$(Stage1Directory)</StageDirectory>
|
Init;
|
||||||
<StageSymbolsDirectory>$(Stage1SymbolsDirectory)</StageSymbolsDirectory>
|
SetupStage1;
|
||||||
<DotnetExe>$(Stage0Path)/dotnet.exe</DotnetExe>
|
CompileStage;
|
||||||
</Stage>
|
AfterCompileStage">
|
||||||
<Stage Include="Stage2">
|
</Target>
|
||||||
<Inputs>@(CompileStageInputs)</Inputs>
|
|
||||||
<StageDirectory>$(Stage2Directory)</StageDirectory>
|
<Target Name="SetupStage1">
|
||||||
<StageSymbolsDirectory>$(Stage2SymbolsDirectory)</StageSymbolsDirectory>
|
<PropertyGroup>
|
||||||
<DotnetExe>$(DotnetStage1)</DotnetExe>
|
<StageDirectory>$(Stage1Directory)</StageDirectory>
|
||||||
</Stage>
|
<StageSymbolsDirectory>$(Stage1SymbolsDirectory)</StageSymbolsDirectory>
|
||||||
</ItemGroup>
|
<DotnetExe>$(Stage0Path)/dotnet.exe</DotnetExe>
|
||||||
|
</PropertyGroup>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
<Target Name="CompileStage"
|
<Target Name="CompileStage2"
|
||||||
Inputs="%(Stage.Identity);%(Stage.Inputs)"
|
DependsOnTargets="BuildDotnetCliBuildFramework;
|
||||||
Outputs="%(StageDirectory)/sdk/$(NugetVersion)/dotnet.dll">
|
Init;
|
||||||
|
SetupStage2;
|
||||||
|
CompileStage;
|
||||||
|
AfterCompileStage;
|
||||||
|
BuildProjectsForNuGetPackages;
|
||||||
|
GenerateNuGetPackagesArchive">
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="SetupStage2">
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<SrcDirectory>$(RepoRoot)/src</SrcDirectory>
|
<StageDirectory>$(Stage2Directory)</StageDirectory>
|
||||||
|
<StageSymbolsDirectory>$(Stage2SymbolsDirectory)</StageSymbolsDirectory>
|
||||||
|
<DotnetExe>$(DotnetStage1)</DotnetExe>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Target>
|
||||||
|
|
||||||
<ExeSuffix Condition=" '$(OSName)' == 'win' ">.exe</ExeSuffix>
|
<Target Name="CompileStage"
|
||||||
<ExeSuffix Condition=" '$(OSName)' != 'win' "></ExeSuffix>
|
DependsOnTargets="BeforeCompileStage">
|
||||||
|
<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$(ExeSuffix)</DotnetHostBaseName>
|
|
||||||
<DotnetHostFxrBaseName>$(DynamicLibPrefix)hostfxr$(DynamicLibSuffix)</DotnetHostFxrBaseName>
|
|
||||||
<HostPolicyBaseName>$(DynamicLibPrefix)hostpolicy$(DynamicLibSuffix)</HostPolicyBaseName>
|
|
||||||
|
|
||||||
<StageDirectory>%(Stage.StageDirectory)</StageDirectory>
|
|
||||||
<StageSymbolsDirectory>%(Stage.StageSymbolsDirectory)</StageSymbolsDirectory>
|
|
||||||
<SdkOutputDirectory>$(StageDirectory)/sdk/$(NugetVersion)</SdkOutputDirectory>
|
<SdkOutputDirectory>$(StageDirectory)/sdk/$(NugetVersion)</SdkOutputDirectory>
|
||||||
<BinaryToCorehostifyRelDir>runtimes/any/native</BinaryToCorehostifyRelDir>
|
<BinaryToCorehostifyRelDir>runtimes/any/native</BinaryToCorehostifyRelDir>
|
||||||
<BinaryToCorehostifyOutDir>$(SdkOutputDirectory)/$(BinaryToCorehostifyRelDir)</BinaryToCorehostifyOutDir>
|
<BinaryToCorehostifyOutDir>$(SdkOutputDirectory)/$(BinaryToCorehostifyRelDir)</BinaryToCorehostifyOutDir>
|
||||||
|
@ -65,10 +57,6 @@
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<BinObj Include="$(SrcDirectory)/**/bin/**/*" />
|
|
||||||
<BinObj Include="$(SrcDirectory)/**/obj/**/*" />
|
|
||||||
<FilesToRemoveFromStageDirectory Include="$(StageDirectory)/**/*" />
|
|
||||||
|
|
||||||
<SharedFramework Include="$(IntermediateDirectory)/sharedFrameworkPublish/**/*.*" />
|
<SharedFramework Include="$(IntermediateDirectory)/sharedFrameworkPublish/**/*.*" />
|
||||||
|
|
||||||
<BinariesToRemove Include="csc" />
|
<BinariesToRemove Include="csc" />
|
||||||
|
@ -81,22 +69,12 @@
|
||||||
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.tasks" />
|
<MSBuildTargetsToCopy Include="$(MSBuildTargetsDirectory)/**/*.tasks" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<SharedFrameworkNameVersionPath RootOutputDirectory="$(StageDirectory)">
|
|
||||||
<Output TaskParameter="OutputSharedFrameworkNameVersionPath" PropertyName="SharedFrameworkNameVersionPath" />
|
|
||||||
</SharedFrameworkNameVersionPath>
|
|
||||||
|
|
||||||
<Delete Files="@(BinObj)" />
|
|
||||||
|
|
||||||
<Delete Files="@(FilesToRemoveFromStageDirectory)" />
|
|
||||||
<RemoveDir Directories="$(StageDirectory)" />
|
|
||||||
<MakeDir Directories="$(StageDirectory)"/>
|
|
||||||
|
|
||||||
<!-- CopySharedFramework -->
|
<!-- CopySharedFramework -->
|
||||||
<Copy SourceFiles="@(SharedFramework)"
|
<Copy SourceFiles="@(SharedFramework)"
|
||||||
DestinationFiles="@(SharedFramework->'$(StageDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
DestinationFiles="@(SharedFramework->'$(StageDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
|
|
||||||
<!-- Publish DotNet -->
|
<!-- Publish DotNet -->
|
||||||
<Exec Command="%(Stage.DotnetExe) publish
|
<Exec Command="$(DotnetExe) publish
|
||||||
--native-subdirectory
|
--native-subdirectory
|
||||||
--output $(SdkOutputDirectory)
|
--output $(SdkOutputDirectory)
|
||||||
--configuration $(Configuration)
|
--configuration $(Configuration)
|
||||||
|
@ -106,7 +84,7 @@
|
||||||
<!-- Corehostify Binaries -->
|
<!-- Corehostify Binaries -->
|
||||||
<FixModeFlags Dir="$(SdkOutputDirectory)" />
|
<FixModeFlags Dir="$(SdkOutputDirectory)" />
|
||||||
|
|
||||||
<Exec Command="%(Stage.DotnetExe) publish
|
<Exec Command="$(DotnetExe) publish
|
||||||
--output $(SdkOutputDirectory)
|
--output $(SdkOutputDirectory)
|
||||||
--framework netcoreapp1.0
|
--framework netcoreapp1.0
|
||||||
$(SrcDirectory)/compilers" />
|
$(SrcDirectory)/compilers" />
|
||||||
|
@ -160,13 +138,46 @@
|
||||||
|
|
||||||
<Copy SourceFiles="@(MSBuildTargetsToCopy)"
|
<Copy SourceFiles="@(MSBuildTargetsToCopy)"
|
||||||
DestinationFiles="@(MSBuildTargetsToCopy->'$(SdkOutputDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
DestinationFiles="@(MSBuildTargetsToCopy->'$(SdkOutputDirectory)\%(RecursiveDir)%(Filename)%(Extension)')" />
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="BeforeCompileStage">
|
||||||
|
<PropertyGroup>
|
||||||
|
<SrcDirectory>$(RepoRoot)/src</SrcDirectory>
|
||||||
|
|
||||||
|
<ExeSuffix Condition=" '$(OSName)' == 'win' ">.exe</ExeSuffix>
|
||||||
|
<ExeSuffix Condition=" '$(OSName)' != 'win' "></ExeSuffix>
|
||||||
|
|
||||||
|
<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$(ExeSuffix)</DotnetHostBaseName>
|
||||||
|
<DotnetHostFxrBaseName>$(DynamicLibPrefix)hostfxr$(DynamicLibSuffix)</DotnetHostFxrBaseName>
|
||||||
|
<HostPolicyBaseName>$(DynamicLibPrefix)hostpolicy$(DynamicLibSuffix)</HostPolicyBaseName>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<FilesToClean Include="$(StageDirectory)/sdk/**/vbc.exe" />
|
<BinObj Include="$(SrcDirectory)/**/bin/**/*" />
|
||||||
</ItemGroup>
|
<BinObj Include="$(SrcDirectory)/**/obj/**/*" />
|
||||||
|
<FilesToRemoveFromStageDirectory Include="$(StageDirectory)/**/*" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
<Delete Files="@(FilesToClean)" />
|
<SharedFrameworkNameVersionPath RootOutputDirectory="$(StageDirectory)">
|
||||||
|
<Output TaskParameter="OutputSharedFrameworkNameVersionPath" PropertyName="SharedFrameworkNameVersionPath" />
|
||||||
|
</SharedFrameworkNameVersionPath>
|
||||||
|
|
||||||
|
<Delete Files="@(BinObj)" />
|
||||||
|
|
||||||
|
<Delete Files="@(FilesToRemoveFromStageDirectory)" />
|
||||||
|
<RemoveDir Directories="$(StageDirectory)" />
|
||||||
|
<MakeDir Directories="$(StageDirectory)"/>
|
||||||
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="AfterCompileStage"
|
||||||
|
DependsOnTargets="RemoveUnnecessaryFiles">
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<FilesToCopy Include="$(StageDirectory)/**/*.*" />
|
<FilesToCopy Include="$(StageDirectory)/**/*.*" />
|
||||||
<PdbsToClean Include="$(StageDirectory)/sdk/**/*.pdb" />
|
<PdbsToClean Include="$(StageDirectory)/sdk/**/*.pdb" />
|
||||||
|
@ -177,4 +188,12 @@
|
||||||
|
|
||||||
<Delete Files="@(PdbsToClean)" />
|
<Delete Files="@(PdbsToClean)" />
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
<Target Name="RemoveUnnecessaryFiles">
|
||||||
|
<ItemGroup>
|
||||||
|
<FilesToClean Include="$(StageDirectory)/sdk/**/vbc.exe" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<Delete Files="@(FilesToClean)" />
|
||||||
|
</Target>
|
||||||
</Project>
|
</Project>
|
|
@ -25,7 +25,7 @@
|
||||||
<Stage0Path Condition=" '$(OSName)' == 'osx' ">$(RepoRoot)/.dotnet_stage0/Darwin</Stage0Path>
|
<Stage0Path Condition=" '$(OSName)' == 'osx' ">$(RepoRoot)/.dotnet_stage0/Darwin</Stage0Path>
|
||||||
<Stage0Path Condition=" '$(Stage0Path)' == '' ">$(RepoRoot)/.dotnet_stage0/Linux</Stage0Path>
|
<Stage0Path Condition=" '$(Stage0Path)' == '' ">$(RepoRoot)/.dotnet_stage0/Linux</Stage0Path>
|
||||||
<DotNetPath>$(Stage0Path)</DotNetPath>
|
<DotNetPath>$(Stage0Path)</DotNetPath>
|
||||||
|
|
||||||
<BaseOutputDirectory>$(RepoRoot)/artifacts/$(Rid)</BaseOutputDirectory>
|
<BaseOutputDirectory>$(RepoRoot)/artifacts/$(Rid)</BaseOutputDirectory>
|
||||||
<ToolsOutputDirectory>$(BaseOutputDirectory)/tools</ToolsOutputDirectory>
|
<ToolsOutputDirectory>$(BaseOutputDirectory)/tools</ToolsOutputDirectory>
|
||||||
<Stage1Directory>$(BaseOutputDirectory)/stage1</Stage1Directory>
|
<Stage1Directory>$(BaseOutputDirectory)/stage1</Stage1Directory>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue