Imported Upstream version 5.4.0.167

Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-08-21 15:34:15 +00:00
parent e49d6f06c0
commit 536cd135cc
12856 changed files with 563812 additions and 223249 deletions

View File

@@ -21,7 +21,6 @@ prepare_managed_build()
ls "$__dotnetclipath/sdk"
}
build_managed_corert()
{
__buildproj=$__ProjectRoot/build.proj
@@ -50,6 +49,57 @@ build_managed_corert()
fi
}
# TODO It's a temporary decision because of there are no armel tizen nuget packages getting published today
get_official_cross_builds()
{
if [ $__CrossBuild == 1 ]; then
__corefxsite="https://ci.dot.net/job/dotnet_corefx/job/master/view/Official%20Builds/job/"
__coreclrsite="https://ci.dot.net/job/dotnet_coreclr/job/master/view/Official%20Builds/job/"
__corefxsource=
__coreclrsource=
__buildtype=
if [ $__BuildType = "Debug" ]; then
__buildtype="debug"
else
__buildtype="release"
fi
case $__BuildArch in
arm)
;;
arm64)
;;
armel)
ID=
if [ -e $ROOTFS_DIR/etc/os-release ]; then
source $ROOTFS_DIR/etc/os-release
fi
if [ "$ID" = "tizen" ]; then
__corefxsource="tizen_armel_cross_${__buildtype}/lastSuccessfulBuild/artifact/bin/build.tar.gz"
__coreclrsource="armel_cross_${__buildtype}_tizen/lastSuccessfulBuild/artifact/bin/Product/Linux.armel.${__BuildType}/libSystem.Globalization.Native.a"
fi
;;
esac
if [ -n "${__corefxsource}" ]; then
wget "${__corefxsite}${__corefxsource}"
export BUILDERRORLEVEL=$?
if [ $BUILDERRORLEVEL != 0 ]; then
exit $BUILDERRORLEVEL
fi
tar xvf ./build.tar.gz ./System.Native.a
mv ./System.Native.a $__ProjectRoot/bin/Product/Linux.${__BuildArch}.${__BuildType}/packaging/publish1/framework
rm -rf ./build.tar.gz
fi
if [ -n ${__coreclrsource} ]; then
wget "${__coreclrsite}${__coreclrsource}"
export BUILDERRORLEVEL=$?
if [ $BUILDERRORLEVEL != 0 ]; then
exit $BUILDERRORLEVEL
fi
mv ./libSystem.Globalization.Native.a $__ProjectRoot/bin/Product/Linux.${__BuildArch}.${__BuildType}/packaging/publish1/framework
fi
fi
}
if $__buildmanaged; then
@@ -61,5 +111,9 @@ if $__buildmanaged; then
build_managed_corert
# Get cross builds from official sites
get_official_cross_builds
# Build complete
fi

View File

@@ -106,6 +106,25 @@ initTargetDistroRid()
fi
}
build_host_native_corert()
{
__SavedBuildArch=$__BuildArch
__SavedIntermediatesDir=$__IntermediatesDir
export __IntermediatesDir=$__IntermediatesHostDir
export __BuildArch=$__HostArch
export __CMakeBinDir="$__ProductHostBinDir"
export CROSSCOMPILE=
build_native_corert
cp ${__ProductHostBinDir}/jitinterface.so ${__ProductBinDir}
cp ${__ProductHostBinDir}/jitinterface.so ${__ProductBinDir}/packaging/publish1
export __BuildArch=$__SavedBuildArch
export __IntermediatesDir=$__SavedIntermediatesDir
export CROSSCOMPILE=1
}
if $__buildnative; then
@@ -127,6 +146,10 @@ if $__buildnative; then
build_native_corert
if [ $__CrossBuild = 1 ]; then
build_host_native_corert
fi
# Build complete
fi

View File

