| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 | #!/bin/bashSOURCES=()MKSOURCES=""CURDIR=`pwd -P`# Fetch sourcesif [[ $# -ge 2 ]]; then    for src in ${@:2}    do        SOURCES+=($src)        MKSOURCES="$MKSOURCES $(basename $src)"    doneelse    if [ -n "$1" ]; then        while read src        do            SOURCES+=($src)            MKSOURCES="$MKSOURCES $(basename $src)"        done    fifiif [ -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 1fiSDLPATH="$( cd "$(dirname "$0")/.." ; pwd -P )"if [ -z "$ANDROID_HOME" ];then    echo "Please set the ANDROID_HOME directory to the path of the Android SDK"    exit 1fiif [ ! -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"    exit 1fiAPP="$1"APPARR=(${APP//./ })BUILDPATH="$SDLPATH/build/$APP"# Start Buildingrm -rf $BUILDPATHmkdir -p $BUILDPATHcp -r $SDLPATH/android-project/* $BUILDPATH# Copy SDL sourcesmkdir -p $BUILDPATH/app/jni/SDLif [ -z "$COPYSOURCE" ]; then    ln -s $SDLPATH/src $BUILDPATH/app/jni/SDL    ln -s $SDLPATH/include $BUILDPATH/app/jni/SDLelse    cp -r $SDLPATH/src $BUILDPATH/app/jni/SDL    cp -r $SDLPATH/include $BUILDPATH/app/jni/SDLficp -r $SDLPATH/Android.mk $BUILDPATH/app/jni/SDLsed -i -e "s|YourSourceHere.c|$MKSOURCES|g" $BUILDPATH/app/jni/src/Android.mksed -i -e "s|org\.libsdl\.app|$APP|g" $BUILDPATH/app/build.gradlesed -i -e "s|org\.libsdl\.app|$APP|g" $BUILDPATH/app/src/main/AndroidManifest.xml# Copy user sourcesfor src in "${SOURCES[@]}"do    cp $src $BUILDPATH/app/jni/srcdone# Create an inherited Activitycd $BUILDPATH/app/src/main/javafor folder in "${APPARR[@]}"do    mkdir -p $folder    cd $folderdone# Uppercase the first char in the activity class name because it's JavaACTIVITY="$(echo $folder | awk '{$1=toupper(substr($1,0,1))substr($1,2)}1')Activity"sed -i -e "s|\"SDLActivity\"|\"$ACTIVITY\"|g" $BUILDPATH/app/src/main/AndroidManifest.xml# Fill in a default Activitycat >"$ACTIVITY.java" <<__EOF__package $APP;import org.libsdl.app.SDLActivity;public class $ACTIVITY extends SDLActivity{}__EOF__# Update project and buildecho "To build and install to a device for testing, run the following:"echo "cd $BUILDPATH"echo "./gradlew installDebug"
 |