telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 1 | #!/bin/bash |
| 2 | |
| 3 | function 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 Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 12 | BUILD_DIR=build-x86_64 |
| 13 | FLATBUFFERS_DIR=$PWD/flatbuffers |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 14 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 15 | function BuildFlatbuffers { |
| 16 | pushd flatbuffers |
| 17 | rm -rf $BUILD_DIR |
| 18 | rm -f CMakeCache.txt |
| 19 | FLATBUFFERS_DIR=$PWD |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 20 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 21 | mkdir -p $BUILD_DIR |
| 22 | cd $BUILD_DIR |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 23 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 24 | 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 Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 36 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 37 | if [ ! -d flatbuffers ]; then |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 38 | echo "++ Downloading FlatBuffers v1.12.0" |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 39 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 40 | FLATBUFFERS_PKG=v1.12.0.tar.gz |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 41 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 42 | 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 Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 47 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 48 | BuildFlatbuffers |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 49 | |
Mike Kelly | 5b47854 | 2022-06-01 09:16:26 +0100 | [diff] [blame] | 50 | rm -rf $FLATBUFFERS_PKG |
Sadik Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 51 | fi |
| 52 | |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 53 | if [ ! -d armnn ]; then |
| 54 | echo "++ Downloading armnn" |
| 55 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 56 | git clone git@github.com:ARM-software/armnn armnn |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 57 | AssertZeroExitCode "Cloning armnn failed" |
| 58 | fi |
| 59 | |
| 60 | if [ ! -d clframework ]; then |
| 61 | echo "++ Downloading clframework" |
| 62 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 63 | git clone git@github.com:ARM-software/ComputeLibrary clframework |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 64 | AssertZeroExitCode "Cloning clframework failed" |
| 65 | fi |
| 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) |
| 69 | pushd clframework |
| 70 | 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] | 71 | 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 |
| 73 | AssertZeroExitCode "Precompiling clframework failed for v82.a" |
| 74 | |
| 75 | 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] | 76 | 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 Raj | 21469d2 | 2020-11-04 10:28:43 +0000 | [diff] [blame] | 78 | AssertZeroExitCode "Precompiling clframework failed for v8a." |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 79 | popd |
| 80 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame] | 81 | if [ ! -d armnn/generated ]; then |
| 82 | mkdir -p armnn/generated |
| 83 | fi |
| 84 | |
| 85 | if [ ! -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." |
| 89 | fi |