mirror of
https://github.com/Qortal/Brooklyn.git
synced 2025-02-12 18:25:53 +00:00
93 lines
2.7 KiB
Bash
93 lines
2.7 KiB
Bash
|
#!/bin/bash
|
||
|
#
|
||
|
# Copyright © 2021 Arm Ltd and Contributors. All rights reserved.
|
||
|
#
|
||
|
# SPDX-License-Identifier: MIT
|
||
|
#
|
||
|
|
||
|
CMD=$( basename $0 )
|
||
|
|
||
|
# Revision or tag that Arm NN has been tested with:
|
||
|
DEFAULT_TENSORFLOW_REVISION="tags/v2.5.0" # Release 2.5.0 tag
|
||
|
|
||
|
Usage() {
|
||
|
echo "Gets the revision or tag of TensorFlow that this version of Arm NN has been"
|
||
|
echo "tested with."
|
||
|
echo
|
||
|
echo "Usage: $CMD Gets the default TensorFlow revision/tag ($DEFAULT_TENSORFLOW_REVISION)"
|
||
|
echo "Usage: $CMD -s <TENSORFLOW_SHA>"
|
||
|
echo "Usage: $CMD -p (Print current default revision/tag)"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
PrintDefaultTensorFlowSha() {
|
||
|
echo $DEFAULT_TENSORFLOW_REVISION
|
||
|
exit 0;
|
||
|
}
|
||
|
|
||
|
function AssertZeroExitCode {
|
||
|
EXITCODE=$?
|
||
|
if [ $EXITCODE -ne 0 ]; then
|
||
|
echo "$1"
|
||
|
echo "+++ Command exited with code $EXITCODE. Please fix the above errors and re-run"
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
# Revision or tag to check out
|
||
|
TENSORFLOW_REVISION=$DEFAULT_TENSORFLOW_REVISION
|
||
|
|
||
|
# process the options given
|
||
|
while getopts "s:ph\?:" opt; do
|
||
|
case "$opt" in
|
||
|
s) TENSORFLOW_REVISION="$OPTARG";;
|
||
|
p) PrintDefaultTensorFlowSha;;
|
||
|
h|\?) Usage;;
|
||
|
esac
|
||
|
done
|
||
|
shift $((OPTIND - 1))
|
||
|
|
||
|
#
|
||
|
# This script is designed to be called from anywhere
|
||
|
# so it will resolve where to checkout out TensorFlow
|
||
|
# relative to its own location in armnn/scripts
|
||
|
#
|
||
|
SRC="${BASH_SOURCE[0]}"
|
||
|
# resolve $SRC until it is no longer a symlink
|
||
|
while [ -h "$SRC" ]; do
|
||
|
DIR="$( cd -P "$( dirname "$SRC" )" >/dev/null && pwd )"
|
||
|
SRC="$(readlink "$SRC")"
|
||
|
# if $SRC was a relative symlink, we need to resolve it
|
||
|
# relative to the path where the symlink file originally was
|
||
|
[[ $SRC != /* ]] && SRC="$DIR/$SRC"
|
||
|
done
|
||
|
DIR="$( cd -P "$( dirname "$SRC" )" >/dev/null && pwd )"
|
||
|
pushd ${DIR} > /dev/null
|
||
|
cd ../..
|
||
|
|
||
|
# Clone TensorFlow if we don't already have a directory
|
||
|
if [ ! -d tensorflow ]; then
|
||
|
echo "Cloning TensorFlow"
|
||
|
git clone https://github.com/tensorflow/tensorflow.git
|
||
|
AssertZeroExitCode "Cloning TensorFlow failed"
|
||
|
fi
|
||
|
pushd tensorflow > /dev/null
|
||
|
|
||
|
# Checkout the TensorFlow revision
|
||
|
echo "Checking out ${TENSORFLOW_REVISION}"
|
||
|
git fetch && git checkout ${TENSORFLOW_REVISION}
|
||
|
AssertZeroExitCode "Fetching and checking out ${TENSORFLOW_REVISION} failed"
|
||
|
# If the target tensorflow revision includes a branch we also need to do a pull.
|
||
|
# This generally occurs with a release branch.
|
||
|
if [[ "${TENSORFLOW_REVISION}" == *"branches"* ]]; then
|
||
|
git pull
|
||
|
AssertZeroExitCode "TensorFlow reference includes a branch but git pull failed."
|
||
|
fi
|
||
|
|
||
|
popd > /dev/null # out of tensorflow
|
||
|
popd > /dev/null # back to wherever we were when called
|
||
|
# Make sure the SHA of the revision that was checked out is the last line
|
||
|
# of output from the script... just in case we ever need it.
|
||
|
echo $TENSORFLOW_REVISION
|
||
|
exit 0
|