1*05767d91SRobert Wu#!/bin/bash 2*05767d91SRobert Wu 3*05767d91SRobert Wu# Test that the prefab binary exists 4*05767d91SRobert Wuif hash prefab 2>/dev/null; then 5*05767d91SRobert Wu echo "Prefab is installed" 6*05767d91SRobert Wuelse 7*05767d91SRobert Wu echo "Prefab binary not found. See https://github.com/google/prefab for install instructions" 8*05767d91SRobert Wu exit 1 9*05767d91SRobert Wufi 10*05767d91SRobert Wu 11*05767d91SRobert Wu# Get the version string from the source 12*05767d91SRobert Wumajor=$(grep "#define OBOE_VERSION_MAJOR" include/oboe/Version.h | cut -d' ' -f3) 13*05767d91SRobert Wuminor=$(grep "#define OBOE_VERSION_MINOR" include/oboe/Version.h | cut -d' ' -f3) 14*05767d91SRobert Wupatch=$(grep "#define OBOE_VERSION_PATCH" include/oboe/Version.h | cut -d' ' -f3) 15*05767d91SRobert Wuversion=$major"."$minor"."$patch 16*05767d91SRobert Wu 17*05767d91SRobert Wuecho "Building libraries for Oboe version "$version 18*05767d91SRobert Wu./build_all_android.sh 19*05767d91SRobert Wu 20*05767d91SRobert Wumkdir -p build/prefab 21*05767d91SRobert Wucp -R prefab/* build/prefab 22*05767d91SRobert Wu 23*05767d91SRobert WuABIS=("x86" "x86_64" "arm64-v8a" "armeabi-v7a") 24*05767d91SRobert Wu 25*05767d91SRobert Wupushd build/prefab 26*05767d91SRobert Wu 27*05767d91SRobert Wu # Remove .DS_Store files as these will cause the prefab verification to fail 28*05767d91SRobert Wu find . -name ".DS_Store" -delete 29*05767d91SRobert Wu 30*05767d91SRobert Wu # Write the version number into the various metadata files 31*05767d91SRobert Wu mv oboe-VERSION oboe-$version 32*05767d91SRobert Wu mv oboe-VERSION.pom oboe-$version.pom 33*05767d91SRobert Wu sed -i '' -e "s/VERSION/${version}/g" oboe-$version.pom oboe-$version/prefab/prefab.json 34*05767d91SRobert Wu 35*05767d91SRobert Wu # Copy the headers 36*05767d91SRobert Wu cp -R ../../include oboe-$version/prefab/modules/oboe/ 37*05767d91SRobert Wu 38*05767d91SRobert Wu # Copy the libraries 39*05767d91SRobert Wu for abi in ${ABIS[@]} 40*05767d91SRobert Wu do 41*05767d91SRobert Wu echo "Copying the ${abi} library" 42*05767d91SRobert Wu cp -v "../${abi}/liboboe.so" "oboe-${version}/prefab/modules/oboe/libs/android.${abi}/" 43*05767d91SRobert Wu done 44*05767d91SRobert Wu 45*05767d91SRobert Wu # Verify the prefab packages 46*05767d91SRobert Wu for abi in ${ABIS[@]} 47*05767d91SRobert Wu do 48*05767d91SRobert Wu 49*05767d91SRobert Wu prefab --build-system cmake --platform android --os-version 29 \ 50*05767d91SRobert Wu --stl c++_shared --ndk-version 21 --abi ${abi} \ 51*05767d91SRobert Wu --output prefab-output-tmp $(pwd)/oboe-${version}/prefab 52*05767d91SRobert Wu 53*05767d91SRobert Wu result=$?; if [[ $result == 0 ]]; then 54*05767d91SRobert Wu echo "${abi} package verified" 55*05767d91SRobert Wu else 56*05767d91SRobert Wu echo "${abi} package verification failed" 57*05767d91SRobert Wu exit 1 58*05767d91SRobert Wu fi 59*05767d91SRobert Wu done 60*05767d91SRobert Wu 61*05767d91SRobert Wu # Zip into an AAR and move into parent dir 62*05767d91SRobert Wu pushd oboe-${version} 63*05767d91SRobert Wu zip -r oboe-${version}.aar . 2>/dev/null; 64*05767d91SRobert Wu zip -Tv oboe-${version}.aar 2>/dev/null; 65*05767d91SRobert Wu 66*05767d91SRobert Wu # Verify that the aar contents are correct (see output below to verify) 67*05767d91SRobert Wu result=$?; if [[ $result == 0 ]]; then 68*05767d91SRobert Wu echo "AAR verified" 69*05767d91SRobert Wu else 70*05767d91SRobert Wu echo "AAR verification failed" 71*05767d91SRobert Wu exit 1 72*05767d91SRobert Wu fi 73*05767d91SRobert Wu 74*05767d91SRobert Wu mv oboe-${version}.aar .. 75*05767d91SRobert Wu popd 76*05767d91SRobert Wu 77*05767d91SRobert Wu # Zip the .aar and .pom files into a maven package 78*05767d91SRobert Wu zip oboe-${version}.zip oboe-${version}.* 2>/dev/null; 79*05767d91SRobert Wu zip -Tv oboe-${version}.zip 2>/dev/null; 80*05767d91SRobert Wu 81*05767d91SRobert Wu # Verify that the zip contents are correct (see output below to verify) 82*05767d91SRobert Wu result=$?; if [[ $result == 0 ]]; then 83*05767d91SRobert Wu echo "Zip verified" 84*05767d91SRobert Wu else 85*05767d91SRobert Wu echo "Zip verification failed" 86*05767d91SRobert Wu exit 1 87*05767d91SRobert Wu fi 88*05767d91SRobert Wupopd 89*05767d91SRobert Wu 90*05767d91SRobert Wuecho "Prefab zip ready for deployment: ./build/prefab/oboe-${version}.zip" 91