From 71733ddafd88bc40dd8a4f8fec498c30a830f2e1 Mon Sep 17 00:00:00 2001 From: Elinor Fung <47805090+elinor-fung@users.noreply.github.com> Date: Thu, 30 May 2019 14:58:09 -0700 Subject: [PATCH] Remove BuildTools from product build (dotnet/coreclr#24841) * Remove BuildTools imports from product build * Split scripts for installing dotnet vs BuildTools Commit migrated from https://github.com/dotnet/coreclr/commit/fa8383fb28be945cae900a5579afd5920f274fd4 --- src/coreclr/UpdatePublishedVersions.ps1 | 1 + src/coreclr/build-test.sh | 3 +- src/coreclr/build.cmd | 29 +++++---------- src/coreclr/build.proj | 14 -------- src/coreclr/build.sh | 26 +++++--------- src/coreclr/dir.props | 29 ++------------- src/coreclr/dir.targets | 23 ------------ src/coreclr/dotnet.cmd | 6 ++-- src/coreclr/dotnet.sh | 4 +-- src/coreclr/init-dotnet.cmd | 13 +++++++ src/coreclr/init-dotnet.sh | 15 ++++++++ src/coreclr/init-tools.cmd | 5 +-- src/coreclr/init-tools.sh | 6 +--- .../GenerateSplitStringResources.targets | 42 ---------------------- 14 files changed, 58 insertions(+), 158 deletions(-) delete mode 100644 src/coreclr/build.proj delete mode 100644 src/coreclr/dir.targets create mode 100644 src/coreclr/init-dotnet.cmd create mode 100644 src/coreclr/init-dotnet.sh delete mode 100644 src/coreclr/src/System.Private.CoreLib/GenerateSplitStringResources.targets diff --git a/src/coreclr/UpdatePublishedVersions.ps1 b/src/coreclr/UpdatePublishedVersions.ps1 index ceaff86..cef54e5 100644 --- a/src/coreclr/UpdatePublishedVersions.ps1 +++ b/src/coreclr/UpdatePublishedVersions.ps1 @@ -16,6 +16,7 @@ param( # A pattern matching all packages in the set that the versions repository should be set to. [Parameter(Mandatory=$true)][string]$nupkgPath) +& "$PSScriptRoot\init-tools.cmd" & "$PSScriptRoot\dotnet.cmd" msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false ` /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll`;LogFile=binclash.log ` /p:RestoreDefaultOptimizationDataPackage=false ` diff --git a/src/coreclr/build-test.sh b/src/coreclr/build-test.sh index 2b9635d..a6569cb 100755 --- a/src/coreclr/build-test.sh +++ b/src/coreclr/build-test.sh @@ -994,7 +994,8 @@ fi # init the target distro name initTargetDistroRid -# Override tool directory +# Restore Build Tools +source $__ProjectRoot/init-tools.sh if [[ (-z "$__GenerateLayoutOnly") && (-z "$__GenerateTestHostOnly") && (-z "$__BuildTestWrappersOnly") ]]; then build_Tests diff --git a/src/coreclr/build.cmd b/src/coreclr/build.cmd index 234bbfe..de8bc7c 100644 --- a/src/coreclr/build.cmd +++ b/src/coreclr/build.cmd @@ -39,7 +39,6 @@ set ghprbCommentBody= :: __BinDir -- default: %__RootBinDir%\%__BuildOS%.%__BuildArch.%__BuildType%\ :: __IntermediatesDir :: __PackagesBinDir -- default: %__BinDir%\.nuget -:: __TestWorkingDir -- default: %__RootBinDir%\tests\%__BuildOS%.%__BuildArch.%__BuildType%\ :: :: Thus, these variables are not simply internal to this script! @@ -377,12 +376,12 @@ REM === Restore optimization profile data REM === REM ========================================================================================= +set OptDataProjectFilePath=%__ProjectDir%\src\.nuget\optdata\optdata.csproj if %__RestoreOptData% EQU 1 ( echo %__MsgPrefix%Restoring the OptimizationData Package - call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /maxcpucount^ - ./build.proj /t:RestoreOptData^ + call %__ProjectDir%\dotnet.cmd restore /nologo /verbosity:minimal^ + /nodeReuse:false /maxcpucount^ + %OptDataProjectFilePath%^ %__CommonMSBuildArgs% %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( echo %__MsgPrefix%Error: Failed to restore the optimization data package. @@ -391,7 +390,6 @@ if %__RestoreOptData% EQU 1 ( ) REM Parse the optdata package versions out of msbuild so that we can pass them on to CMake -set OptDataProjectFilePath=%__ProjectDir%\src\.nuget\optdata\optdata.csproj for /f "tokens=*" %%s in ('call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpPgoDataPackageVersion /nologo') do ( set __PgoOptDataVersion=%%s ) @@ -473,9 +471,7 @@ if %__BuildCrossArchNative% EQU 1 ( set __Logging=!_MsbuildLog! !__MsbuildWrn! !__MsbuildErr! call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^ - /l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /maxcpucount^ + /p:PortableBuild=true /maxcpucount^ %__CrossCompIntermediatesDir%\install.vcxproj^ !__Logging! /p:Configuration=%__BuildType% /p:Platform=%__CrossArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs% @@ -561,9 +557,7 @@ if %__BuildNative% EQU 1 ( set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr! call %__ProjectDir%\cmake_msbuild.cmd /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^ - /l:BinClashLogger,Tools/net46/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /maxcpucount %__IntermediatesDir%\install.vcxproj^ + /p:PortableBuild=true /maxcpucount %__IntermediatesDir%\install.vcxproj^ !__Logging! /p:Configuration=%__BuildType% /p:Platform=%__BuildArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( @@ -614,9 +608,7 @@ if %__BuildCoreLib% EQU 1 ( set __Logging=!__MsbuildLog! !__MsbuildWrn! !__MsbuildErr! call %__ProjectDir%\dotnet.cmd restore /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^ - /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true^ + /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true^ %__ProjectDir%\src\build.proj^ !__Logging! %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( @@ -628,9 +620,7 @@ if %__BuildCoreLib% EQU 1 ( ) call %__ProjectDir%\dotnet.cmd msbuild /nologo /verbosity:minimal /clp:Summary /nodeReuse:false^ - /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll;LogFile=binclash.log^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /maxcpucount /p:ArcadeBuild=true^ + /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true^ %__ProjectDir%\src\build.proj^ !__Logging! %__CommonMSBuildArgs% !__ExtraBuildArgs! %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( @@ -835,8 +825,7 @@ if %__BuildPackages% EQU 1 ( powershell -NoProfile -ExecutionPolicy ByPass -NoLogo -File "%__ProjectDir%\eng\common\build.ps1"^ -r -b -projects %__SourceDir%\.nuget\packages.builds^ -verbosity minimal /nodeReuse:false /bl:!__BuildLog!^ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true^ - /p:UsePartialNGENOptimization=false /p:ArcadeBuild=true^ + /p:PortableBuild=true /p:ArcadeBuild=true^ /p:Platform=%__BuildArch% %__CommonMSBuildArgs% %__UnprocessedBuildArgs% if not !errorlevel! == 0 ( echo %__MsgPrefix%Error: Nuget package generation failed. Refer to the build log file for details: diff --git a/src/coreclr/build.proj b/src/coreclr/build.proj deleted file mode 100644 index 3ccf06d..0000000 --- a/src/coreclr/build.proj +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/coreclr/build.sh b/src/coreclr/build.sh index 6c39ea6..81d6610 100755 --- a/src/coreclr/build.sh +++ b/src/coreclr/build.sh @@ -136,12 +136,11 @@ restore_optdata() # we only need optdata on a Release build if [[ "$__BuildType" != "Release" ]]; then __SkipRestoreOptData=1; fi + local OptDataProjectFilePath="$__ProjectRoot/src/.nuget/optdata/optdata.csproj" if [[ ( $__SkipRestoreOptData == 0 ) && ( $__isMSBuildOnNETCoreSupported == 1 ) ]]; then echo "Restoring the OptimizationData package" - "$__ProjectRoot/dotnet.sh" msbuild /nologo /verbosity:minimal /clp:Summary \ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true \ - /p:UsePartialNGENOptimization=false /maxcpucount \ - /t:RestoreOptData ./build.proj \ + "$__ProjectRoot/dotnet.sh" restore /nologo /verbosity:minimal /clp:Summary /m \ + $OptDataProjectFilePath \ $__CommonMSBuildArgs $__UnprocessedBuildArgs if [ $? != 0 ]; then echo "Failed to restore the optimization data package." @@ -153,13 +152,12 @@ restore_optdata() # Parse the optdata package versions out of msbuild so that we can pass them on to CMake local DotNetCli="$__ProjectRoot/.dotnet/dotnet" if [ ! -f $DotNetCli ]; then - source "$__ProjectRoot/init-tools.sh" + source "$__ProjectRoot/init-dotnet.sh" if [ $? != 0 ]; then - echo "Failed to restore buildtools." + echo "Failed to install dotnet." exit 1 fi fi - local OptDataProjectFilePath="$__ProjectRoot/src/.nuget/optdata/optdata.csproj" __PgoOptDataVersion=$(DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 $DotNetCli msbuild $OptDataProjectFilePath /t:DumpPgoDataPackageVersion /nologo) if [ $? != 0 ]; then echo "Failed to get PGO data package version." @@ -420,9 +418,7 @@ build_CoreLib() fi $__ProjectRoot/dotnet.sh restore /nologo /verbosity:minimal /clp:Summary \ - /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll\;LogFile=binclash.log \ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true \ - /p:UsePartialNGENOptimization=false /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true\ + /p:PortableBuild=true /maxcpucount /p:IncludeRestoreOnlyProjects=true /p:ArcadeBuild=true\ $__ProjectDir/src/build.proj \ /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \ /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \ @@ -434,9 +430,7 @@ build_CoreLib() fi $__ProjectRoot/dotnet.sh msbuild /nologo /verbosity:minimal /clp:Summary \ - /l:BinClashLogger,Tools/Microsoft.DotNet.Build.Tasks.dll\;LogFile=binclash.log \ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true \ - /p:UsePartialNGENOptimization=false /maxcpucount /p:ArcadeBuild=true\ + /p:PortableBuild=true /maxcpucount /p:ArcadeBuild=true\ $__ProjectDir/src/build.proj \ /flp:Verbosity=normal\;LogFile=$__LogsDir/System.Private.CoreLib_$__BuildOS__$__BuildArch__$__BuildType.log \ /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir \ @@ -505,8 +499,7 @@ generate_NugetPackages() # Package build uses the Arcade system and scripts, relying on it to restore required toolsets as part of build $__ProjectRoot/eng/common/build.sh -r -b -projects $__SourceDir/.nuget/packages.builds \ -verbosity minimal -bl:$__LogsDir/Nuget_$__BuildOS__$__BuildArch__$__BuildType.binlog \ - /p:RestoreDefaultOptimizationDataPackage=false /p:PortableBuild=true \ - /p:UsePartialNGENOptimization=false /p:ArcadeBuild=true \ + /p:PortableBuild=true /p:ArcadeBuild=true \ /p:__IntermediatesDir=$__IntermediatesDir /p:__RootBinDir=$__RootBinDir /p:__DoCrossArchBuild=$__CrossBuild \ $__CommonMSBuildArgs $__UnprocessedBuildArgs @@ -1009,10 +1002,7 @@ __MsbuildDebugLogsDir="$__LogsDir/MsbuildDebugLogs" # Set the remaining variables based upon the determined build configuration __BinDir="$__RootBinDir/Product/$__BuildOS.$__BuildArch.$__BuildType" __PackagesBinDir="$__BinDir/.nuget" -__ToolsDir="$__RootBinDir/tools" -__TestWorkingDir="$__RootBinDir/tests/$__BuildOS.$__BuildArch.$__BuildType" export __IntermediatesDir="$__RootBinDir/obj/$__BuildOS.$__BuildArch.$__BuildType" -__TestIntermediatesDir="$__RootBinDir/tests/obj/$__BuildOS.$__BuildArch.$__BuildType" __isMSBuildOnNETCoreSupported=0 __CrossComponentBinDir="$__BinDir" diff --git a/src/coreclr/dir.props b/src/coreclr/dir.props index 50af3a3..d2a63e5 100644 --- a/src/coreclr/dir.props +++ b/src/coreclr/dir.props @@ -2,6 +2,9 @@ + + 8.0 true @@ -12,32 +15,12 @@ Portable - - - false - true - false - true - $(BuildToolsTargetsDesktop) - - coreclr - $(ProjectDir)Tools\ - $(ProjectDir).dotnet\ - $(DotnetCliPath)dotnet - $(ToolsDir)Microsoft.DotNet.Build.Tasks.dll - - $(__TestWorkingDir)\ - $(RootBinDir)tests\$(PlatformConfigPathPart)\ - $(BuildArch) x64 @@ -63,12 +46,6 @@ $(BinDir) - - - - - - diff --git a/src/coreclr/dir.targets b/src/coreclr/dir.targets deleted file mode 100644 index cb944a4..0000000 --- a/src/coreclr/dir.targets +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - - - - - - - - - true - true - true - - - - - - diff --git a/src/coreclr/dotnet.cmd b/src/coreclr/dotnet.cmd index afb3f5a..dc2dd4c 100644 --- a/src/coreclr/dotnet.cmd +++ b/src/coreclr/dotnet.cmd @@ -14,10 +14,10 @@ set DOTNET_MULTILEVEL_LOOKUP=0 :: Disable first run since we do not need all ASP.NET packages restored. set DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 -:: Restore the Tools directory -call %~dp0init-tools.cmd +:: Install dotnet +call %~dp0\init-dotnet.cmd if NOT [%ERRORLEVEL%]==[0] ( - exit /b 1 + exit /b %ERRORLEVEL% ) pushd %~dp0 diff --git a/src/coreclr/dotnet.sh b/src/coreclr/dotnet.sh index 479d6be..82ca63a 100755 --- a/src/coreclr/dotnet.sh +++ b/src/coreclr/dotnet.sh @@ -8,8 +8,8 @@ export DOTNET_MULTILEVEL_LOOKUP=0 # Disable first run since we want to control all package sources export DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 -echo "Running init-tools.sh" -source $working_tree_root/init-tools.sh +echo "Running init-dotnet.sh" +source $working_tree_root/init-dotnet.sh dotnet=$working_tree_root/.dotnet/dotnet diff --git a/src/coreclr/init-dotnet.cmd b/src/coreclr/init-dotnet.cmd new file mode 100644 index 0000000..ad70b4c --- /dev/null +++ b/src/coreclr/init-dotnet.cmd @@ -0,0 +1,13 @@ +@if not defined _echo @echo off +setlocal + +echo Installing dotnet using Arcade... +set PS_DOTNET_INSTALL_SCRIPT=". %~dp0eng\configure-toolset.ps1; . %~dp0eng\common\tools.ps1; InitializeBuildTool" +echo running: powershell -NoProfile -ExecutionPolicy unrestricted -Command %PS_DOTNET_INSTALL_SCRIPT% +powershell -NoProfile -ExecutionPolicy unrestricted -Command %PS_DOTNET_INSTALL_SCRIPT% +if NOT [%ERRORLEVEL%] == [0] ( + echo Failed to install dotnet using Arcade. + exit /b %ERRORLEVEL% +) + +exit /b 0 \ No newline at end of file diff --git a/src/coreclr/init-dotnet.sh b/src/coreclr/init-dotnet.sh new file mode 100644 index 0000000..f7ac32b --- /dev/null +++ b/src/coreclr/init-dotnet.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +__scriptpath=$(cd "$(dirname "$0")"; pwd -P) + +echo "Installing dotnet using Arcade..." + +source $__scriptpath/eng/configure-toolset.sh +source $__scriptpath/eng/common/tools.sh + +InitializeBuildTool + +if [ $? != 0 ]; then + echo "Failed to install dotnet using Arcade" + exit $? +fi diff --git a/src/coreclr/init-tools.cmd b/src/coreclr/init-tools.cmd index 4390b26..32634ec 100644 --- a/src/coreclr/init-tools.cmd +++ b/src/coreclr/init-tools.cmd @@ -71,11 +71,8 @@ echo "init-tools.cmd: Setting arch to %_Arch% for build tools" :ArchSet -echo Installing dotnet cli... -set PS_DOTNET_INSTALL_SCRIPT=". %~dp0eng\configure-toolset.ps1; . %~dp0eng\common\tools.ps1; InitializeBuildTool" if NOT exist "%DOTNET_CMD%" ( - echo running: powershell -NoProfile -ExecutionPolicy unrestricted -Command %PS_DOTNET_INSTALL_SCRIPT% - powershell -NoProfile -ExecutionPolicy unrestricted -Command %PS_DOTNET_INSTALL_SCRIPT% + call %~dp0init-dotnet.cmd if NOT exist "%DOTNET_CMD%" ( echo ERROR: Could not install dotnet cli correctly. 1>&2 goto :error diff --git a/src/coreclr/init-tools.sh b/src/coreclr/init-tools.sh index 6de204a..42bbc09 100755 --- a/src/coreclr/init-tools.sh +++ b/src/coreclr/init-tools.sh @@ -131,11 +131,7 @@ esac __PKG_RID=$__PKG_RID-$__PKG_ARCH if [ ! -e "$__DOTNET_CMD" ]; then - source $__scriptpath/eng/configure-toolset.sh - source $__scriptpath/eng/common/tools.sh - - InitializeBuildTool - + source $__scriptpath/init-dotnet.sh if [ ! -e "$__DOTNET_CMD" ]; then echo "ERROR: Ensure arcade dotnet install did not install dotnet at $__DOTNET_CMD" exit 1 diff --git a/src/coreclr/src/System.Private.CoreLib/GenerateSplitStringResources.targets b/src/coreclr/src/System.Private.CoreLib/GenerateSplitStringResources.targets deleted file mode 100644 index 6041cbe..0000000 --- a/src/coreclr/src/System.Private.CoreLib/GenerateSplitStringResources.targets +++ /dev/null @@ -1,42 +0,0 @@ - - - GenerateSplitStringResources;$(PrepareResourcesDependsOn) - - - - $(BuildToolsTaskDir)Microsoft.DotNet.Build.Tasks.dll - - - - - - - - - - - - - - - - - - - - false - %(Filename) - - - - - - - - - - -- 2.7.4