install with esp-clang & new cache key
This commit is contained in:
67
.github/workflows/download_esp_clang.sh
vendored
Executable file
67
.github/workflows/download_esp_clang.sh
vendored
Executable file
@@ -0,0 +1,67 @@
|
||||
#!/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!"
|
||||
Reference in New Issue
Block a user