@@ -5,6 +5,7 @@ set __BuildOS=Windows_NT
:: Default to highest Visual Studio version available
set __VSVersion=vs2015
if defined VS150COMNTOOLS set __VSVersion=vs2017
:: Set the various build properties here so that CMake and MSBuild can pick them up
set "__ProjectDir=%~dp0.."
@@ -37,6 +38,7 @@ if /i "%1" == "debug" (set __BuildType=Debug&shift&goto Arg_Loop)
if /i "%1" == "release" (set __BuildType=Release&shift&goto Arg_Loop)
if /i "%1" == "vs2017" (set __VSVersion=vs2017&shift&goto Arg_Loop)
if /i "%1" == "vs2015" (set __VSVersion=vs2015&shift&goto Arg_Loop)
if /i "%1" == "clean" (set __CleanBuild=1&shift&goto Arg_Loop)
@@ -110,14 +112,16 @@ if /i "%__VSVersion%" == "vs2017" set __VSProductVersion=150
:: Check presence of VS
if defined VS%__VSProductVersion%COMNTOOLS goto CheckVSExistence
echo Visual Studio 2015 (Community is free) is a pre-requisite to build this repository.
echo Visual Studio 2015 or 2017 (Community is free) is a pre-requisite to build this repository.
echo If you're using Visual Studio 2017, make sure to run build.cmd from the "Developer Command Prompt
echo for VS 2017" (find it in the Start menu).
echo See: https://github.com/dotnet/corert/blob/master/Documentation/prerequisites-for-building.md
exit /b 1
:CheckVSExistence
:: Does VS VS 2015 really exist?
if exist "!VS%__VSProductVersion%COMNTOOLS!\..\IDE\devenv.exe" goto CheckMSBuild
echo Visual Studio 2015 (Community is free) is a pre-requisite to build this repository.
echo Visual Studio not installed in !VS%__VSProductVersion%COMNTOOLS!.
echo See: https://github.com/dotnet/corert/blob/master/Documentation/prerequisites-for-building.md
exit /b 1
@@ -167,7 +171,7 @@ echo.
echo./? -? /h -h /help -help: view this message.
echo Build architecture: one of x64, x86, arm ^(default: x64^).
echo Build type: one of Debug, Checked, Release ^(default: Debug^).
echo Visual Studio version: ^(default: VS2015, VS2017 also supported^).
echo Visual Studio version: vs2015, vs2017 ^(defaults to highest detected^).
echo clean: force a clean build ^(default is to perform an incremental build^).
echo skiptests: skip building tests ^(default: tests are built^).
exit /b 1

View File

@@ -23,6 +23,10 @@ setup_dirs()
mkdir -p "$__ProductBinDir"
mkdir -p "$__IntermediatesDir"
if [ $__CrossBuild = 1 ]; then
mkdir -p "$__ProductHostBinDir"
mkdir -p "$__IntermediatesHostDir"
fi
}
# Performs "clean build" type actions (deleting and remaking directories)
@@ -32,6 +36,10 @@ clean()
echo "Cleaning previous output for the selected configuration"
rm -rf "$__ProductBinDir"
rm -rf "$__IntermediatesDir"
if [ $__CrossBuild = 1 ]; then
rm -rf "$__ProductHostBinDir"
rm -rf "$__IntermediatesHostDir"
fi
}
@@ -107,6 +115,7 @@ case $CPUName in
export __BuildArch=x64
;;
esac
export __HostArch=$__BuildArch
# Use uname to determine what the OS is.
export OSName=$(uname -s)
@@ -241,7 +250,13 @@ fi
# Set the remaining variables based upon the determined build configuration
export __IntermediatesDir="$__rootbinpath/obj/Native/$__BuildOS.$__BuildArch.$__BuildType"
if [ $__CrossBuild = 1 ]; then
export __IntermediatesHostDir="$__rootbinpath/obj/Native/$__BuildOS.$__HostArch.$__BuildType"
fi
export __ProductBinDir="$__rootbinpath/Product/$__BuildOS.$__BuildArch.$__BuildType"
if [ $__CrossBuild = 1 ]; then
export __ProductHostBinDir="$__rootbinpath/Product/$__BuildOS.$__HostArch.$__BuildType"
fi
export __RelativeProductBinDir="bin/Product/$__BuildOS.$__BuildArch.$__BuildType"
# CI_SPECIFIC - On CI machines, $HOME may not be set. In such a case, create a subfolder and set the variable to set.