IVGCVSW-3577 Update ACL pin to include NEON convolution output multiplier fix
[platform/upstream/armnn.git] / scripts / get_compute_library.sh
1 #!/bin/bash
2 #
3 # Copyright © 2017 Arm Ltd. All rights reserved.
4 # SPDX-License-Identifier: MIT
5 #
6
7 CMD=$( basename $0 )
8
9 # For pinnning to a ref use this:
10 #DEFAULT_CLFRAMEWORKREVISION="branches/arm_compute_19_05" # Release 19.05
11 #
12 # For pinning to a revision use this:
13 DEFAULT_CLFRAMEWORKREVISION="1c29ffc7fe02de68cf2e82709a3bc3e210cb0ba4" #COMPMID-2336: Fix build issues
14
15 usage() {
16     echo "Usage: $CMD (Use the default clframework SHA)"
17     echo "Usage: $CMD -s <CLFRAMEWORK_SHA>"
18     echo "Usage: $CMD -p (Print current default clframework SHA)"
19   exit 0
20 }
21
22 PrintDefaultClframeworkSha() {
23   echo $DEFAULT_CLFRAMEWORKREVISION
24   exit 0;
25 }
26
27 function AssertZeroExitCode {
28   EXITCODE=$?
29   if [ $EXITCODE -ne 0 ]; then
30     echo "$1"
31     echo "+++ Command exited with code $EXITCODE. Please fix the above errors and re-run"
32     exit 1
33   fi
34 }
35
36 # process the options given
37 while getopts "s:phg:" opt; do
38   case "$opt" in
39     s) CLFRAMEWORK_SHA="$OPTARG";;
40     p) PrintDefaultClframeworkSha;;
41     g) DUMMY="$OPTARG";; # continue to accept -g for backward compatibility
42     h|\?) usage;;
43   esac
44 done
45 shift $((OPTIND - 1))
46
47 #
48 # This script is designed to be called from anywhere
49 # so it will resolve where to checkout out the clframework
50 # relative to its own location in armnn/scripts
51 #
52 SRC="${BASH_SOURCE[0]}"
53 # resolve $SRC until it is no longer a symlink
54 while [ -h "$SRC" ]; do
55   DIR="$( cd -P "$( dirname "$SRC" )" >/dev/null && pwd )"
56   SRC="$(readlink "$SRC")"
57   # if $SRC was a relative symlink, we need to resolve it
58   # relative to the path where the symlink file originally was
59   [[ $SRC != /* ]] && SRC="$DIR/$SRC"
60 done
61 DIR="$( cd -P "$( dirname "$SRC" )" >/dev/null && pwd )"
62 pushd ${DIR} > /dev/null
63 cd ../..
64
65 if [ ! -d clframework ]; then
66   git clone https://review.mlplatform.org/ml/ComputeLibrary clframework
67   AssertZeroExitCode "Cloning CL Framework failed"
68 fi
69 pushd clframework > /dev/null
70
71 CLFRAMEWORKREVISION=$DEFAULT_CLFRAMEWORKREVISION
72 if [ ! -z "$CLFRAMEWORK_SHA" ]; then
73     CLFRAMEWORKREVISION=$CLFRAMEWORK_SHA
74 fi
75
76 git fetch && git fetch https://review.mlplatform.org/ml/ComputeLibrary && git checkout ${CLFRAMEWORKREVISION}
77 AssertZeroExitCode "Fetching and checking out ${CLFRAMEWORKREVISION} failed"
78
79 # Set commit hook so we can submit reviews to gerrit
80 (curl -Lo `git rev-parse --git-dir`/hooks/commit-msg https://review.mlplatform.org/tools/hooks/commit-msg; chmod +x `git rev-parse --git-dir`/hooks/commit-msg)
81 AssertZeroExitCode "Setting commit hooks failed"
82
83 popd > /dev/null # out of clframework
84 popd > /dev/null # back to wherever we were when called
85 # Make sure the SHA of the revision that was checked out is the last line
86 # of output from the script... just in case we ever need it.
87 echo $CLFRAMEWORKREVISION
88 exit 0