etlegacy-libs/sdl2/build-scripts/androidbuild.sh

101 lines
2.4 KiB
Bash
Raw Normal View History

2014-08-07 20:22:03 +00:00
#!/bin/bash
SOURCES=()
MKSOURCES=""
CURDIR=`pwd -P`
# Fetch sources
if [[ $# -ge 2 ]]; then
for src in ${@:2}
do
SOURCES+=($src)
MKSOURCES="$MKSOURCES $(basename $src)"
done
else
if [ -n "$1" ]; then
while read src
do
SOURCES+=($src)
MKSOURCES="$MKSOURCES $(basename $src)"
done
fi
fi
if [ -z "$1" ] || [ -z "$SOURCES" ]; then
echo "Usage: androidbuild.sh com.yourcompany.yourapp < sources.list"
echo "Usage: androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c"
echo "To copy SDL source instead of symlinking: COPYSOURCE=1 androidbuild.sh ... "
exit 1
fi
SDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )"
2018-03-20 13:33:02 +00:00
if [ -z "$ANDROID_HOME" ];then
echo "Please set the ANDROID_HOME directory to the path of the Android SDK"
2014-08-07 20:22:03 +00:00
exit 1
fi
2018-03-20 13:33:02 +00:00
if [ ! -d "$ANDROID_HOME/ndk-bundle" -a -z "$ANDROID_NDK_HOME" ]; then
echo "Please set the ANDROID_NDK_HOME directory to the path of the Android NDK"
2014-08-07 20:22:03 +00:00
exit 1
fi
APP="$1"
APPARR=(${APP//./ })
BUILDPATH="$SDLPATH/build/$APP"
# Start Building
rm -rf $BUILDPATH
mkdir -p $BUILDPATH
cp -r $SDLPATH/android-project/* $BUILDPATH
# Copy SDL sources
2018-03-20 13:33:02 +00:00
mkdir -p $BUILDPATH/app/jni/SDL
2014-08-07 20:22:03 +00:00
if [ -z "$COPYSOURCE" ]; then
2018-03-20 13:33:02 +00:00
ln -s $SDLPATH/src $BUILDPATH/app/jni/SDL
ln -s $SDLPATH/include $BUILDPATH/app/jni/SDL
2014-08-07 20:22:03 +00:00
else
2018-03-20 13:33:02 +00:00
cp -r $SDLPATH/src $BUILDPATH/app/jni/SDL
cp -r $SDLPATH/include $BUILDPATH/app/jni/SDL
2014-08-07 20:22:03 +00:00
fi
2018-03-20 13:33:02 +00:00
cp -r $SDLPATH/Android.mk $BUILDPATH/app/jni/SDL
sed -i -e "s|YourSourceHere.c|$MKSOURCES|g" $BUILDPATH/app/jni/src/Android.mk
sed -i -e "s|org\.libsdl\.app|$APP|g" $BUILDPATH/app/build.gradle
sed -i -e "s|org\.libsdl\.app|$APP|g" $BUILDPATH/app/src/main/AndroidManifest.xml
2014-08-07 20:22:03 +00:00
# Copy user sources
for src in "${SOURCES[@]}"
do
2018-03-20 13:33:02 +00:00
cp $src $BUILDPATH/app/jni/src
2014-08-07 20:22:03 +00:00
done
# Create an inherited Activity
2018-03-20 13:33:02 +00:00
cd $BUILDPATH/app/src/main/java
2014-08-07 20:22:03 +00:00
for folder in "${APPARR[@]}"
do
mkdir -p $folder
cd $folder
done
ACTIVITY="${folder}Activity"
2018-03-20 13:33:02 +00:00
sed -i -e "s|\"SDLActivity\"|\"$ACTIVITY\"|g" $BUILDPATH/app/src/main/AndroidManifest.xml
2014-08-07 20:22:03 +00:00
# Fill in a default Activity
2018-03-20 13:33:02 +00:00
cat >"$ACTIVITY.java" <<__EOF__
package $APP;
2014-08-07 20:22:03 +00:00
2018-03-20 13:33:02 +00:00
import org.libsdl.app.SDLActivity;
2014-08-07 20:22:03 +00:00
2018-03-20 13:33:02 +00:00
public class $ACTIVITY extends SDLActivity
{
}
__EOF__
2014-08-07 20:22:03 +00:00
2018-03-20 13:33:02 +00:00
# Update project and build
echo "To build and install to a device for testing, run the following:"
echo "cd $BUILDPATH"
echo "./gradlew installDebug"