1094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#!/bin/bash -e
2094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
3094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Copyright 2012, The Android Open Source Project
4094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#
5094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Licensed under the Apache License, Version 2.0 (the "License");
6094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# you may not use this file except in compliance with the License.
7094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# You may obtain a copy of the License at
8094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#
9094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#     http://www.apache.org/licenses/LICENSE-2.0
10094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea#
11094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Unless required by applicable law or agreed to in writing, software
12094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# distributed under the License is distributed on an "AS IS" BASIS,
13094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# See the License for the specific language governing permissions and
15094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# limitations under the License.
16094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
17094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Creates and builds projects from a RenderScript testcase and a set of Java templates
18094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
19094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaHELP=no
20094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaVERBOSE=no
21094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaMINSDK=1
22094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaTARGET=1
23094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaNAME=""
24094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaOUT_DIR=
25094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaACTIVITY=""
26094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaPACKAGE=""
27094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaSDK=""
28094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaTESTCASE_PATH=""
29094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaDRIVER=""
30094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
31094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_param ()
32094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{
33094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    if [ -z "$2" ]; then
34094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        echo "ERROR: Missing parameter after option '$1'"
35094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        exit 1
36094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    fi
37094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
38094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
39094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_required_param()
40094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{
41094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    if [ -z "$1" ]; then
42094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        echo "ERROR: Missing required parameter $2"
43094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        exit 1
44094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    fi
45094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
46094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
47094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malearun ()
48094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{
49094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    if [ "$VERBOSE" = "yes" ] ; then
50094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        echo "## COMMAND: $@"
51094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    fi
52094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    $@ 2>&1
53094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
54094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
55094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaprocess_template()
56094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea{
57094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  src=$1
58094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  dest=$2
59094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  sed -e "s/%ACTIVITY%/$3/g" -e "s/%PACKAGE%/$4/g" -e "s/%TESTCASE%/$5/g" -e "s/%MINSDK%/$6/g" < $src > $dest;
60094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  echo "processed $src ==> $dest"
61094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea}
62094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
63094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleawhile [ -n "$1" ]; do
64094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    opt="$1"
65094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    case "$opt" in
66094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --help|-h|-\?)
67094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            HELP=yes
68094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
69094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --verbose|-v)
70094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            VERBOSE=yes
71094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
72094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --sdk)
73094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
74094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            SDK="$2"
75094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
76094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --name)
77094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
78094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            NAME="$2"
79094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
80094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --out)
81094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
82094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            OUT_DIR="$2"
83094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
84094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --activity)
85094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
86094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ACTIVITY="$2"
87094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
88094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --package)
89094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
90094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            PACKAGE="$2"
91094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
92094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --minsdk)
93094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
94094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            MINSDK="$2"
95094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
96094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --target)
97094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
98094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            TARGET="$2"
99094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
100094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --testcase)
101094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
102094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            TESTCASE_PATH="$2"
103094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
104094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        --driver)
105094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            check_param $1 $2
106094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            DRIVER="${2%/}"
107094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
108094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        -*) # unknown options
109094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            echo "ERROR: Unknown option '$opt', use --help for list of valid ones."
110094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            exit 1
111094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        ;;
112094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea        *)  # Simply record parameter
113094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            if [ -z "$PARAMETERS" ] ; then
114094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea                PARAMETERS="$opt"
115094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            else
116094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea                PARAMETERS="$PARAMETERS $opt"
117094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            fi
118094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea            ;;
119094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    esac
120094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    shift
121094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleadone
122094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
123094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ "$HELP" = "yes" ] ; then
124094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "Usage: $PROGNAME [options]"
125094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo ""
126094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "Build a test project from a RS testcase and a java driver template."
127094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo ""
128094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "Required Parameters:"
129094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --sdk                Location of Android SDK installation"
130094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --out <path>         Location of your project directory"
131094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --testcase <name>    The .rs testcase file with which to build the project"
132094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --driver <name>      The java template directory with which to build the project"
133094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo ""
134094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "Optional Parameters (reasonable defaults are used if not specified)"
135094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --activity <name>    Name for your default Activity class"
136094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --package <name>     Package namespace for your project"
137094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --target <name>      Android build target. Execute 'android list targets' to list available targets and their ID's."
138094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --minsdk <name>      minSdkVersion attribute to embed in AndroidManifest.xml of test project."
139094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --help|-h|-?         Print this help"
140094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "    --verbose|-v         Enable verbose mode"
141094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo ""
142094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    exit 0
143094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
144094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
145094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Verify required parameters are non-empty
146094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_required_param "$SDK" "--sdk"
147094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_required_param "$OUT_DIR" "--out"
148094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_required_param "$TESTCASE_PATH" "--testcase"
149094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacheck_required_param "$DRIVER" "--driver"
150094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
151094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Compute name of testcase
152094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaTESTCASE=`basename $TESTCASE_PATH .rs`
153094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
154094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Compute activity, appname, and java package, if not specified via parameters
155094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ -z "$ACTIVITY" ]; then
156094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  ACTIVITY="$TESTCASE";
157094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
158094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
159094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ -z "$NAME" ]; then
160094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  NAME="$ACTIVITY"
161094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
162094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
163094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ -z "$PACKAGE" ]; then
164094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  PACKAGE=com.android.test.rsdebug.$TESTCASE
165094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
166094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
167094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Create the project
168094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malearun $SDK/tools/android create project --target $TARGET --name $NAME --path $OUT_DIR --activity $ACTIVITY --package $PACKAGE
169094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
170094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ $? != 0 ] ; then
171094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "ERROR: Could not create Android project."
172094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "       Check parameters and try again."
173094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    exit 1
174094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
175094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
176094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Compute name of destination source directory
177094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaDEST_SRC_DIR=$OUT_DIR/src/`echo $PACKAGE | sed 's/\./\//g'`
178094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
179094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ ! -d "$DRIVER" ]; then
180094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  # If driver directory does not exist, try to fix it up by searching the
181094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  # testcase directory as well
182094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  DRIVER=`dirname $TESTCASE_PATH`/"$DRIVER"
183094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  if [ ! -d $DRIVER ]; then
184094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "unable to find driver in $DRIVER, please check --driver"
185094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    exit 1;
186094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  fi
187094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
188094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
189094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "Copying driver template from $DRIVER -> $DEST_SRC_DIR"
190094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ ! -d "$DEST_SRC_DIR" ]; then
191094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  echo "Error, destination directory does not exist: $DEST_SRC_DIR";
192094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  exit 1;
193094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
194094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "Performing template substitutions:"
195094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "    %ACTIVITY% ==> $ACTIVITY"
196094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "    %PACKAGE% ==> $PACKAGE"
197094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "    %TESTCASE% ==> $TESTCASE"
198094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaecho "    %MINSDK% ==> $MINSDK"
199094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaSUBST_PARAMS="$ACTIVITY $PACKAGE $TESTCASE $MINSDK"
200094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
201094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# If it exists, use contents of driver-common directory to seed
202094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# the testcase project
203094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaDRIVER_COMMON="`dirname $TESTCASE_PATH`/driver-common"
204094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ -d $DRIVER_COMMON ]; then
205094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  echo "Found common driver directory: $DRIVER_COMMON"
206094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  ls $DRIVER_COMMON/SRC/*.java.template | while read src; do
207094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    SRC_BASENAME=`basename $src .java.template`;
208094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    dest=$DEST_SRC_DIR/`echo $SRC_BASENAME | sed "s/ACTIVITY/$ACTIVITY/g"`.java
209094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    process_template $src $dest $SUBST_PARAMS
210094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  done;
211094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
212094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  # Copy AndroidManifest.xml
213094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  COMMON_MANIFEST="$DRIVER_COMMON/AndroidManifest.xml"
214094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  if [ -e $COMMON_MANIFEST ]; then
215094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    process_template $COMMON_MANIFEST $OUT_DIR/AndroidManifest.xml $SUBST_PARAMS
216094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  fi
217094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
218094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
219094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Copy Java source to project directory.
220094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleals $DRIVER/*.java.template | while read src; do
221094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  SRC_BASENAME=`basename $src .java.template`
222094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  dest=$DEST_SRC_DIR/`echo $SRC_BASENAME | sed "s/ACTIVITY/$ACTIVITY/g"`.java
223094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  process_template $src $dest $SUBST_PARAMS
224094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleadone;
225094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
226094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Copy AndroidManifest.xml override, if it exists
227094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaOVERRIDE_MANIFEST="$DRIVER/AndroidManifest.xml"
228094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ -e $OVERRIDE_MANIFEST ]; then
229094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea  process_template $OVERRIDE_MANIFEST $OUT_DIR/AndroidManifest.xml $SUBST_PARAMS
230094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
231094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
232094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Copy RS testcase to project directory.
233094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel MaleaTESTCASE_DEST=$DEST_SRC_DIR/`basename $TESTCASE_PATH`
234094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaprocess_template $TESTCASE_PATH $TESTCASE_DEST $SUBST_PARAMS
235094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
236094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea# Buid signed and aligned apk
237094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleacd $OUT_DIR
238094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malearun ant clean debug install
239094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
240094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaif [ $? != 0 ] ; then
241094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    echo "ERROR: Apk build and install failed"
242094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea    exit 1
243094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleafi
244094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Malea
245094881f513ab366f7ffd0b2c7778ab50281ca59eDaniel Maleaexit 0
246