Skip to content

Commit

Permalink
added android command-line mode
Browse files Browse the repository at this point in the history
  • Loading branch information
Ostap Andrusiv committed Apr 21, 2013
1 parent 61db10f commit 94d1887
Show file tree
Hide file tree
Showing 3 changed files with 456 additions and 2 deletions.
117 changes: 117 additions & 0 deletions processing-android
@@ -0,0 +1,117 @@
#!/bin/sh

# This script runs Processing, using the JDK in the Processing
# installation directory if possible.

# If no JDK was installed with Processing then the script tries to use
# the preferred Java version of the machine, i.e. what is executed
# by the "java" console command. This must be a Sun JDK (for details, see
# http://processing.org/reference/environment/platforms.html#java).

# In order to run Processing with an already installed JDK that is *not*
# the preferred Java version of the machine, create a symlink named "java"
# in the Processing installation directory that points to the JDK home
# directory.

# Thanks to Ferdinand Kasper for this build script. [fry]


# JARs required from JDK (anywhere in/below the JDK home directory)
JDKLIBS="rt.jar tools.jar"

# Set this to non-zero for logging
LOGGING=0

# Logs name and value of a variable to stdout if LOGGING is non-zero.
# Expects the variable name as parameter $1.
log() {
if [ $LOGGING -ne 0 ]; then
eval echo $1=\$$1
fi
}


# Locates JDKLIBS in a directory and its subdirectories and saves their
# absolute paths as list to JDKCP. Expects the directory as parameter $1.
# Sets SUCCESS to 1 if all libraries were found, to 0 otherwise.
make_jdkcp() {
# Back out of JRE directory if apparently located inside a JDK
if [ -f "$1/../bin/java" ]; then
DIR="$1/.."
else
DIR="$1"
fi
log DIR

JDKCP=
SUCCESS=1

# Locate JDKLIBS
for L in $JDKLIBS; do
# Locate only the first library with a matching name
LIB=`find "$DIR" -name $L 2>/dev/null | head -n 1`
log L
log LIB

# Library found?
if [ -n "$LIB" ]; then
JDKCP="$JDKCP"${JDKCP:+:}"$LIB"
else
SUCCESS=0
fi
done

log JDKCP
}


# Get absolute path of directory where this script is located
APPDIR=`readlink -f "$0"`
APPDIR=`dirname "$APPDIR"`
log APPDIR

# Try using a local JDK from the same directory as this script
JDKDIR=`readlink -f "$APPDIR/java"`
make_jdkcp "$JDKDIR"
log SUCCESS

# Local JDK found?
if [ $SUCCESS -ne 1 ]; then
# No, try using the preferred system JRE/JDK (if any)
JDKDIR=`which java` && JDKDIR=`readlink -e "$JDKDIR"` && JDKDIR=`dirname "$JDKDIR"`/..
make_jdkcp "$JDKDIR"
log SUCCESS
fi

# Add all required JARs to CLASSPATH
CLASSPATH="$CLASSPATH"${CLASSPATH:+:}"$JDKCP"
for LIB in "$APPDIR"/lib/*.jar; do
CLASSPATH="$CLASSPATH"${CLASSPATH:+:}"$LIB"
done
for LIB in "$APPDIR"/core/library/*.jar; do
CLASSPATH="$CLASSPATH"${CLASSPATH:+:}"$LIB"
done
export CLASSPATH
log CLASSPATH

# Make all JDK binaries available in PATH
export PATH="$JDKDIR/bin":"$PATH"
log PATH

current_name=`basename $0`
cmd_name='processing-android'

if [ $current_name = $cmd_name ]
then
java processing.mode.android.Commander "$@"
else
# Start Processing in the same directory as this script
if [ "$1" ]; then
SKETCH=`readlink -f $1`
else
SKETCH=
fi
cd "$APPDIR"

java processing.app.Base "$SKETCH" &
fi
4 changes: 2 additions & 2 deletions src/processing/mode/android/AndroidBuild.java
Expand Up @@ -496,7 +496,7 @@ void antBuildProblems(String outPile, String errPile) throws SketchException {




String getPathForAPK() { String getPathForAPK() {
String suffix = target.equals("release") ? "unsigned" : "debug"; String suffix = target.equals("release") ? "release-unsigned" : "debug";
String apkName = "bin/" + sketch.getName() + "-" + suffix + ".apk"; String apkName = "bin/" + sketch.getName() + "-" + suffix + ".apk";
final File apkFile = new File(tmpFolder, apkName); final File apkFile = new File(tmpFolder, apkName);
if (!apkFile.exists()) { if (!apkFile.exists()) {
Expand Down Expand Up @@ -801,4 +801,4 @@ public void cleanup() {
//rm(tempBuildFolder); //rm(tempBuildFolder);
tmpFolder.deleteOnExit(); tmpFolder.deleteOnExit();
} }
} }

0 comments on commit 94d1887

Please sign in to comment.