blob: 1dc9d8c2f0dbe023426d2458a4aa650a9a6f19c7 [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
38 # Check if the AOSP has a flatbuffers we can use
39 if [ -d ../../../external/flatbuffers/ ]; then
40 echo "+++ Using AOSP Flatbufers"
41 FLATBUFFERS_DIR=$PWD
42 # Have to make a copy of the AOSP flatbuffers and delete a few files to avoid issues with the android build
43 cp -r ../../../external/flatbuffers/ flatbuffers
44 # Remove Android build files to avoid build issues
45 rm flatbuffers/Android.*
46
47 BuildFlatbuffers
48
49 # If not then download flatbuffers
50 else
51 echo "++ Downloading FlatBuffers v1.12.0"
52
53 FLATBUFFERS_PKG=v1.12.0.tar.gz
54
55 curl -LOk https://github.com/google/flatbuffers/archive/v1.12.0.tar.gz
56 AssertZeroExitCode "Downloading FlatBuffers failed"
57 mkdir -p flatbuffers
58 tar xzf $FLATBUFFERS_PKG -C flatbuffers --strip-components 1
59 AssertZeroExitCode "Unpacking FlatBuffers failed"
60
61 BuildFlatbuffers
62
63 rm -rf $FLATBUFFERS_PKG
64 fi
Sadik Armaganf36e10b2021-01-11 16:34:01 +000065fi
66
telsoa015307bc12018-03-09 13:51:08 +000067if [ ! -d armnn ]; then
68 echo "++ Downloading armnn"
69
surmeh0176660052018-03-29 16:33:54 +010070 git clone git@github.com:ARM-software/armnn armnn
telsoa015307bc12018-03-09 13:51:08 +000071 AssertZeroExitCode "Cloning armnn failed"
72fi
73
74if [ ! -d clframework ]; then
75 echo "++ Downloading clframework"
76
surmeh0176660052018-03-29 16:33:54 +010077 git clone git@github.com:ARM-software/ComputeLibrary clframework
telsoa015307bc12018-03-09 13:51:08 +000078 AssertZeroExitCode "Cloning clframework failed"
79fi
80
81# Get scons to create the generated source code which clframework needs to compile.
82# This is required for the Android build system to build clframework (see below)
83pushd clframework
84scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
Nikhil Raj21469d22020-11-04 10:28:43 +000085 arch=arm64-v8.2-a build_dir=android-arm64v8.2-a benchmark_tests=0 -j16 \
86 build/android-arm64v8.2-a/src/core/arm_compute_version.embed build/android-arm64v8.2-a/src/core/CL/cl_kernels
87AssertZeroExitCode "Precompiling clframework failed for v82.a"
88
89scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
telsoa015307bc12018-03-09 13:51:08 +000090 arch=arm64-v8a build_dir=android-arm64v8a benchmark_tests=0 -j16 \
91 build/android-arm64v8a/src/core/arm_compute_version.embed build/android-arm64v8a/src/core/CL/cl_kernels
Nikhil Raj21469d22020-11-04 10:28:43 +000092AssertZeroExitCode "Precompiling clframework failed for v8a."
telsoa015307bc12018-03-09 13:51:08 +000093popd
94
Mike Kellya3ba4be2022-05-20 17:18:50 +010095if [ ! -d armnn/generated ]; then
96 mkdir -p armnn/generated
97fi
98
99if [ ! -f armnn/generated/ArmnnSchema_generated.h ]; then
100 echo "+++ Generating new ArmnnSchema_generated.h"
101 $FLATBUFFERS_DIR/bin/flatc -o armnn/generated --cpp armnn/src/armnnSerializer/ArmnnSchema.fbs
102 AssertZeroExitCode "Generating ArmnnSchema_generated.h failed."
103fi