Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(323)

Side by Side Diff: platform_tools/android/bin/android_setup.sh

Issue 223613004: hack hack hack on android scripts (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: moar Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/bin/bash 1 #!/bin/bash
2 # 2 #
3 # android_setup.sh: Sets environment variables used by other Android scripts. 3 # android_setup.sh: Sets environment variables used by other Android scripts.
4 4
5 # Parse the arguments for a DEVICE_ID. 5 set -e
djsollen 2014/04/03 17:24:23 why set it here and in android_make?
mtklein 2014/04/03 17:30:17 android_make's set -e covers this when sourced fro
djsollen 2014/04/03 17:54:33 So I see why we would want this here so that every
mtklein 2014/04/03 17:59:46 For the build. There's no point running ninja if
6 DEVICE_ID="" 6
7 DEVICE_SERIAL="" 7 BUILDTYPE=${BUILDTYPE-Debug}
8
8 while (( "$#" )); do 9 while (( "$#" )); do
9 if [[ $(echo "$1" | grep "^-d$") != "" ]]; 10 if [[ "$1" == "-d" ]]; then
10 then
11 DEVICE_ID=$2 11 DEVICE_ID=$2
12 shift 12 shift
13 elif [[ "$1" == "-s" ]]; 13 elif [[ "$1" == "-s" ]]; then
14 then
15 if [[ $# -lt 2 ]];
16 then
17 echo "ERROR: missing serial number"
18 exit 1;
19 fi
20 DEVICE_SERIAL="-s $2" 14 DEVICE_SERIAL="-s $2"
21 shift 15 shift
22 elif [[ $(echo "$1" | grep "^BUILDTYPE=") != "" ]]; 16 elif [[ "$1" == "-t" ]]; then
23 then 17 BUILDTYPE=$2
24 BUILDTYPE=${1##BUILDTYPE=} 18 shift
25 else 19 else
26 APP_ARGS=("${APP_ARGS[@]}" "${1}") 20 APP_ARGS=("${APP_ARGS[@]}" "${1}")
27 fi 21 fi
28
29 shift 22 shift
30 done 23 done
31 24
32 function verbose { 25 function verbose {
33 if [[ -n $SKIA_ANDROID_VERBOSE_SETUP ]]; then 26 if [[ -n $VERBOSE ]]; then
34 echo $@ 27 echo $@
35 fi 28 fi
36 } 29 }
37 30
38 function exportVar { 31 function exportVar {
39 NAME=$1 32 NAME=$1
40 VALUE=$2 33 VALUE=$2
41 verbose export $NAME=\"$VALUE\" 34 verbose export $NAME=\"$VALUE\"
42 export $NAME="$VALUE" 35 export $NAME="$VALUE"
43 } 36 }
44 37
45 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" 38 function absPath {
39 (cd $1; pwd)
40 }
46 41
47 # A valid Android SDK installation is required to build the sample app. 42 SCRIPT_DIR="$(dirname "$BASH_SOURCE[0]}")"
43
48 if [ -z "$ANDROID_SDK_ROOT" ]; then 44 if [ -z "$ANDROID_SDK_ROOT" ]; then
49 ANDROID_TOOL=$(which android 2>/dev/null) 45 if ANDROID_SDK_ROOT="$(dirname $(which android))/.."; then
50 if [ -z "$ANDROID_TOOL" ]; then 46 exportVar ANDROID_SDK_ROOT $ANDROID_SDK_ROOT
51 echo "ERROR: Please define ANDROID_SDK_ROOT in your environment to point" 47 else
52 echo " to a valid Android SDK installation." 48 echo "No ANDROID_SDK_ROOT set and can't auto detect it from location of and roid binary."
53 exit 1 49 exit 1
54 fi 50 fi
55 ANDROID_SDK_ROOT=$(cd $(dirname "$ANDROID_TOOL")/.. && pwd)
56 exportVar ANDROID_SDK_ROOT "$ANDROID_SDK_ROOT"
57 fi
58
59 # ant is required to be installed on your system and in your PATH
60 which ant &> /dev/null
61 if [[ "$?" != "0" ]]; then
62 echo "ERROR: Unable to find ant. Please install it before proceeding."
63 exit 1
64 fi 51 fi
65 52
66 # check to see that gclient sync ran successfully 53 # check to see that gclient sync ran successfully
67 THIRD_PARTY_EXTERNAL_DIR=${SCRIPT_DIR}/../third_party/externals 54 THIRD_PARTY_EXTERNAL_DIR=${SCRIPT_DIR}/../third_party/externals
68 if [ ! -d "$THIRD_PARTY_EXTERNAL_DIR" ]; then 55 if [ ! -d "$THIRD_PARTY_EXTERNAL_DIR" ]; then
69 echo "" 56 echo ""
70 echo "ERROR: Unable to find the required third_party dependencies needed to build." 57 echo "ERROR: Unable to find the required third_party dependencies needed to build."
71 echo " To fix this add the following line to your .gclient file an d run 'gclient sync'" 58 echo " To fix this add the following line to your .gclient file an d run 'gclient sync'"
72 echo " target_os = ['android']" 59 echo " target_os = ['android']"
73 echo "" 60 echo ""
74 exit 1; 61 exit 1;
75 fi 62 fi
76 63
77 # Helper function to determine and download the toolchain that we will be using. 64 # Helper function to determine and download the toolchain that we will be using.
78 setup_toolchain() { 65 setup_toolchain() {
79 API_LEVEL=14 66 API_LEVEL=14
80 67 NDK_REV=${NDK_REV-8e}
81 if [[ -z "$NDK_REV" ]]; 68 ANDROID_ARCH=${ANDROID_ARCH-arm}
82 then
83 NDK_REV="8e"
84 fi
85
86 if [[ -z "$ANDROID_ARCH" ]];
87 then
88 ANDROID_ARCH="arm"
89 fi
90 69
91 TOOLCHAIN_DIR=${SCRIPT_DIR}/../toolchains 70 TOOLCHAIN_DIR=${SCRIPT_DIR}/../toolchains
92 if [ $(uname) == "Linux" ]; then 71 if [ $(uname) == "Darwin" ]; then
93 verbose "Using Linux toolchain."
94 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL
95 elif [ $(uname) == "Darwin" ]; then
96 verbose "Using Mac toolchain." 72 verbose "Using Mac toolchain."
97 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-mac_v$API_LEVEL 73 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-mac_v$API_LEVEL
98 else 74 else
99 verbose "Could not automatically determine toolchain! Defaulting to Linux." 75 verbose "Using Linux toolchain."
100 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL 76 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL
101 fi 77 fi
102 exportVar ANDROID_TOOLCHAIN ${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}/bin 78 exportVar ANDROID_TOOLCHAIN $(absPath ${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}/bin)
103 79
104 # if the toolchain doesn't exist on your machine then we need to fetch it 80 # if the toolchain doesn't exist on your machine then we need to fetch it
105 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then 81 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
106 # create the toolchain directory if needed 82 mkdir -p $TOOLCHAIN_DIR
107 if [ ! -d "$TOOLCHAIN_DIR" ]; then
108 mkdir $TOOLCHAIN_DIR
109 fi
110 # enter the toolchain directory then download, unpack, and remove the tarbal l 83 # enter the toolchain directory then download, unpack, and remove the tarbal l
111 pushd $TOOLCHAIN_DIR 84 pushd $TOOLCHAIN_DIR
112 TARBALL=ndk-r$NDK_REV-v$API_LEVEL.tgz 85 TARBALL=ndk-r$NDK_REV-v$API_LEVEL.tgz
113 86
114 echo "Downloading $TARBALL ..." 87 ${SCRIPT_DIR}/download_toolchains.py \
115 ${SCRIPT_DIR}/download_toolchains.py http://chromium-skia-gm.commondatastora ge.googleapis.com/android-toolchains/$TARBALL $TOOLCHAIN_DIR/$TARBALL 88 http://chromium-skia-gm.commondatastorage.googleapis.com/android-toolcha ins/$TARBALL \
116 if [[ "$?" != "0" ]]; then 89 $TOOLCHAIN_DIR/$TARBALL
117 echo "ERROR: Unable to download toolchain $TARBALL."
118 exit 1
119 fi
120
121 echo "Untarring $TOOLCHAIN_TYPE from $TARBALL."
122 tar -xzf $TARBALL $TOOLCHAIN_TYPE 90 tar -xzf $TARBALL $TOOLCHAIN_TYPE
123 echo "Removing $TARBALL"
124 rm $TARBALL 91 rm $TARBALL
125 popd 92 popd
126 fi 93 fi
127 94
128 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then 95 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then
129 echo "ERROR: unable to download/setup the required toolchain (${TOOLCHAIN_TY PE})" 96 echo "ERROR: unable to download/setup the required toolchain (${TOOLCHAIN_TY PE})"
130 return 1; 97 return 1;
131 fi 98 fi
132 99
133 verbose "The build is targeting NDK API level $API_LEVEL for use on Android 4. 0 (NDK Revision $NDK_REV) and above" 100 verbose "Targeting NDK API $API_LEVEL for use on Android 4.0 (NDK Revision $ND K_REV) and above"
134 101
135 LS="/bin/ls" # Use directly to avoid any 'ls' alias that might be defined. 102 GCC=$(command ls $ANDROID_TOOLCHAIN/*-gcc | head -n1)
136 GCC=$($LS $ANDROID_TOOLCHAIN/*-gcc | head -n1)
137 if [ -z "$GCC" ]; then 103 if [ -z "$GCC" ]; then
138 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN" 104 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN"
139 return 1 105 return 1
140 fi 106 fi
141 107
142 # Remove the '-gcc' at the end to get the full toolchain prefix 108 # Remove the '-gcc' at the end to get the full toolchain prefix
143 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc} 109 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc}
144 110
145 if [[ -z "$ANDROID_MAKE_CCACHE" ]]; then 111 CCACHE=${ANDROID_MAKE_CCACHE-$(which ccache || true)}
146 export CC="$ANDROID_TOOLCHAIN_PREFIX-gcc" 112
147 export CXX="$ANDROID_TOOLCHAIN_PREFIX-g++" 113 exportVar CC "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
148 export LINK="$ANDROID_TOOLCHAIN_PREFIX-gcc" 114 exportVar CXX "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++"
149 else 115 exportVar LINK "$CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc"
150 export CC="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" 116
151 export CXX="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++" 117 exportVar AR "$ANDROID_TOOLCHAIN_PREFIX-ar"
152 export LINK="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" 118 exportVar RANLIB "$ANDROID_TOOLCHAIN_PREFIX-ranlib"
153 fi 119 exportVar OBJCOPY "$ANDROID_TOOLCHAIN_PREFIX-objcopy"
154 export AR="$ANDROID_TOOLCHAIN_PREFIX-ar" 120 exportVar STRIP "$ANDROID_TOOLCHAIN_PREFIX-strip"
155 export RANLIB="$ANDROID_TOOLCHAIN_PREFIX-ranlib" 121
156 export OBJCOPY="$ANDROID_TOOLCHAIN_PREFIX-objcopy" 122 # Create symlinks for nm & readelf and add them to the path so that the ninja
157 export STRIP="$ANDROID_TOOLCHAIN_PREFIX-strip" 123 # build uses them instead of attempting to use the one on the system.
158 124 # This is required to build using ninja on a Mac.
159 # create symlinks for nm & readelf and add them to the path so that the ninja
160 # build uses them instead of attempting to use the one on the system
161 ln -sf $ANDROID_TOOLCHAIN_PREFIX-nm $ANDROID_TOOLCHAIN/nm 125 ln -sf $ANDROID_TOOLCHAIN_PREFIX-nm $ANDROID_TOOLCHAIN/nm
162 ln -sf $ANDROID_TOOLCHAIN_PREFIX-readelf $ANDROID_TOOLCHAIN/readelf 126 ln -sf $ANDROID_TOOLCHAIN_PREFIX-readelf $ANDROID_TOOLCHAIN/readelf
163 export PATH=$ANDROID_TOOLCHAIN:$PATH 127 exportVar PATH $ANDROID_TOOLCHAIN:$PATH
164
165 } 128 }
166 129
167 # Helper function to configure the GYP defines to the appropriate values 130 # Helper function to configure the GYP defines to the appropriate values
168 # based on the target device. 131 # based on the target device.
169 setup_device() { 132 setup_device() {
170 DEFINES="OS=android" 133 DEFINES="OS=android"
171 DEFINES="${DEFINES} host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/' )" 134 DEFINES="${DEFINES} host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/' )"
172 DEFINES="${DEFINES} skia_os=android" 135 DEFINES="${DEFINES} skia_os=android"
173 DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.." 136 DEFINES="${DEFINES} android_base=$(absPath ${SCRIPT_DIR}/..)"
174 if [[ "$GYP_DEFINES" != *skia_shared_lib=* ]]; then 137 if [[ "$GYP_DEFINES" != *skia_shared_lib=* ]]; then
175 DEFINES="${DEFINES} skia_shared_lib=1" 138 DEFINES="${DEFINES} skia_shared_lib=1"
176 fi 139 fi
177 140
178 # Setup the build variation depending on the target device 141 # Setup the build variation depending on the target device
179 TARGET_DEVICE="$1" 142 TARGET_DEVICE="$1"
180 143
181 if [ -z "$TARGET_DEVICE" ]; then 144 if [ -z "$TARGET_DEVICE" ]; then
182 if [ -f .android_config ]; then 145 if [ -f .android_config ]; then
183 TARGET_DEVICE=$(cat .android_config) 146 TARGET_DEVICE=$(cat .android_config)
184 verbose "INFO: no target device was specified so using the device (${TARGE T_DEVICE}) from the most recent build" 147 verbose "no target device (-d), using ${TARGET_DEVICE} from most recent bu ild"
185 else 148 else
186 TARGET_DEVICE="arm_v7_thumb" 149 TARGET_DEVICE="arm_v7_thumb"
187 verbose "INFO: no target device type was specified so using the default '$ {TARGET_DEVICE}'" 150 verbose "no target device (-d), using ${TARGET_DEVICE}"
188 fi 151 fi
189 fi 152 fi
190 153
191 case $TARGET_DEVICE in 154 case $TARGET_DEVICE in
192 nexus_s) 155 nexus_s)
193 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1" 156 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1"
194 DEFINES="${DEFINES} skia_resource_cache_mb_limit=24" 157 DEFINES="${DEFINES} skia_resource_cache_mb_limit=24"
195 ANDROID_ARCH="arm" 158 ANDROID_ARCH="arm"
196 ;; 159 ;;
197 nexus_4 | nexus_7 | nexus_10) 160 nexus_4 | nexus_7 | nexus_10)
198 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1" 161 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1"
199 ANDROID_ARCH="arm" 162 ANDROID_ARCH="arm"
200 ;; 163 ;;
201 xoom) 164 xoom)
202 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_version=7 arm_thumb= 1" 165 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_version=7 arm_thumb= 1"
203 ANDROID_ARCH="arm" 166 ANDROID_ARCH="arm"
204 ;; 167 ;;
205 galaxy_nexus) 168 galaxy_nexus)
206 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1" 169 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1"
207 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 170 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32"
208 ANDROID_ARCH="arm" 171 ANDROID_ARCH="arm"
209 ;; 172 ;;
210 intel_rhb) 173 intel_rhb | razr_i | x86)
211 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" 174 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32"
212 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 175 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32"
213 ANDROID_ARCH="x86" 176 ANDROID_ARCH="x86"
214 ;;
215 razr_i)
216 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32"
217 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32"
218 ANDROID_ARCH="x86"
219 ;; 177 ;;
220 arm_v7) 178 arm_v7)
221 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a rm_thumb=0" 179 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a rm_thumb=0"
222 ANDROID_ARCH="arm" 180 ANDROID_ARCH="arm"
223 ;; 181 ;;
224 arm_v7_thumb | nvidia_logan) 182 arm_v7_thumb | nvidia_logan)
225 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a rm_thumb=1" 183 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a rm_thumb=1"
226 ANDROID_ARCH="arm" 184 ANDROID_ARCH="arm"
227 ;; 185 ;;
228 arm) 186 arm)
229 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=0" 187 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=0"
230 ANDROID_ARCH="arm" 188 ANDROID_ARCH="arm"
231 ;; 189 ;;
232 arm_thumb) 190 arm_thumb)
233 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=1" 191 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=1"
234 ANDROID_ARCH="arm" 192 ANDROID_ARCH="arm"
235 ;; 193 ;;
236 mips) 194 mips)
237 DEFINES="${DEFINES} skia_arch_type=mips skia_arch_width=32" 195 DEFINES="${DEFINES} skia_arch_type=mips skia_arch_width=32"
238 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 196 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32"
239 ANDROID_ARCH="mips" 197 ANDROID_ARCH="mips"
240 ;; 198 ;;
241 x86)
242 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32"
243 DEFINES="${DEFINES} skia_resource_cache_mb_limit=32"
244 ANDROID_ARCH="x86"
245 ;;
246 *) 199 *)
247 echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " 200 echo "ERROR: unknown device $TARGET_DEVICE"
248 echo "nexus_[s,4,7,10] xoom galaxy_nexus razr_i arm arm_thumb arm_v7 arm_v 7_thumb x86" 201 exit 1
249 return 1;
250 ;; 202 ;;
251 esac 203 esac
252 204
253 verbose "The build is targeting the device: $TARGET_DEVICE" 205 verbose "The build is targeting the device: $TARGET_DEVICE"
254 export DEVICE_ID="$TARGET_DEVICE" 206 exportVar DEVICE_ID $TARGET_DEVICE
255 207
256 # Set up the toolchain.
257 setup_toolchain 208 setup_toolchain
258 if [[ "$?" != "0" ]]; then 209
259 return 1
260 fi
261 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" 210 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}"
262 211
263 exportVar GYP_DEFINES "$DEFINES $GYP_DEFINES" 212 exportVar GYP_DEFINES "$DEFINES $GYP_DEFINES"
264 exportVar SKIA_OUT "out/config/android-${TARGET_DEVICE}" 213 exportVar SKIA_OUT "out/config/android-${TARGET_DEVICE}"
265 } 214 }
266 215
267 # adb_pull_if_needed(android_src, host_dst) 216 # adb_pull_if_needed(android_src, host_dst)
268 adb_pull_if_needed() { 217 adb_pull_if_needed() {
269 218
270 # get adb location 219 # get adb location
271 source $SCRIPT_DIR/utils/setup_adb.sh 220 source $SCRIPT_DIR/utils/setup_adb.sh
272 221
273 # read input params 222 # read input params
274 ANDROID_SRC="$1" 223 ANDROID_SRC="$1"
275 HOST_DST="$2" 224 HOST_DST="$2"
276 225
277 if [ -d $HOST_DST ]; 226 if [ -d $HOST_DST ];
278 then 227 then
279 HOST_DST="${HOST_DST}/$(basename ${ANDROID_SRC})" 228 HOST_DST="${HOST_DST}/$(basename ${ANDROID_SRC})"
280 fi 229 fi
281 230
282 echo "HOST: $HOST_DST"
283 231
284 if [ -f $HOST_DST ]; 232 if [ -f $HOST_DST ];
285 then 233 then
286 #get the MD5 for dst and src 234 #get the MD5 for dst and src
287 ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_SRC` 235 ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_SRC`
288 if [ $(uname) == "Darwin" ]; then 236 if [ $(uname) == "Darwin" ]; then
289 HOST_MD5=`md5 -q $HOST_DST` 237 HOST_MD5=`md5 -q $HOST_DST`
290 else 238 else
291 HOST_MD5=`md5sum $HOST_DST` 239 HOST_MD5=`md5sum $HOST_DST`
292 fi 240 fi
293 241
294 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; 242 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then
295 then 243 echo -n "$HOST_DST "
296 $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST 244 $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST
297 # else
298 # echo "md5 match of android [$ANDROID_SRC] and host [$HOST_DST]"
299 fi 245 fi
300 else 246 else
247 echo -n "$HOST_DST "
301 $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST 248 $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST
302 fi 249 fi
303 } 250 }
304 251
305 # adb_push_if_needed(host_src, android_dst) 252 # adb_push_if_needed(host_src, android_dst)
306 adb_push_if_needed() { 253 adb_push_if_needed() {
307 254
308 # get adb location 255 # get adb location
309 source $SCRIPT_DIR/utils/setup_adb.sh 256 source $SCRIPT_DIR/utils/setup_adb.sh
310 257
311 # read input params 258 # read input params
312 HOST_SRC="$1" 259 HOST_SRC="$1"
313 ANDROID_DST="$2" 260 ANDROID_DST="$2"
314 261
315 ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` 262 ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST`
316 if [ "${ANDROID_LS:0:1}" == "d" ]; 263 if [ "${ANDROID_LS:0:1}" == "d" ];
317 then 264 then
318 ANDROID_DST="${ANDROID_DST}/$(basename ${HOST_SRC})" 265 ANDROID_DST="${ANDROID_DST}/$(basename ${HOST_SRC})"
319 fi 266 fi
320 267
321 echo "ANDROID: $ANDROID_DST"
322 268
323 ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` 269 ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST`
324 if [ "${ANDROID_LS:0:1}" == "-" ]; 270 if [ "${ANDROID_LS:0:1}" == "-" ]; then
325 then
326 #get the MD5 for dst and src 271 #get the MD5 for dst and src
327 ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST` 272 ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST`
328 if [ $(uname) == "Darwin" ]; then 273 if [ $(uname) == "Darwin" ]; then
329 HOST_MD5=`md5 -q $HOST_SRC` 274 HOST_MD5=`md5 -q $HOST_SRC`
330 else 275 else
331 HOST_MD5=`md5sum $HOST_SRC` 276 HOST_MD5=`md5sum $HOST_SRC`
332 fi 277 fi
333 278
334 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; 279 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then
335 then 280 echo -n "$ANDROID_DST "
336 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST 281 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST
337 # else
338 # echo "md5 match of android [${ANDROID_DST}] and host [${HOST_SRC}]"
339 fi 282 fi
340 else 283 else
284 echo -n "$ANDROID_DST "
341 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST 285 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST
342 fi 286 fi
343 } 287 }
344 288
345 # Set up the device.
346 setup_device "${DEVICE_ID}" 289 setup_device "${DEVICE_ID}"
347 if [[ "$?" != "0" ]]; then
348 exit 1
349 fi
OLDNEW
« platform_tools/android/bin/android_make ('K') | « platform_tools/android/bin/android_run_skia ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698