mirror of
https://github.com/RPCS3/rpcs3.git
synced 2025-12-16 04:09:07 +00:00
Some checks are pending
Generate Translation Template / Generate Translation Template (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (/rpcs3/.ci/build-linux.sh, gcc, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (a1d35836e8d45bfc6f63c26f0a3e5d46ef622fe1, rpcs3/rpcs3-binaries-linux-arm64, /rpcs3/.ci/build-linux-aarch64.sh, clang, rpcs3/rpcs3-ci-jammy-aarch64:1.6, ubuntu-24.04-arm) (push) Waiting to run
Build RPCS3 / RPCS3 Linux ${{ matrix.os }} ${{ matrix.compiler }} (d812f1254a1157c80fd402f94446310560f54e5f, rpcs3/rpcs3-binaries-linux, /rpcs3/.ci/build-linux.sh, clang, rpcs3/rpcs3-ci-jammy:1.6, ubuntu-24.04) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (51ae32f468089a8169aaf1567de355ff4a3e0842, rpcs3/rpcs3-binaries-mac, arch -X86_64 .ci/build-mac.sh, Intel) (push) Waiting to run
Build RPCS3 / RPCS3 Mac ${{ matrix.name }} (8e21bdbc40711a3fccd18fbf17b742348b0f4281, rpcs3/rpcs3-binaries-mac-arm64, .ci/build-mac-arm64.sh, Apple Silicon) (push) Waiting to run
Build RPCS3 / RPCS3 Windows (push) Waiting to run
Build RPCS3 / RPCS3 FreeBSD (push) Waiting to run
64 lines
2.0 KiB
Bash
64 lines
2.0 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
|