blob: d8d46aee15df38392cb23ee6f40bdf73d6ef88f0 [file] [log] [blame] [edit]
# Copyright (c) 2025, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
# Shared functions for both precompiler2 and dart_precompiled_runtime2.
function host_arch() {
# Use uname to determine the host architecture.
case `uname -m` in
x86_64)
echo "X64"
;;
aarch64 | arm64 | armv8*)
echo "ARM64"
;;
arm | arm7*)
echo "ARM"
;;
*)
echo "Unknown host architecture" `uname -m` >&2
exit 1
;;
esac
}
function parse_target_arch() {
case "$1" in
*X64 | \
*X64C)
echo "X64"
;;
*ARM64 | \
*ARM64C)
echo "ARM64"
;;
*ARM)
echo "ARM"
;;
*IA32)
echo "IA32"
;;
*RISCV32)
echo "RISCV32"
;;
*RISCV64)
echo "RISCV64"
;;
*)
echo "Cannot deduce target architecture from $1" >&2
exit 1
;;
esac
}
function is_cross_compiled() {
local host_arch="$1"
local target_arch="$2"
[[ ("$host_arch" != "ARM64" || "$target_arch" != "ARM") && \
("$host_arch" != "$target_arch") ]]
}