-
Notifications
You must be signed in to change notification settings - Fork 572
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
1 changed file
with
90 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#!/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" |