mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-04-10 03:18:55 +02:00
Updates all of our bundled CI deps to support android x86_64, adds a build flavor thereof (`chromeOS`), and also adds sirit mingw support. The new FFmpeg package is built in a much better way that actually makes it identically built to the other CI packages, meaning we now have real 8.0.0 support, no need for libvpx/cpu_features/all that other crap. PLUS, we can now statically link it! Hooray! It's also built with MediaCodec support so in the future we can work on that. Rewrote the android build script too, plus added a copyFlavorTypeOutput target that assembles and copies the APK. The code behind it sucks because I'm not great with Gradle but hey, it works. Testers: please test everything related to video decoding. VP9 and h264, games that normally suck with their prerendered stuff, make sure I didn't nuke it to oblivion, etc. Signed-off-by: crueter <crueter@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3086 Reviewed-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-by: Lizzie <lizzie@eden-emu.dev>
102 lines
2.7 KiB
Bash
Executable file
102 lines
2.7 KiB
Bash
Executable file
#!/bin/sh -e
|
|
|
|
# SPDX-FileCopyrightText: 2025 crueter
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# shellcheck disable=SC1091
|
|
. tools/cpm/common.sh
|
|
|
|
download_package() {
|
|
FILENAME=$(basename "$DOWNLOAD")
|
|
|
|
OUTFILE="$TMP/$FILENAME"
|
|
|
|
LOWER_PACKAGE=$(echo "$PACKAGE_NAME" | tr '[:upper:]' '[:lower:]')
|
|
OUTDIR="${CPM_SOURCE_CACHE}/${LOWER_PACKAGE}/${KEY}"
|
|
[ -d "$OUTDIR" ] && return
|
|
|
|
curl "$DOWNLOAD" -sS -L -o "$OUTFILE"
|
|
|
|
ACTUAL_HASH=$("${HASH_ALGO}"sum "$OUTFILE" | cut -d" " -f1)
|
|
[ "$ACTUAL_HASH" != "$HASH" ] && echo "!! $FILENAME did not match expected hash; expected $HASH but got $ACTUAL_HASH" && exit 1
|
|
|
|
mkdir -p "$OUTDIR"
|
|
|
|
PREVDIR="$PWD"
|
|
cd "$OUTDIR"
|
|
|
|
case "$FILENAME" in
|
|
(*.7z)
|
|
7z x "$OUTFILE" > /dev/null
|
|
;;
|
|
(*.tar*)
|
|
tar xf "$OUTFILE" > /dev/null
|
|
;;
|
|
(*.zip)
|
|
unzip "$OUTFILE" > /dev/null
|
|
;;
|
|
esac
|
|
|
|
# basically if only one real item exists at the top we just move everything from there
|
|
# since github and some vendors hate me
|
|
DIRS=$(find . -maxdepth 1 -type d -o -type f)
|
|
|
|
# thanks gnu
|
|
if [ "$(echo "$DIRS" | wc -l)" -eq 2 ]; then
|
|
SUBDIR=$(find . -maxdepth 1 -type d -not -name ".")
|
|
mv "$SUBDIR"/* .
|
|
mv "$SUBDIR"/.* . 2>/dev/null || true
|
|
rmdir "$SUBDIR"
|
|
fi
|
|
|
|
if echo "$JSON" | grep -e "patches" > /dev/null; then
|
|
PATCHES=$(echo "$JSON" | jq -r '.patches | join(" ")')
|
|
for patch in $PATCHES; do
|
|
# shellcheck disable=SC2154
|
|
patch --binary -p1 < "$ROOTDIR/.patch/$PACKAGE/$patch"
|
|
done
|
|
fi
|
|
|
|
cd "$PREVDIR"
|
|
}
|
|
|
|
ci_package() {
|
|
[ "$REPO" = null ] && echo "-- ! No repo defined" && return
|
|
|
|
echo "-- CI package $PACKAGE_NAME"
|
|
|
|
for platform in windows-amd64 windows-arm64 \
|
|
mingw-amd64 mingw-arm64 \
|
|
android-aarch64 android-x86_64 \
|
|
solaris-amd64 freebsd-amd64 openbsd-amd64 \
|
|
linux-amd64 linux-aarch64 \
|
|
macos-universal; do
|
|
echo "-- * platform $platform"
|
|
|
|
case $DISABLED in
|
|
(*"$platform"*)
|
|
echo "-- * -- disabled"
|
|
continue
|
|
;;
|
|
(*) ;;
|
|
esac
|
|
|
|
FILENAME="${NAME}-${platform}-${VERSION}.${EXT}"
|
|
DOWNLOAD="https://$GIT_HOST/${REPO}/releases/download/v${VERSION}/${FILENAME}"
|
|
KEY=$platform
|
|
|
|
LOWER_PACKAGE=$(echo "$PACKAGE_NAME" | tr '[:upper:]' '[:lower:]')
|
|
OUTDIR="${CPM_SOURCE_CACHE}/${LOWER_PACKAGE}/${KEY}"
|
|
[ -d "$OUTDIR" ] && continue
|
|
|
|
HASH_ALGO=$(value "hash_algo")
|
|
[ "$HASH_ALGO" = null ] && HASH_ALGO=sha512
|
|
|
|
HASH_SUFFIX="${HASH_ALGO}sum"
|
|
HASH_URL="${DOWNLOAD}.${HASH_SUFFIX}"
|
|
|
|
HASH=$(curl "$HASH_URL" -sS -q -L -o -)
|
|
|
|
download_package
|
|
done
|
|
}
|