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