summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.cmd45
-rwxr-xr-xbuild.sh22
-rw-r--r--init-dotnet.sh6
-rw-r--r--src/.nuget/optdata/ibcmerge.csproj18
-rw-r--r--src/.nuget/optdata/optdata.csproj37
5 files changed, 107 insertions, 21 deletions
diff --git a/build.cmd b/build.cmd
index 1e2030c124..2fafcedde2 100644
--- a/build.cmd
+++ b/build.cmd
@@ -389,14 +389,37 @@ if %__RestoreOptData% EQU 1 (
)
)
+set PgoDataPackageVersionOutputFile="%__IntermediatesDir%\optdataversion.txt"
+set IbcDataPackageVersionOutputFile="%__IntermediatesDir%\ibcoptdataversion.txt"
+
REM Parse the optdata package versions out of msbuild so that we can pass them on to CMake
-for /f "tokens=*" %%s in ('call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpPgoDataPackageVersion /nologo') do (
- set __PgoOptDataVersion=%%s
+call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpPgoDataPackageVersion /nologo %__CommonMSBuildArgs% /p:PgoDataPackageVersionOutputFile=%PgoDataPackageVersionOutputFile%
+
+ if not !errorlevel! == 0 (
+ echo "Failed to get PGO data package version."
+ exit /b !errorlevel!
+)
+if not exist "%PgoDataPackageVersionOutputFile%" (
+ echo "Failed to get PGO data package version."
+ exit /b 1
)
-for /f "tokens=*" %%s in ('call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpIbcDataPackageVersion /nologo') do (
- set __IbcOptDataVersion=%%s
+
+set /p __PgoOptDataVersion=<"%PgoDataPackageVersionOutputFile%"
+
+call "%__ProjectDir%\dotnet.cmd" msbuild "%OptDataProjectFilePath%" /t:DumpIbcDataPackageVersion /nologo %__CommonMSBuildArgs% /p:IbcDataPackageVersionOutputFile=%IbcDataPackageVersionOutputFile%
+
+ if not !errorlevel! == 0 (
+ echo "Failed to get IBC data package version."
+ exit /b !errorlevel!
)
+if not exist "%IbcDataPackageVersionOutputFile%" (
+ echo "Failed to get IBC data package version."
+ exit /b 1
+)
+
+set /p __IbcOptDataVersion=<"%IbcDataPackageVersionOutputFile%"
+
REM =========================================================================================
REM ===
REM === Generate source files for eventing
@@ -634,9 +657,19 @@ if %__BuildCoreLib% EQU 1 (
if %__IbcOptimize% EQU 1 (
echo %__MsgPrefix%Commencing IBCMerge of System.Private.CoreLib for %__BuildOS%.%__BuildArch%.%__BuildType%
set IbcMergeProjectFilePath=%__ProjectDir%\src\.nuget\optdata\ibcmerge.csproj
- for /f "tokens=*" %%s in ('call "%__ProjectDir%\dotnet.cmd" msbuild "!IbcMergeProjectFilePath!" /t:DumpIbcMergePackageVersion /nologo') do @(
- set __IbcMergeVersion=%%s
+ set IbcMergePackageVersionOutputFile="%__IntermediatesDir%\ibcmergeversion.txt"
+ call "%__ProjectDir%\dotnet.cmd" msbuild "!IbcMergeProjectFilePath!" /t:DumpIbcMergePackageVersion /nologo %__CommonMSBuildArgs% /p:IbcMergePackageVersionOutputFile=%IbcMergePackageVersionOutputFile%
+
+ if not !errorlevel! == 0 (
+ echo "Failed to determine IBC Merge version."
+ exit /b !errorlevel!
+ )
+ if not exist "%IbcMergePackageVersionOutputFile%" (
+ echo "Failed to determine IBC Merge version."
+ exit /b 1
)
+
+ set /p __IbcMergeVersion=<"%IbcMergePackageVersionOutputFile%"
set IbcMergePath=%__PackagesDir%\microsoft.dotnet.ibcmerge\!__IbcMergeVersion!\tools\netcoreapp2.0\ibcmerge.dll
if exist !IbcMergePath! (
diff --git a/build.sh b/build.sh
index 25caf6a122..8952ab9850 100755
--- a/build.sh
+++ b/build.sh
@@ -151,22 +151,26 @@ restore_optdata()
if [ $__isMSBuildOnNETCoreSupported == 1 ]; then
# Parse the optdata package versions out of msbuild so that we can pass them on to CMake
- # Init dotnet
- source "${__ProjectRoot}/init-dotnet.sh"
- local DotNetCli=${_InitializeDotNetCli}/dotnet
+ local PgoDataPackageVersionOutputFile="${__IntermediatesDir}/optdataversion.txt"
+ local IbcDataPackageVersionOutputFile="${__IntermediatesDir}/ibcoptdataversion.txt"
- __PgoOptDataVersion=$(DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 $DotNetCli msbuild $OptDataProjectFilePath /t:DumpPgoDataPackageVersion /nologo)
- if [ $? != 0 ]; then
+ # Writes into ${PgoDataPackageVersionOutputFile}
+ ${__ProjectDir}/dotnet.sh msbuild $OptDataProjectFilePath /t:DumpPgoDataPackageVersion ${__CommonMSBuildArgs} /p:PgoDataPackageVersionOutputFile=${PgoDataPackageVersionOutputFile} /nologo 2>&1 > /dev/null
+ if [ $? != 0 ] || [ ! -f "${PgoDataPackageVersionOutputFile}" ]; then
echo "Failed to get PGO data package version."
exit $?
fi
- __PgoOptDataVersion=$(echo $__PgoOptDataVersion | sed 's/^\s*//')
- __IbcOptDataVersion=$(DOTNET_SKIP_FIRST_TIME_EXPERIENCE=1 $DotNetCli msbuild $OptDataProjectFilePath /t:DumpIbcDataPackageVersion /nologo)
- if [ $? != 0 ]; then
+
+ __PgoOptDataVersion=$(<"${PgoDataPackageVersionOutputFile}")
+
+ # Writes into ${IbcDataPackageVersionOutputFile}
+ ${__ProjectDir}/dotnet.sh msbuild $OptDataProjectFilePath /t:DumpIbcDataPackageVersion ${__CommonMSBuildArgs} /p:IbcDataPackageVersionOutputFile=${IbcDataPackageVersionOutputFile} /nologo 2>&1 > /dev/null
+ if [ $? != 0 ] || [ ! -f "${IbcDataPackageVersionOutputFile}" ]; then
echo "Failed to get IBC data package version."
exit $?
fi
- __IbcOptDataVersion=$(echo $__IbcOptDataVersion | sed 's/^[[:blank:]]*//')
+
+ __IbcOptDataVersion=$(<"${IbcDataPackageVersionOutputFile}")
fi
}
diff --git a/init-dotnet.sh b/init-dotnet.sh
index b446260af5..36b74232f2 100644
--- a/init-dotnet.sh
+++ b/init-dotnet.sh
@@ -1,11 +1,11 @@
#!/usr/bin/env bash
-__scriptpath=$(cd "$(dirname "$0")"; pwd -P)
+__scriptpath="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "Installing dotnet using Arcade..."
-source $__scriptpath/eng/configure-toolset.sh
-source $__scriptpath/eng/common/tools.sh
+source ${__scriptpath}/eng/configure-toolset.sh
+source ${__scriptpath}/eng/common/tools.sh
InitializeBuildTool
diff --git a/src/.nuget/optdata/ibcmerge.csproj b/src/.nuget/optdata/ibcmerge.csproj
index 9dae43fd14..d8dd2a461c 100644
--- a/src/.nuget/optdata/ibcmerge.csproj
+++ b/src/.nuget/optdata/ibcmerge.csproj
@@ -9,8 +9,24 @@
<PackageReference Include="microsoft.dotnet.ibcmerge" Version="[$(IbcMergePackageVersion)]" Condition="'$(IbcMergePackageVersion)'!=''" />
</ItemGroup>
+ <!-- -->
+ <!-- Task: DumpIbcMergePackageVersion -->
+ <!-- -->
+ <!-- Notes: -->
+ <!-- -->
+ <!-- DumpIbcMergePackageVersion is used by build.sh and build.cmd to pass -->
+ <!-- the version information to cmake. The task will write a file to be -->
+ <!-- read back by build.cmd/sh. The path for the file is: -->
+ <!-- $(IbcMergePackageVersionOutputFile) -->
+ <!-- -->
<Target Name="DumpIbcMergePackageVersion">
- <Message Importance="high" Text="$(IbcMergePackageVersion)" />
+ <!-- Error if PgoDataPackageVersionOutputFile is not set. -->
+ <Error Condition="'$(IbcMergePackageVersionOutputFile)'==''" Text="IbcMergePackageVersionOutputFile must be passed as a property." />
+
+ <!-- Cleanup old version file -->
+ <Delete Files="$(IbcMergePackageVersionOutputFile)" Condition="Exists('$(IbcMergePackageVersionOutputFile)')" />
+ <WriteLinesToFile File="$(IbcMergePackageVersionOutputFile)" Lines="$(optimizationIBCCoreCLRVersion)" Overwrite="true"/>
+ <Message Text="IbcMergePackageVersion: $(IbcMergePackageVersion) written to: $(IbcMergePackageVersionOutputFile)" Importance="High" />
</Target>
<PropertyGroup>
diff --git a/src/.nuget/optdata/optdata.csproj b/src/.nuget/optdata/optdata.csproj
index 62d975fe6f..3d842a5ab0 100644
--- a/src/.nuget/optdata/optdata.csproj
+++ b/src/.nuget/optdata/optdata.csproj
@@ -18,12 +18,45 @@
</RestoreSources>
</PropertyGroup>
+ <!-- -->
+ <!-- Task: DumpPgoDataPackageVersion -->
+ <!-- -->
+ <!-- Notes: -->
+ <!-- -->
+ <!-- DumpPgoDataPackageVersion is used by build.sh and build.cmd to pass -->
+ <!-- the version information to cmake. The task will write a file to be -->
+ <!-- read back by build.cmd/sh. The path for the file is: -->
+ <!-- $(PgoDataPackageVersionOutputFile) -->
+ <!-- -->
+
<Target Name="DumpPgoDataPackageVersion">
- <Message Importance="high" Text="$(optimizationPGOCoreCLRVersion)" />
+ <!-- Error if PgoDataPackageVersionOutputFile is not set. -->
+ <Error Condition="'$(PgoDataPackageVersionOutputFile)'==''" Text="PgoDataPackageVersionOutputFile must be passed as a property." />
+
+ <!-- Cleanup old version file -->
+ <Delete Files="$(PgoDataPackageVersionOutputFile)" Condition="Exists('$(PgoDataPackageVersionOutputFile)')" />
+ <WriteLinesToFile File="$(PgoDataPackageVersionOutputFile)" Lines="$(optimizationPGOCoreCLRVersion)" Overwrite="true"/>
+ <Message Text="optimizationPGOCoreCLRVersion: $(optimizationPGOCoreCLRVersion) written to: $(PgoDataPackageVersionOutputFile)" Importance="High" />
</Target>
+ <!-- -->
+ <!-- Task: DumpIbcDataPackageVersion -->
+ <!-- -->
+ <!-- Notes: -->
+ <!-- -->
+ <!-- DumpIbcDataPackageVersion is used by build.sh and build.cmd to pass -->
+ <!-- the version information to cmake. The task will write a file to be -->
+ <!-- read back by build.cmd/sh. The path for the file is: -->
+ <!-- $(IbcDataPackageVersionOutputFile) -->
+ <!-- -->
<Target Name="DumpIbcDataPackageVersion">
- <Message Importance="high" Text="$(optimizationIBCCoreCLRVersion)" />
+ <!-- Error if PgoDataPackageVersionOutputFile is not set. -->
+ <Error Condition="'$(IbcDataPackageVersionOutputFile)'==''" Text="IbcDataPackageVersionOutputFile must be passed as a property." />
+
+ <!-- Cleanup old version file -->
+ <Delete Files="$(IbcDataPackageVersionOutputFile)" Condition="Exists('$(IbcDataPackageVersionOutputFile)')" />
+ <WriteLinesToFile File="$(IbcDataPackageVersionOutputFile)" Lines="$(optimizationIBCCoreCLRVersion)" Overwrite="true"/>
+ <Message Text="optimizationIBCCoreCLRVersion: $(optimizationIBCCoreCLRVersion) written to: $(IbcDataPackageVersionOutputFile)" Importance="High" />
</Target>
</Project>