#!/bin/bash
set -e
# If any tracked revision no longer matches the local revision, blast the extenal toolchain directories
function check_revision()
{
echo Checking current revision for $1 in $2
if [ -d $2/.git ]; then
current_rev=$(git --git-dir=$2/.git rev-parse HEAD);
fi
echo current_rev for $1 is $current_rev;
tracked_rev=$(cat $3);
echo tracked_rev for $1 is $tracked_rev;
if [ "$current_rev" != "$tracked_rev" ]; then
echo Revisions for $1 do not match.;
if [ -d external ]; then
echo Removing current desktop toolchain;
rm -rf external/*;
fi
if [ -d build-android/external ]; then
echo Removing current android toolchain;
rm -rf build-android/external/*;
fi
echo Done removing toolchains.
exit 0;
fi
}
# Parameters are tool, current git repo location, tracked revision location
tool=glslang
dir=external/glslang
rev=external_revisions/glslang_revision
check_revision $tool $dir $rev
tool=glslang_android
dir=build-android/external/glslang
rev=build-android/glslang_revision_android
check_revision $tool $dir $rev
tool=spirv-tools_android
dir=build-android/external/spirv-tools
rev=build-android/spirv-tools_revision_android
check_revision $tool $dir $rev
tool=spirv-headers_android
dir=build-android/external/spirv-tools/external/spirv-headers
rev=build-android/spirv-headers_revision_android
check_revision $tool $dir $rev
tool=shaderc_android
dir=build-android/external/shaderc
rev=build-android/shaderc_revision_android
check_revision $tool $dir $rev
exit 0