68 lines
2.1 KiB
Bash
Executable File
68 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
ESP_CLANG_VERSION="19.1.2_20250905-3"
|
|
BASE_URL="https://github.com/goplus/espressif-llvm-project-prebuilt/releases/download/${ESP_CLANG_VERSION}"
|
|
|
|
get_esp_clang_platform() {
|
|
local platform="$1"
|
|
local os="${platform%-*}"
|
|
local arch="${platform##*-}"
|
|
|
|
case "${os}" in
|
|
"darwin")
|
|
case "${arch}" in
|
|
"amd64") echo "x86_64-apple-darwin" ;;
|
|
"arm64") echo "aarch64-apple-darwin" ;;
|
|
*) echo "Error: Unsupported darwin architecture: ${arch}" >&2; exit 1 ;;
|
|
esac
|
|
;;
|
|
"linux")
|
|
case "${arch}" in
|
|
"amd64") echo "x86_64-linux-gnu" ;;
|
|
"arm64") echo "aarch64-linux-gnu" ;;
|
|
*) echo "Error: Unsupported linux architecture: ${arch}" >&2; exit 1 ;;
|
|
esac
|
|
;;
|
|
*)
|
|
echo "Error: Unsupported OS: ${os}" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
}
|
|
|
|
get_filename() {
|
|
local platform="$1"
|
|
local platform_suffix=$(get_esp_clang_platform "${platform}")
|
|
echo "clang-esp-${ESP_CLANG_VERSION}-${platform_suffix}.tar.xz"
|
|
}
|
|
|
|
download_and_extract() {
|
|
local platform="$1"
|
|
local os="${platform%-*}"
|
|
local arch="${platform##*-}"
|
|
local filename=$(get_filename "${platform}")
|
|
local download_url="${BASE_URL}/${filename}"
|
|
|
|
echo "Downloading ESP Clang for ${platform}..."
|
|
echo " URL: ${download_url}"
|
|
|
|
mkdir -p ".sysroot/${os}/${arch}/crosscompile/clang"
|
|
curl -fsSL "${download_url}" | tar -xJ -C ".sysroot/${os}/${arch}/crosscompile/clang" --strip-components=1
|
|
|
|
if [[ ! -f ".sysroot/${os}/${arch}/crosscompile/clang/bin/clang++" ]]; then
|
|
echo "Error: clang++ not found in ${platform} toolchain"
|
|
exit 1
|
|
fi
|
|
|
|
echo "${platform} ESP Clang ready in .sysroot/${os}/${arch}/crosscompile/clang"
|
|
}
|
|
|
|
echo "Downloading ESP Clang toolchain version ${ESP_CLANG_VERSION}..."
|
|
|
|
for platform in "darwin-amd64" "darwin-arm64" "linux-amd64" "linux-arm64"; do
|
|
download_and_extract "${platform}"
|
|
done
|
|
|
|
echo "ESP Clang toolchain completed successfully!"
|