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 |
| 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 Armagan | f36e10b | 2021-01-11 16:34:01 +0000 | [diff] [blame] | 65 | fi |
| 66 | |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 67 | if [ ! -d armnn ]; then |
| 68 | echo "++ Downloading armnn" |
| 69 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 70 | git clone git@github.com:ARM-software/armnn armnn |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 71 | AssertZeroExitCode "Cloning armnn failed" |
| 72 | fi |
| 73 | |
| 74 | if [ ! -d clframework ]; then |
| 75 | echo "++ Downloading clframework" |
| 76 | |
surmeh01 | 7666005 | 2018-03-29 16:33:54 +0100 | [diff] [blame] | 77 | git clone git@github.com:ARM-software/ComputeLibrary clframework |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 78 | AssertZeroExitCode "Cloning clframework failed" |
| 79 | fi |
| 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) |
| 83 | pushd clframework |
| 84 | 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] | 85 | 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 |
| 87 | AssertZeroExitCode "Precompiling clframework failed for v82.a" |
| 88 | |
| 89 | 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] | 90 | 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 Raj | 21469d2 | 2020-11-04 10:28:43 +0000 | [diff] [blame] | 92 | AssertZeroExitCode "Precompiling clframework failed for v8a." |
telsoa01 | 5307bc1 | 2018-03-09 13:51:08 +0000 | [diff] [blame] | 93 | popd |
| 94 | |
Mike Kelly | a3ba4be | 2022-05-20 17:18:50 +0100 | [diff] [blame^] | 95 | if [ ! -d armnn/generated ]; then |
| 96 | mkdir -p armnn/generated |
| 97 | fi |
| 98 | |
| 99 | if [ ! -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." |
| 103 | fi |