#!/bin/bash
# See the guide page on more information on required dependencies.
# Validate that a tool is present.
function check_cross_tool {
if ! command -v "$1" >/dev/null 2>/dev/null; then
>&2 echo "missing $1 - Try 'sudo apt install clang-tools-14 lld-14 llvm-dev' or check the guide."
false
fi
}
function fatal_error {
>&2 echo -e "\033[0;31m$1\033[0m"
exit 1
}
function tool {
set -e
local tooldir="$1"
local tool="$2"
[ -h "$tooldir/$tool" ] || fatal_error "$tool is not a symbolic link, check git config core.symlinks"
echo "$tooldir/$tool"
}
function setup_windows_cross {
local mydir="$(dirname -- "${BASH_SOURCE[0]}")"
local myfulldir="$(realpath "$mydir")"
if [[ -x /bin/wslpath ]] && [[ $(wslpath -aw "$myfulldir") != '\\wsl.localhost\'* ]];
then
fatal_error "\033[0;33mWARNING: This script is being run from a Windows partition. This will not work. Please re-clone the repo within WSL2 itself (e.g: somewhere under /home/).\033[0m"
fi
local tooldir="$(realpath "$myfulldir/windows_cross")"
export CC_aarch64_pc_windows_msvc=$(tool "$tooldir" aarch64-clang-cl)
export CARGO_TARGET_AARCH64_PC_WINDOWS_MSVC_LINKER=$(tool "$tooldir" aarch64-lld-link)
export AR_aarch64_pc_windows_msvc=$(tool "$tooldir" aarch64-llvm-lib)
export RC_aarch64_pc_windows_msvc=$(tool "$tooldir" aarch64-llvm-rc)
export DLLTOOL_aarch64_pc_windows_msvc=$(tool "$tooldir" aarch64-llvm-dlltool)
export MIDLRT_aarch64_pc_windows_msvc=$(tool "$tooldir" aarch64-midlrt.exe)
export CC_x86_64_pc_windows_msvc=$(tool "$tooldir" x86_64-clang-cl)
export CARGO_TARGET_X86_64_PC_WINDOWS_MSVC_LINKER=$(tool "$tooldir" x86_64-lld-link)
export AR_x86_64_pc_windows_msvc=$(tool "$tooldir" x86_64-llvm-lib)
export RC_x86_64_pc_windows_msvc=$(tool "$tooldir" x86_64-llvm-rc)
export DLLTOOL_x86_64_pc_windows_msvc=$(tool "$tooldir" x86_64-llvm-dlltool)
export MIDLRT_x86_64_pc_windows_msvc=$(tool "$tooldir" x86_64-midlrt.exe)
export OPENVMM_WINDOWS_CROSS_TOOL="$tooldir/cross_tool.py"
}
# Check if this file was run directly instead of sourced, and fail with a
# warning if so.
(return 0 2>/dev/null) || fatal_error "You must run $0 by sourcing it. Try instead:\n . $0"
setup_windows_crossmicrosoft/openvmm
Publicmirrored fromhttps://github.com/microsoft/openvmmAvailable
build_support/setup_windows_cross.sh
55lines · modepreview