X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=init-tools.sh;h=5ac2b44d7d87a7c663782612b85e891dce114dc5;hb=11f58cb707092055ad8519723b45b72def099300;hp=c13bb982804c2ab259594629d81a587cd1cd68d2;hpb=e1f7ce16a4a8626054bdeb299f922b7f8b192c22;p=platform%2Fupstream%2Fcoreclr.git diff --git a/init-tools.sh b/init-tools.sh index c13bb98..5ac2b44 100755 --- a/init-tools.sh +++ b/init-tools.sh @@ -2,9 +2,9 @@ __scriptpath=$(cd "$(dirname "$0")"; pwd -P) __init_tools_log="$__scriptpath/init-tools.log" -__PACKAGES_DIR="$__scriptpath/packages" +__PACKAGES_DIR="$__scriptpath/.packages" __TOOLRUNTIME_DIR="$__scriptpath/Tools" -__DOTNET_PATH="$__TOOLRUNTIME_DIR/dotnetcli" +__DOTNET_PATH="$__scriptpath/.dotnet" __DOTNET_CMD="$__DOTNET_PATH/dotnet" if [ -z "${__BUILDTOOLS_SOURCE:-}" ]; then __BUILDTOOLS_SOURCE=https://dotnet.myget.org/F/dotnet-buildtools/api/v3/index.json; fi export __BUILDTOOLS_USE_CSPROJ=true @@ -65,99 +65,77 @@ execute_with_retry() { return 0 } -if [ ! -e "$__DOTNET_PATH" ]; then - if [ -z "${__DOTNET_PKG:-}" ]; then - if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then - echo "Warning: build not supported on 32 bit Unix" - fi - - if [ "$(uname -m)" = "armhf" ] || [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then - if [ "$(uname -m)" = "armhf" ]; then - __PKG_ARCH=arm - fi +if [ "$(uname -m | grep "i[3456]86")" = "i686" ]; then + echo "Warning: build not supported on 32 bit Unix" +fi - if [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then - __PKG_ARCH=arm64 - fi - else - __PKG_ARCH=x64 - fi +if [ "$(uname -m)" = "armhf" ] || [ "$(uname -m)" = "arm64" ] || [ "$(uname -m)" = "aarch64" ]; then + if [ "$(uname -m)" = "armhf" ]; then + __PKG_ARCH=arm + fi - OSName=$(uname -s) - case $OSName in - Darwin) - OS=OSX - __PKG_RID=osx - ulimit -n 2048 - # Format x.y.z as single integer with three digits for each part - VERSION=`sw_vers -productVersion| sed -e 's/\./ /g' | xargs printf "%03d%03d%03d"` - if [ "$VERSION" -lt 010012000 ]; then - echo error: macOS version `sw_vers -productVersion` is too old. 10.12 is needed as minimum. - exit 1 - fi - ;; - FreeBSD) - __PKG_RID=freebsd - OS=FreeBSD - ;; - Linux) - __PKG_RID=linux - OS=Linux - - if [ -e /etc/os-release ]; then - source /etc/os-release - if [[ $ID == "alpine" ]]; then - __PKG_RID=linux-musl - fi - elif [ -e /etc/redhat-release ]; then - redhatRelease=$( /dev/null; then - curl --retry 10 -sSL --create-dirs -o $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} - else - wget -q -O $__DOTNET_PATH/dotnet.tar ${__DOTNET_LOCATION} +else + __PKG_ARCH=x64 +fi + +OSName=$(uname -s) +case $OSName in + Darwin) + OS=OSX + __PKG_RID=osx + ulimit -n 2048 + # Format x.y.z as single integer with three digits for each part + VERSION=`sw_vers -productVersion| sed -e 's/\./ /g' | xargs printf "%03d%03d%03d"` + if [ "$VERSION" -lt 010012000 ]; then + echo error: macOS version `sw_vers -productVersion` is too old. 10.12 is needed as minimum. + exit 1 + fi + ;; + FreeBSD) + __PKG_RID=freebsd + OS=FreeBSD + ;; + Linux) + __PKG_RID=linux + OS=Linux + + if [ -e /etc/os-release ]; then + source /etc/os-release + if [[ $ID == "alpine" ]]; then + __PKG_RID=linux-musl fi - else - echo "Copying '$DotNetBootstrapCliTarPath' to '$__DOTNET_PATH/dotnet.tar'" - cp $DotNetBootstrapCliTarPath $__DOTNET_PATH/dotnet.tar + elif [ -e /etc/redhat-release ]; then + redhatRelease=$(> "$__init_tools_log" 2>&1 - cd "$__scriptpath" + ;; + + *) + echo "Unsupported OS '$OSName' detected. Downloading linux-$__PKG_ARCH tools." + OS=Linux + __PKG_RID=linux + ;; +esac +__PKG_RID=$__PKG_RID-$__PKG_ARCH + +if [ ! -e "$__DOTNET_CMD" ]; then + 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 + fi fi if [ ! -e "$__BUILD_TOOLS_PATH" ]; then @@ -175,15 +153,8 @@ if [ -z "${__ILASM_RID-}" ]; then fi echo "Using RID $__ILASM_RID for BuildTools native tools" - -export ILASMCOMPILER_VERSION=$__ILASM_VERSION export NATIVE_TOOLS_RID=$__ILASM_RID -if [ -n "${DotNetBootstrapCliTarPath-}" ]; then - # Assume ilasm is not in nuget yet when bootstrapping... - unset ILASMCOMPILER_VERSION -fi - # Build tools only supported on x64 if [ "${__PKG_ARCH}" != "x64" ] && [ "${__PKG_ARCH}" != "arm" ]; then echo "Skipped installing build tools." @@ -200,6 +171,14 @@ else exit 1 fi + + if [ ! -n "${DotNetBootstrapCliTarPath-}" ]; then + # Assume ilasm is not in nuget yet when bootstrapping... + # ILasm/ILDasm used to be restored by buildtools. The reference there was a netocreapp2.0, which was prior to our support of linux-musl. We initialize it locally as a 3.0 with the new SDK. + echo "Running: eval $__DOTNET_CMD build ${__scriptpath}/tests/ilasm-restore/ilasm.depproj --no-cache --packages $__PACKAGES_DIR -r $NATIVE_TOOLS_RID -p:ILAsmPackageVersion=$__ILASM_VERSION -p:ExpectedILAsmPath=$__TOOLRUNTIME_DIR/ilasm" >> "$__init_tools_log" + eval "$__DOTNET_CMD" build "${__scriptpath}/tests/ilasm-restore/ilasm.depproj" --no-cache --packages "$__PACKAGES_DIR" -r "$NATIVE_TOOLS_RID" -p:ILAsmPackageVersion="$__ILASM_VERSION" -p:ExpectedILAsmPath="$__TOOLRUNTIME_DIR/ilasm" + fi + echo "Making all .sh files executable under Tools." # Executables restored with .NET Core 2.0 do not have executable permission flags. https://github.com/NuGet/Home/issues/4424 ls "$__scriptpath/Tools/"*.sh | xargs chmod +x