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

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