blob: 2887678ad91553630b0d3b364ee2a35c56914012 [file] [log] [blame]
telsoa015307bc12018-03-09 13:51:08 +00001#!/bin/bash
2
Jim Flynn0e577092022-08-02 17:01:59 +01003#
Mike Kelly693c5ad2023-08-11 11:03:46 +01004# Copyright © 2018,2020-2023 Arm Ltd and Contributors. All rights reserved.
Jim Flynn0e577092022-08-02 17:01:59 +01005# SPDX-License-Identifier: MIT
6#
7
telsoa015307bc12018-03-09 13:51:08 +00008function AssertZeroExitCode {
9 EXITCODE=$?
10 if [ $EXITCODE -ne 0 ]; then
11 echo "$1"
12 echo "+++ Command exited with code $EXITCODE. Please fix the above errors and re-run"
13 exit 1
14 fi
15}
16
Mike Kellya3ba4be2022-05-20 17:18:50 +010017BUILD_DIR=build-x86_64
18FLATBUFFERS_DIR=$PWD/flatbuffers
Sadik Armaganf36e10b2021-01-11 16:34:01 +000019
Mike Kellya3ba4be2022-05-20 17:18:50 +010020function BuildFlatbuffers {
21 pushd flatbuffers
22 rm -rf $BUILD_DIR
23 rm -f CMakeCache.txt
24 FLATBUFFERS_DIR=$PWD
Sadik Armaganf36e10b2021-01-11 16:34:01 +000025
Mike Kellya3ba4be2022-05-20 17:18:50 +010026 mkdir -p $BUILD_DIR
27 cd $BUILD_DIR
Sadik Armaganf36e10b2021-01-11 16:34:01 +000028
Mike Kellya3ba4be2022-05-20 17:18:50 +010029 echo "+++ Building Google Flatbufers"
30 CMD="cmake -DFLATBUFFERS_BUILD_FLATC=1 -DCMAKE_INSTALL_PREFIX:PATH=$FLATBUFFERS_DIR .."
31 # Force -fPIC to allow relocatable linking.
32 CXXFLAGS="-fPIC" $CMD
33 AssertZeroExitCode "cmake Google Flatbuffers failed. command was: ${CMD}"
34 make all install
35 AssertZeroExitCode "Building Google Flatbuffers failed"
36 mkdir -p $FLATBUFFERS_DIR/bin
37 cp -f flatc $FLATBUFFERS_DIR/bin
38 AssertZeroExitCode "Failed to copy the Flatbuffers Compiler"
39 popd
40}
Sadik Armaganf36e10b2021-01-11 16:34:01 +000041
Mike Kellya3ba4be2022-05-20 17:18:50 +010042if [ ! -d flatbuffers ]; then
Colm Donelanb51aab92022-10-25 09:47:15 +010043 echo "++ Downloading FlatBuffers v2.0.6"
Mike Kellya3ba4be2022-05-20 17:18:50 +010044
Colm Donelanb51aab92022-10-25 09:47:15 +010045 FLATBUFFERS_PKG=v2.0.6.tar.gz
Mike Kellya3ba4be2022-05-20 17:18:50 +010046
Colm Donelanb51aab92022-10-25 09:47:15 +010047 curl -LOk https://github.com/google/flatbuffers/archive/${FLATBUFFERS_PKG}
Mike Kelly5b478542022-06-01 09:16:26 +010048 AssertZeroExitCode "Downloading FlatBuffers failed"
49 mkdir -p flatbuffers
50 tar xzf $FLATBUFFERS_PKG -C flatbuffers --strip-components 1
51 AssertZeroExitCode "Unpacking FlatBuffers failed"
Mike Kellya3ba4be2022-05-20 17:18:50 +010052
Mike Kelly5b478542022-06-01 09:16:26 +010053 BuildFlatbuffers
Mike Kellya3ba4be2022-05-20 17:18:50 +010054
Mike Kelly5b478542022-06-01 09:16:26 +010055 rm -rf $FLATBUFFERS_PKG
Sadik Armaganf36e10b2021-01-11 16:34:01 +000056fi
57
telsoa015307bc12018-03-09 13:51:08 +000058if [ ! -d armnn ]; then
59 echo "++ Downloading armnn"
60
surmeh0176660052018-03-29 16:33:54 +010061 git clone git@github.com:ARM-software/armnn armnn
telsoa015307bc12018-03-09 13:51:08 +000062 AssertZeroExitCode "Cloning armnn failed"
63fi
64
65if [ ! -d clframework ]; then
66 echo "++ Downloading clframework"
67
surmeh0176660052018-03-29 16:33:54 +010068 git clone git@github.com:ARM-software/ComputeLibrary clframework
telsoa015307bc12018-03-09 13:51:08 +000069 AssertZeroExitCode "Cloning clframework failed"
70fi
71
72# Get scons to create the generated source code which clframework needs to compile.
73# This is required for the Android build system to build clframework (see below)
74pushd clframework
75scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
Nikhil Raj21469d22020-11-04 10:28:43 +000076 arch=arm64-v8.2-a build_dir=android-arm64v8.2-a benchmark_tests=0 -j16 \
77 build/android-arm64v8.2-a/src/core/arm_compute_version.embed build/android-arm64v8.2-a/src/core/CL/cl_kernels
78AssertZeroExitCode "Precompiling clframework failed for v82.a"
79
80scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \
telsoa015307bc12018-03-09 13:51:08 +000081 arch=arm64-v8a build_dir=android-arm64v8a benchmark_tests=0 -j16 \
82 build/android-arm64v8a/src/core/arm_compute_version.embed build/android-arm64v8a/src/core/CL/cl_kernels
Nikhil Raj21469d22020-11-04 10:28:43 +000083AssertZeroExitCode "Precompiling clframework failed for v8a."
telsoa015307bc12018-03-09 13:51:08 +000084popd
85
Mike Kellya3ba4be2022-05-20 17:18:50 +010086if [ ! -d armnn/generated ]; then
87 mkdir -p armnn/generated
88fi
89
Mike Kelly693c5ad2023-08-11 11:03:46 +010090echo "+++ Generating new ArmnnSchema_generated.h"
91$FLATBUFFERS_DIR/bin/flatc -o armnn/generated --cpp armnn/src/armnnSerializer/ArmnnSchema.fbs
92AssertZeroExitCode "Generating ArmnnSchema_generated.h failed."