#!/bin/bash -e # go to buildscripts root folder cd "$( dirname "${BASH_SOURCE[0]}" )/.." . ./include/depinfo.sh msg() { printf '==> %s\n' "$1" } fetch_prefix() { if [[ "$CACHE_MODE" == folder ]]; then local text= if [ -f "$CACHE_FOLDER/id.txt" ]; then text=$(cat "$CACHE_FOLDER/id.txt") else echo "Cache seems to be empty" fi printf 'Expecting "%s",\nfound "%s".\n' "$ci_tarball" "$text" if [[ "$text" == "$ci_tarball" ]]; then tar -xzf "$CACHE_FOLDER/data.tgz" -C prefix && return 0 fi fi return 1 } build_prefix() { msg "Building the prefix ($ci_tarball)..." msg "Fetching deps" IN_CI=1 ./include/download-deps.sh # build everything mpv depends on (but not mpv itself) for x in ${dep_mpv[@]}; do msg "Building $x" ./buildall.sh $x done if [[ "$CACHE_MODE" == folder && -w "$CACHE_FOLDER" ]]; then msg "Compressing the prefix" tar -cvzf "$CACHE_FOLDER/data.tgz" -C prefix . echo "$ci_tarball" >"$CACHE_FOLDER/id.txt" fi } export WGET="wget --progress=bar:force" if [ "$1" = "export" ]; then # export variable with unique cache identifier echo "CACHE_IDENTIFIER=$ci_tarball" exit 0 elif [ "$1" = "install" ]; then # install deps if [[ -n "$ANDROID_HOME" && -d "$ANDROID_HOME" ]]; then msg "Linking existing SDK" mkdir -p sdk ln -sv "$ANDROID_HOME" sdk/android-sdk-linux fi msg "Fetching SDK + NDK" IN_CI=1 ./include/download-sdk.sh msg "Fetching mpv" mkdir -p deps/mpv $WGET https://github.com/mpv-player/mpv/archive/master.tar.gz -O master.tgz tar -xzf master.tgz -C deps/mpv --strip-components=1 rm master.tgz msg "Trying to fetch existing prefix" mkdir -p prefix fetch_prefix || build_prefix exit 0 elif [ "$1" = "build" ]; then # run build : else exit 1 fi msg "Building mpv" ./buildall.sh -n mpv || { # show logfile if configure failed [ ! -f deps/mpv/_build/config.h ] && cat deps/mpv/_build/meson-logs/meson-log.txt exit 1 } msg "Building mpv-android" ./buildall.sh -n exit 0