mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.7 KiB
92 lines
2.7 KiB
#!/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
|
|
|