mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-07-02 13:01:27 +12:00
Some checks failed
Build RPCS3 / RPCS3 Linux ubuntu-24.04-arm clang (push) Waiting to run
Build RPCS3 / RPCS3 Mac Intel (push) Waiting to run
Build RPCS3 / RPCS3 Mac Apple Silicon (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Generate Translation Template / Generate Translation Template (push) Failing after 34s
Build RPCS3 / RPCS3 Linux ubuntu-24.04 gcc (push) Has been skipped
Build RPCS3 / RPCS3 Linux ubuntu-24.04 clang (push) Has been skipped
Build RPCS3 / RPCS3 FreeBSD (push) Has been skipped
63 lines
2 KiB
Bash
63 lines
2 KiB
Bash
#!/bin/sh -ex
|
|
|
|
# Resource/dependency URLs
|
|
CCACHE_URL="https://github.com/ccache/ccache/releases/download/v4.11.2/ccache-4.11.2-windows-x86_64.zip"
|
|
|
|
DEP_URLS=" \
|
|
$CCACHE_URL"
|
|
|
|
# CI doesn't make a cache dir if it doesn't exist, so we do it manually
|
|
[ -d "$DEPS_CACHE_DIR" ] || mkdir "$DEPS_CACHE_DIR"
|
|
|
|
# Pull the llvm submodule
|
|
# shellcheck disable=SC2046
|
|
git submodule -q update --init --depth=1 -- 3rdparty/llvm
|
|
|
|
# Git bash doesn't have rev, so here it is
|
|
rev()
|
|
{
|
|
echo "$1" | awk '{ for(i = length($0); i != 0; --i) { a = a substr($0, i, 1); } } END { print a }'
|
|
}
|
|
|
|
# Usage: download_and_verify url checksum algo file
|
|
# Check to see if a file is already cached, and the checksum matches. If not, download it.
|
|
# Tries up to 3 times
|
|
download_and_verify()
|
|
{
|
|
url="$1"
|
|
correctChecksum="$2"
|
|
algo="$3"
|
|
fileName="$4"
|
|
|
|
for _ in 1 2 3; do
|
|
[ -e "$DEPS_CACHE_DIR/$fileName" ] || curl -fLo "$DEPS_CACHE_DIR/$fileName" "$url"
|
|
fileChecksum=$("${algo}sum" "$DEPS_CACHE_DIR/$fileName" | awk '{ print $1 }')
|
|
[ "$fileChecksum" = "$correctChecksum" ] && return 0
|
|
done
|
|
|
|
return 1;
|
|
}
|
|
|
|
# Some dependencies install here
|
|
[ -d "./build/lib_ext/Release-x64" ] || mkdir -p "./build/lib_ext/Release-x64"
|
|
|
|
for url in $DEP_URLS; do
|
|
# Get the filename from the URL and remove query strings (?arg=something).
|
|
fileName="$(rev "$(rev "$url" | cut -d'/' -f1)" | cut -d'?' -f1)"
|
|
[ -z "$fileName" ] && echo "Unable to parse url: $url" && exit 1
|
|
|
|
# shellcheck disable=SC1003
|
|
case "$url" in
|
|
*ccache*) checksum=$CCACHE_SHA; algo="sha256"; outDir="$CCACHE_BIN_DIR" ;;
|
|
*) echo "Unknown url resource: $url"; exit 1 ;;
|
|
esac
|
|
|
|
download_and_verify "$url" "$checksum" "$algo" "$fileName"
|
|
7z x -y "$DEPS_CACHE_DIR/$fileName" -aos -o"$outDir"
|
|
done
|
|
|
|
# Setup ccache tool
|
|
[ -d "$CCACHE_DIR" ] || mkdir -p "$(cygpath -u "$CCACHE_DIR")"
|
|
CCACHE_SH_DIR=$(cygpath -u "$CCACHE_BIN_DIR")
|
|
mv "$CCACHE_SH_DIR"/ccache-*/* "$CCACHE_SH_DIR"
|
|
cp "$CCACHE_SH_DIR"/ccache.exe "$CCACHE_SH_DIR"/cl.exe
|