blob: b4d23edac2d5f14cf1e16852e8a1ad9ef4fe4900 [file] [log] [blame]
telsoa015307bc12018-03-09 13:51:08 +00001#!/bin/bash
2
3function AssertZeroExitCode {
4 EXITCODE=$?
5 if [ $EXITCODE -ne 0 ]; then
6 echo "$1"
7 echo "+++ Command exited with code $EXITCODE. Please fix the above errors and re-run"
8 exit 1
9 fi
10}
11
Mike Kellya3ba4be2022-05-20 17:18:50 +010012BUILD_DIR=build-x86_64
13FLATBUFFERS_DIR=$PWD/flatbuffers
Sadik Armaganf36e10b2021-01-11 16:34:01 +000014
Mike Kellya3ba4be2022-05-20 17:18:50 +010015function BuildFlatbuffers {
16 pushd flatbuffers
17 rm -rf $BUILD_DIR
18 rm -f CMakeCache.txt
19 FLATBUFFERS_DIR=$PWD
Sadik Armaganf36e10b2021-01-11 16:34:01 +000020
Mike Kellya3ba4be2022-05-20 17:18:50 +010021 mkdir -p $BUILD_DIR
22 cd $BUILD_DIR
Sadik Armaganf36e10b2021-01-11 16:34:01 +000023
Mike Kellya3ba4be2022-05-20 17:18:50 +010024 echo "+++ Building Google Flatbufers"
25 CMD="cmake -DFLATBUFFERS_BUILD_FLATC=1 -DCMAKE_INSTALL_PREFIX:PATH=$FLATBUFFERS_DIR .."
26 # Force -fPIC to allow relocatable linking.
27 CXXFLAGS="-fPIC" $CMD
28 AssertZeroExitCode "cmake Google Flatbuffers failed. command was: ${CMD}"
29 make all install
30 AssertZeroExitCode "Building Google Flatbuffers failed"
31 mkdir -p $FLATBUFFERS_DIR/bin
32 cp -f flatc $FLATBUFFERS_DIR/bin
33 AssertZeroExitCode "Failed to copy the Flatbuffers Compiler"
34 popd
35}
Sadik Armaganf36e10b2021-01-11 16:34:01 +000036
Mike Kellya3ba4be2022-05-20 17:18:50 +010037if [ ! -d flatbuffers ]; then
Mike Kelly5b478542022-06-01 09:16:26 +010038 echo "++ Downloading FlatBuffers v1.12.0"
Mike Kellya3ba4be2022-05-20 17:18:50 +010039
Mike Kelly5b478542022-06-01 09:16:26 +010040 FLATBUFFERS_PKG=v1.12.0.tar.gz
Mike Kellya3ba4be2022-05-20 17:18:50 +010041
Mike Kelly5b478542022-06-01 09:16:26 +010042 curl -LOk https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz
43 AssertZeroExitCode "Downloading FlatBuffers failed"
44 mkdir -p flatbuffers
45 tar xzf $FLATBUFFERS_PKG -C flatbuffers --strip-components 1
46 AssertZeroExitCode "Unpacking FlatBuffers failed"
Mike Kellya3ba4be2022-05-20 17:18:50 +010047
Mike Kelly5b478542022-06-01 09:16:26 +010048 BuildFlatbuffers
Mike Kellya3ba4be2022-05-20 17:18:50 +010049
Mike Kelly5b478542022-06-01 09:16:26 +010050 rm -rf $FLATBUFFERS_PKG
Sadik Armaganf36e10b2021-01-11 16:34:01 +000051fi
52
telsoa015307bc12018-03-09 13:51:08 +000053if [ ! -d armnn ]; then
54 echo "++ Downloading armnn"
55
surmeh0176660052018-03-29 16:33:54 +010056 git clone git@github.com:ARM-software/armnn armnn
telsoa015307bc12018-03-09 13:51:08 +000057 AssertZeroExitCode "Cloning armnn failed"
58fi
59
60if [ ! -d clframework ]; then
61 echo "++ Downloading clframework"
62
surmeh0176660052018-03-29 16:33:54 +010063 git clone git@github.com:ARM-software/ComputeLibrary clframework
telsoa015307bc12018-03-09 13:51:08 +000064 AssertZeroExitCode "Cloning clframework failed"
65fi
66
67# Get scons to create the generated source code which clframework needs to compile.
68# This is required for the Android build system to build clframework (see below)
69pushd clframework
70scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
Nikhil Raj21469d22020-11-04 10:28:43 +000071 arch=arm64-v8.2-a build_dir=android-arm64v8.2-a benchmark_tests=0 -j16 \
72 build/android-arm64v8.2-a/src/core/arm_compute_version.embed build/android-arm64v8.2-a/src/core/CL/cl_kernels
73AssertZeroExitCode "Precompiling clframework failed for v82.a"
74
75scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
telsoa015307bc12018-03-09 13:51:08 +000076 arch=arm64-v8a build_dir=android-arm64v8a benchmark_tests=0 -j16 \
77 build/android-arm64v8a/src/core/arm_compute_version.embed build/android-arm64v8a/src/core/CL/cl_kernels
Nikhil Raj21469d22020-11-04 10:28:43 +000078AssertZeroExitCode "Precompiling clframework failed for v8a."
telsoa015307bc12018-03-09 13:51:08 +000079popd
80
Mike Kellya3ba4be2022-05-20 17:18:50 +010081if [ ! -d armnn/generated ]; then
82 mkdir -p armnn/generated
83fi
84
85if [ ! -f armnn/generated/ArmnnSchema_generated.h ]; then
86 echo "+++ Generating new ArmnnSchema_generated.h"
87 $FLATBUFFERS_DIR/bin/flatc -o armnn/generated --cpp armnn/src/armnnSerializer/ArmnnSchema.fbs
88 AssertZeroExitCode "Generating ArmnnSchema_generated.h failed."
89fi