telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
Jim Flynn | 0e57709 | 2022-08-02 17:01:59 +0100 | [diff] [blame] | 3 | # |
Mike Kelly | 693c5ad | 2023-08-11 11:03:46 +0100 | [diff] [blame^] | 4 | # Copyright © 2018,2020-2023 Arm Ltd and Contributors. All rights reserved. |
Jim Flynn | 0e57709 | 2022-08-02 17:01:59 +0100 | [diff] [blame] | 5 | # SPDX-License-Identifier: MIT |
| 6 | # |
| 7 | |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 8 | function 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 Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 17 | BUILD_DIR=build-x86_64 |
| 18 | FLATBUFFERS_DIR=$PWD/flatbuffers |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 19 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 20 | function BuildFlatbuffers { |
| 21 | pushd flatbuffers |
| 22 | rm -rf $BUILD_DIR |
| 23 | rm -f CMakeCache.txt |
| 24 | FLATBUFFERS_DIR=$PWD |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 25 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 26 | mkdir -p $BUILD_DIR |
| 27 | cd $BUILD_DIR |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 28 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 29 | 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 Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 41 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 42 | if [ ! -d flatbuffers ]; then |
Colm Donelan | b51aab9 | 2022-10-25 09:47:15 +0100 | [diff] [blame] | 43 | echo "++ Downloading FlatBuffers v2.0.6" |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 44 | |
Colm Donelan | b51aab9 | 2022-10-25 09:47:15 +0100 | [diff] [blame] | 45 | FLATBUFFERS_PKG=v2.0.6.tar.gz |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 46 | |
Colm Donelan | b51aab9 | 2022-10-25 09:47:15 +0100 | [diff] [blame] | 47 | curl -LOk https://github.com/google/flatbuffers/archive/${FLATBUFFERS_PKG} |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 48 | AssertZeroExitCode "Downloading FlatBuffers failed" |
| 49 | mkdir -p flatbuffers |
| 50 | tar xzf $FLATBUFFERS_PKG -C flatbuffers --strip-components 1 |
| 51 | AssertZeroExitCode "Unpacking FlatBuffers failed" |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 52 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 53 | BuildFlatbuffers |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 54 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 55 | rm -rf $FLATBUFFERS_PKG |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 56 | fi |
| 57 | |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 58 | if [ ! -d armnn ]; then |
| 59 | echo "++ Downloading armnn" |
| 60 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 61 | git clone git@github.com:ARM-software/armnn armnn |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 62 | AssertZeroExitCode "Cloning armnn failed" |
| 63 | fi |
| 64 | |
| 65 | if [ ! -d clframework ]; then |
| 66 | echo "++ Downloading clframework" |
| 67 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 68 | git clone git@github.com:ARM-software/ComputeLibrary clframework |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 69 | AssertZeroExitCode "Cloning clframework failed" |
| 70 | fi |
| 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) |
| 74 | pushd clframework |
| 75 | scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \ |
Nikhil Raj | 21469d2 | 2020-11-04 10:28:43 +0000 | [diff] [blame] | 76 | 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 |
| 78 | AssertZeroExitCode "Precompiling clframework failed for v82.a" |
| 79 | |
| 80 | scons os=android build=embed_only neon=0 opencl=1 embed_kernels=1 validation_tests=0 \ |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 81 | 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 Raj | 21469d2 | 2020-11-04 10:28:43 +0000 | [diff] [blame] | 83 | AssertZeroExitCode "Precompiling clframework failed for v8a." |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 84 | popd |
| 85 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 86 | if [ ! -d armnn/generated ]; then |
| 87 | mkdir -p armnn/generated |
| 88 | fi |
| 89 | |
Mike Kelly | 693c5ad | 2023-08-11 11:03:46 +0100 | [diff] [blame^] | 90 | echo "+++ Generating new ArmnnSchema_generated.h" |
| 91 | $FLATBUFFERS_DIR/bin/flatc -o armnn/generated --cpp armnn/src/armnnSerializer/ArmnnSchema.fbs |
| 92 | AssertZeroExitCode "Generating ArmnnSchema_generated.h failed." |