91 lines
2.6 KiB
Bash
Executable File
91 lines
2.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Test that the prefab binary exists
|
|
if hash prefab 2>/dev/null; then
|
|
echo "Prefab is installed"
|
|
else
|
|
echo "Prefab binary not found. See https://github.com/google/prefab for install instructions"
|
|
exit 1
|
|
fi
|
|
|
|
# Get the version string from the source
|
|
major=$(grep "#define OBOE_VERSION_MAJOR" include/oboe/Version.h | cut -d' ' -f3)
|
|
minor=$(grep "#define OBOE_VERSION_MINOR" include/oboe/Version.h | cut -d' ' -f3)
|
|
patch=$(grep "#define OBOE_VERSION_PATCH" include/oboe/Version.h | cut -d' ' -f3)
|
|
version=$major"."$minor"."$patch
|
|
|
|
echo "Building libraries for Oboe version "$version
|
|
./build_all_android.sh
|
|
|
|
mkdir -p build/prefab
|
|
cp -R prefab/* build/prefab
|
|
|
|
ABIS=("x86" "x86_64" "arm64-v8a" "armeabi-v7a")
|
|
|
|
pushd build/prefab
|
|
|
|
# Remove .DS_Store files as these will cause the prefab verification to fail
|
|
find . -name ".DS_Store" -delete
|
|
|
|
# Write the version number into the various metadata files
|
|
mv oboe-VERSION oboe-$version
|
|
mv oboe-VERSION.pom oboe-$version.pom
|
|
sed -i '' -e "s/VERSION/${version}/g" oboe-$version.pom oboe-$version/prefab/prefab.json
|
|
|
|
# Copy the headers
|
|
cp -R ../../include oboe-$version/prefab/modules/oboe/
|
|
|
|
# Copy the libraries
|
|
for abi in ${ABIS[@]}
|
|
do
|
|
echo "Copying the ${abi} library"
|
|
cp -v "../${abi}/liboboe.so" "oboe-${version}/prefab/modules/oboe/libs/android.${abi}/"
|
|
done
|
|
|
|
# Verify the prefab packages
|
|
for abi in ${ABIS[@]}
|
|
do
|
|
|
|
prefab --build-system cmake --platform android --os-version 29 \
|
|
--stl c++_shared --ndk-version 21 --abi ${abi} \
|
|
--output prefab-output-tmp $(pwd)/oboe-${version}/prefab
|
|
|
|
result=$?; if [[ $result == 0 ]]; then
|
|
echo "${abi} package verified"
|
|
else
|
|
echo "${abi} package verification failed"
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
# Zip into an AAR and move into parent dir
|
|
pushd oboe-${version}
|
|
zip -r oboe-${version}.aar . 2>/dev/null;
|
|
zip -Tv oboe-${version}.aar 2>/dev/null;
|
|
|
|
# Verify that the aar contents are correct (see output below to verify)
|
|
result=$?; if [[ $result == 0 ]]; then
|
|
echo "AAR verified"
|
|
else
|
|
echo "AAR verification failed"
|
|
exit 1
|
|
fi
|
|
|
|
mv oboe-${version}.aar ..
|
|
popd
|
|
|
|
# Zip the .aar and .pom files into a maven package
|
|
zip oboe-${version}.zip oboe-${version}.* 2>/dev/null;
|
|
zip -Tv oboe-${version}.zip 2>/dev/null;
|
|
|
|
# Verify that the zip contents are correct (see output below to verify)
|
|
result=$?; if [[ $result == 0 ]]; then
|
|
echo "Zip verified"
|
|
else
|
|
echo "Zip verification failed"
|
|
exit 1
|
|
fi
|
|
popd
|
|
|
|
echo "Prefab zip ready for deployment: ./build/prefab/oboe-${version}.zip"
|