xamarin-macios/dotnet/build-custom-runtime.sh

37 строки
1.6 KiB
Bash
Executable File

#!/bin/bash -eu
TOP=$(git rev-parse --show-toplevel)
COLOR_GRAY=$(tput setaf 250 2>/dev/null)
COLOR_RED=$(tput setaf 1 2>/dev/null)
COLOR_CLEAR=$(tput sgr0 2>/dev/null)
if test -z "$TOP"; then
echo "${COLOR_RED}Could not find the top-level xamarin-macios directory.${COLOR_CLEAR}"
exit 1
fi
cd "$TOP"
if ! test -f configure.inc; then
echo "${COLOR_RED}You must execute ${COLOR_GRAY}./configure --custom-dotnet=/path/to/dotnet/runtime${COLOR_RED} first.${COLOR_CLEAR}"
exit 1
fi
DOTNET_RUNTIME_PATH=$(grep ^DOTNET_RUNTIME_PATH= configure.inc | sed 's/.*=//')
if test -z "$DOTNET_RUNTIME_PATH"; then
echo "${COLOR_RED}You must execute ${COLOR_GRAY}./configure --custom-dotnet=/path/to/dotnet/runtime${COLOR_RED} first.${COLOR_CLEAR}"
exit 1
elif ! test -d "$DOTNET_RUNTIME_PATH"; then
echo "${COLOR_RED}The specified dotnet/runtime path (${COLOR_GRAY}$DOTNET_PATH${COLOR_RED}) does not exist.${COLOR_CLEAR}"
exit 1
fi
cd "$DOTNET_RUNTIME_PATH"
# use 'arch -x86_64' because the build doesn't work on Apple Silicon with ARM64.
use_installed_dotnet_cli=false arch -x86_64 ./build.sh clr+libs+host+packs+mono -configuration release -arch arm64 -cross /p:UseCrossGen2=false
use_installed_dotnet_cli=false arch -x86_64 ./build.sh libs+host+packs+mono -configuration release -arch arm64 -cross /p:UseCrossGen2=false
use_installed_dotnet_cli=false arch -x86_64 ./build.sh clr+libs+host+packs+mono -configuration release -arch x86_64 -cross /p:UseCrossGen2=false
use_installed_dotnet_cli=false arch -x86_64 ./build.sh libs+host+packs+mono -configuration release -arch x86_64 -cross /p:UseCrossGen2=false