Skip to content

Instantly share code, notes, and snippets.

@szymonrychu
Last active August 29, 2015 14:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save szymonrychu/54bb53638742759b8f9f to your computer and use it in GitHub Desktop.
Save szymonrychu/54bb53638742759b8f9f to your computer and use it in GitHub Desktop.
Launcher for Android sdk+nkd+opencv+workspace in specified folder
#!/bin/bash
# user can set this path:
#
if [ -z $1 ]; then
export ANDROID_HOME=`dirname $0`
else
export ANDROID_HOME=$1
fi
echo "[`date`] ANDROID_HOME=$ANDROID_HOME" > $ANDROID_HOME/log.txt
# rest of the script:
#
echo "paths"
export WORKSPACE=$ANDROID_HOME/android-workspace
export SDK_HOME=$ANDROID_HOME/android-sdk-linux
export NDKROOT=$ANDROID_HOME/android-ndk-r9d
export OPENCV_HOME=$ANDROID_HOME/OpenCV-2.4.9-android
export PATH=$PATH:$ANDROID_HOME/eclipse:$SDK_HOME/platform-tools
echo "[`date`] WORKSPACE=$WORKSPACE" >> $ANDROID_HOME/log.txt
echo "[`date`] SDK_HOME=$SDK_HOME" >> $ANDROID_HOME/log.txt
echo "[`date`] NDKROOT=$NDKROOT" >> $ANDROID_HOME/log.txt
echo "[`date`] OPENCV_HOME=$OPENCV_HOME" >> $ANDROID_HOME/log.txt
echo "[`date`] PATH=$PATH" >> $ANDROID_HOME/log.txt
# reconfiguring eclipse to use our workspace
#
echo "android sdk"
ADT_CONF_DIR=$WORKSPACE/.metadata/.plugins/org.eclipse.core.runtime/.settings/com.android.ide.eclipse.adt.prefs
ADT_CONFIG=`cat $ADT_CONF_DIR`
rm $ADT_CONF_DIR
touch $ADT_CONF_DIR
echo "[`date`] reconfiguring eclipse AndroidSDK location:" >> $ANDROID_HOME/log.txt
while read LINE; do
if [[ $LINE == com.android.ide.eclipse.adt.sdk=* ]]; then
echo "com.android.ide.eclipse.adt.sdk=$SDK_HOME" >> $ADT_CONF_DIR
echo "com.android.ide.eclipse.adt.sdk=$SDK_HOME" >> $ANDROID_HOME/log.txt
else
echo "$LINE" >> $ADT_CONF_DIR
echo "$LINE" >> $ANDROID_HOME/log.txt
fi
done <<< "$ADT_CONFIG"
echo "[`date`] done!" >> $ANDROID_HOME/log.txt
# run eclipse in background
#
echo "includes"
echo "[`date`] reconfiguring includes in all JNI c++ Android projects location:" >> $ANDROID_HOME/log.txt
INCLUDES=`cat <<EOF
i,$OPENCV_HOME/sdk/native/jni/include
i,$NDKROOT/toolchains/arm-linux-androideabi-4.8/prebuilt/linux-x86_64/lib/gcc/arm-linux-androideabi/4.8/include
EOF`
for PROJ in `ls $WORKSPACE/`; do
INCLUDES_CONF_DIR="$WORKSPACE/.metadata/.plugins/com.android.ide.eclipse.ndk/$PROJ.pathInfo"
if [ -f $INCLUDES_CONF_DIR ]; then
if [ ! -f $WORKSPACE/.metadata/.plugins/com.android.ide.eclipse.ndk/$PROJ.edited ]; then
FLAG="false"
DONE=""
INCLUDES_CONF=`cat $INCLUDES_CONF_DIR`
rm $INCLUDES_CONF_DIR
touch $INCLUDES_CONF_DIR
while read LINE; do
if [[ $LINE == i,* ]]; then
echo "$LINE" >> $INCLUDES_CONF_DIR
FLAG=""
elif [[ -z $FLAG ]] && [[ -z $DONE ]]; then
echo "$INCLUDES" >> $INCLUDES_CONF_DIR
echo "$INCLUDES" >> $ANDROID_HOME/log.txt
echo "$LINE" >> $INCLUDES_CONF_DIR
echo "$LINE" >> $ANDROID_HOME/log.txt
DONE="false"
else
echo "$LINE" >> $INCLUDES_CONF_DIR
echo "$LINE" >> $ANDROID_HOME/log.txt
fi
done <<< "$INCLUDES_CONF"
touch $WORKSPACE/.metadata/.plugins/com.android.ide.eclipse.ndk/$PROJ.edited
fi
fi
done
echo "[`date`] done!" >> $ANDROID_HOME/log.txt
echo "workspace"
echo "[`date`] running eclise:" >> $ANDROID_HOME/log.txt
exec $ANDROID_HOME/eclipse/eclipse -data $WORKSPACE -vm `which java` -Xmx1024m -Xms256m -XX:MaxPermSize=256m -vmargs >> $ANDROID_HOME/log.txt 2>&1
# run our shell
#
read -p
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment