17627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com#!/bin/bash 27627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com# 37627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com# android_setup.sh: Sets environment variables used by other Android scripts. 47627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com 5a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org# Fail-fast if anything in the script fails. 6a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.orgset -e 7a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org 8a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.orgBUILDTYPE=${BUILDTYPE-Debug} 9a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org 107627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.comwhile (( "$#" )); do 11a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if [[ "$1" == "-d" ]]; then 127627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com DEVICE_ID=$2 137627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com shift 14a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org elif [[ "$1" == "-s" ]]; then 15cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com DEVICE_SERIAL="-s $2" 16cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com shift 17a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org elif [[ "$1" == "-t" ]]; then 18a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org BUILDTYPE=$2 19a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org shift 20a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org elif [[ "$1" == "--release" ]]; then 21a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org BUILDTYPE=Release 227627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com else 23cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com APP_ARGS=("${APP_ARGS[@]}" "${1}") 247627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com fi 257627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com shift 267627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.comdone 277627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com 281c4015ab14f3d1ca6ec41effcbb72448817688fdmtklein@google.comfunction verbose { 29a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if [[ -n $VERBOSE ]]; then 30a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo $@ 31a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org fi 321c4015ab14f3d1ca6ec41effcbb72448817688fdmtklein@google.com} 331c4015ab14f3d1ca6ec41effcbb72448817688fdmtklein@google.com 34dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.comfunction exportVar { 35dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com NAME=$1 36dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com VALUE=$2 371c4015ab14f3d1ca6ec41effcbb72448817688fdmtklein@google.com verbose export $NAME=\"$VALUE\" 38dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com export $NAME="$VALUE" 39dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com} 40dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 41a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.orgfunction absPath { 42a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org (cd $1; pwd) 43a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org} 44a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org 45a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.orgSCRIPT_DIR=$(absPath "$(dirname "$BASH_SOURCE[0]}")") 46dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 47dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.comif [ -z "$ANDROID_SDK_ROOT" ]; then 48a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if ANDROID_SDK_ROOT="$(dirname $(which android))/.."; then 49a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org exportVar ANDROID_SDK_ROOT $ANDROID_SDK_ROOT 50a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org else 51a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo "No ANDROID_SDK_ROOT set and can't auto detect it from location of android binary." 52a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org exit 1 53dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com fi 54dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.comfi 55dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 56d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com# check to see that gclient sync ran successfully 57d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.comTHIRD_PARTY_EXTERNAL_DIR=${SCRIPT_DIR}/../third_party/externals 58c772540b4cbf8784e0f97cfa02accbd84181347edjsollen@google.comif [ ! -d "$THIRD_PARTY_EXTERNAL_DIR" ]; then 59d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com echo "" 60d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com echo "ERROR: Unable to find the required third_party dependencies needed to build." 61d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com echo " To fix this add the following line to your .gclient file and run 'gclient sync'" 62d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com echo " target_os = ['android']" 63d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com echo "" 64d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com exit 1; 65d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.comfi 66d165de44c89f0dcc88f0a196698744e08662e33fdjsollen@google.com 67dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com# Helper function to configure the GYP defines to the appropriate values 68dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com# based on the target device. 69dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.comsetup_device() { 70dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com DEFINES="OS=android" 71dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com DEFINES="${DEFINES} host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')" 72dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com DEFINES="${DEFINES} skia_os=android" 73a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org DEFINES="${DEFINES} android_base=$(absPath ${SCRIPT_DIR}/..)" 74d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com if [[ "$GYP_DEFINES" != *skia_shared_lib=* ]]; then 75d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com DEFINES="${DEFINES} skia_shared_lib=1" 76d6bab0238655dbab24dfe92bd0b16b464310a8c7rmistry@google.com fi 77dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 78dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com # Setup the build variation depending on the target device 79dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com TARGET_DEVICE="$1" 80dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 81dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com if [ -z "$TARGET_DEVICE" ]; then 82a61ba109bf1a60c6de8f9ebea043e782497b88ccdjsollen@google.com if [ -f .android_config ]; then 83a61ba109bf1a60c6de8f9ebea043e782497b88ccdjsollen@google.com TARGET_DEVICE=$(cat .android_config) 84a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org verbose "no target device (-d), using ${TARGET_DEVICE} from most recent build" 85a61ba109bf1a60c6de8f9ebea043e782497b88ccdjsollen@google.com else 8648f9e1f2c1a164128fa3e1fc5e264aab16b2b884mtklein@google.com TARGET_DEVICE="arm_v7_thumb" 87a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org verbose "no target device (-d), using ${TARGET_DEVICE}" 88a61ba109bf1a60c6de8f9ebea043e782497b88ccdjsollen@google.com fi 89dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com fi 90dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 91dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com case $TARGET_DEVICE in 92dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com nexus_s) 93ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=1" 944e5559af8947ae7dc3df531b6d7a73323db20c3frobertphillips@google.com DEFINES="${DEFINES} skia_resource_cache_mb_limit=24" 957627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 96ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 97dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com nexus_4 | nexus_7 | nexus_10) 98ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=1" 997627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 100ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 101dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com xoom) 102ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_version=7 arm_thumb=1" 1037627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 104ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 105dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com galaxy_nexus) 106ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=1" 1074e5559af8947ae7dc3df531b6d7a73323db20c3frobertphillips@google.com DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 1087627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 109ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 110a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org intel_rhb | razr_i | x86) 111ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" 1124e5559af8947ae7dc3df531b6d7a73323db20c3frobertphillips@google.com DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 1137627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="x86" 114ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 115dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com arm_v7) 116ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 arm_thumb=0" 1177627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 118ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 1197578b3efc63539cb8140d1f4f5b2773ee9d17c5fcommit-bot@chromium.org arm_v7_thumb | nvidia_logan) 120ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 arm_thumb=1" 1217627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 122ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 123dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com arm) 124ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=0" 1257627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 126ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 127dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com arm_thumb) 128ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=1" 1297627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com ANDROID_ARCH="arm" 130ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 131b6872c06e1b2a441895198f32356fde0f931986acommit-bot@chromium.org mips) 132b6872c06e1b2a441895198f32356fde0f931986acommit-bot@chromium.org DEFINES="${DEFINES} skia_arch_type=mips skia_arch_width=32" 133b6872c06e1b2a441895198f32356fde0f931986acommit-bot@chromium.org DEFINES="${DEFINES} skia_resource_cache_mb_limit=32" 134b6872c06e1b2a441895198f32356fde0f931986acommit-bot@chromium.org ANDROID_ARCH="mips" 135b6872c06e1b2a441895198f32356fde0f931986acommit-bot@chromium.org ;; 136dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com *) 137e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org if [ -z "$ANDROID_IGNORE_UNKNOWN_DEVICE" ]; then 138e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org echo "ERROR: unknown device $TARGET_DEVICE" 139e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org exit 1 140e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org fi 141e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org # If ANDROID_IGNORE_UNKNOWN_DEVICE is set, then ANDROID_TOOLCHAIN 142e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org # or ANDROID_ARCH should be set; Otherwise, ANDROID_ARCH 143e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org # defaults to 'arm' and the default ARM toolchain is used. 144e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org DEFINES="${DEFINES} skia_arch_type=${ANDROID_ARCH-arm}" 145e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org # If ANDROID_IGNORE_UNKNOWN_DEVICE is set, extra gyp defines can be 146e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org # added via ANDROID_GYP_DEFINES 147e3916bfe0e0a030d31c181ea8c9c91cae8229d22commit-bot@chromium.org DEFINES="${DEFINES} ${ANDROID_GYP_DEFINES}" 148ef0893191adcc343b5e27664835b11c327025fb9borenet@google.com ;; 149dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com esac 150dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 1511c4015ab14f3d1ca6ec41effcbb72448817688fdmtklein@google.com verbose "The build is targeting the device: $TARGET_DEVICE" 152a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org exportVar DEVICE_ID $TARGET_DEVICE 153dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 1540257ebe4ac7907d0293371cc6a50a0ec0a55f61ccommit-bot@chromium.org # setup the appropriate cross compiling toolchains 1550257ebe4ac7907d0293371cc6a50a0ec0a55f61ccommit-bot@chromium.org source $SCRIPT_DIR/utils/setup_toolchain.sh 156a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org 157112215acef55eb6d7fa0ef8c9af0215a78d0e104borenet@google.com DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" 158edea842b6a678f8c06d136a808def83880a4ca88commit-bot@chromium.org exportVar GYP_DEFINES "$DEFINES $GYP_DEFINES" 159105775b82341d7c86986b3fb03698d4e471bc3abcommit-bot@chromium.org 160105775b82341d7c86986b3fb03698d4e471bc3abcommit-bot@chromium.org SKIA_SRC_DIR=$(cd "${SCRIPT_DIR}/../../.."; pwd) 161105775b82341d7c86986b3fb03698d4e471bc3abcommit-bot@chromium.org DEFAULT_SKIA_OUT="${SKIA_SRC_DIR}/out/config/android-${TARGET_DEVICE}" 162105775b82341d7c86986b3fb03698d4e471bc3abcommit-bot@chromium.org exportVar SKIA_OUT "${SKIA_OUT:-${DEFAULT_SKIA_OUT}}" 163dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com} 164dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 165121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com# adb_pull_if_needed(android_src, host_dst) 166121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.comadb_pull_if_needed() { 167dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 168121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com # get adb location 169121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com source $SCRIPT_DIR/utils/setup_adb.sh 170121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 171121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com # read input params 172121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com ANDROID_SRC="$1" 173121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com HOST_DST="$2" 174dcdd57faf02fb4fd23bb8265392b9c22e068907edjsollen@google.com 175121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com if [ -d $HOST_DST ]; 176121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com then 177121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com HOST_DST="${HOST_DST}/$(basename ${ANDROID_SRC})" 178121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com fi 179121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 180ab4098b4d3ceb952dc7bea7e28a38387830acad6commit-bot@chromium.org 181ab4098b4d3ceb952dc7bea7e28a38387830acad6commit-bot@chromium.org if [ -f $HOST_DST ]; 182121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com then 183121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com #get the MD5 for dst and src 184cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_SRC` 1853a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com if [ $(uname) == "Darwin" ]; then 1863a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com HOST_MD5=`md5 -q $HOST_DST` 1873a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com else 1883a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com HOST_MD5=`md5sum $HOST_DST` 1893a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com fi 190121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com 191a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then 192a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo -n "$HOST_DST " 193cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST 194121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com fi 195121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com else 196a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo -n "$HOST_DST " 197cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com $ADB $DEVICE_SERIAL pull $ANDROID_SRC $HOST_DST 198cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com fi 199cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com} 200cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 201cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com# adb_push_if_needed(host_src, android_dst) 202cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.comadb_push_if_needed() { 203cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 204cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com # get adb location 205cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com source $SCRIPT_DIR/utils/setup_adb.sh 206cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 207cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com # read input params 208cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com HOST_SRC="$1" 209cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_DST="$2" 210cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 211cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` 212cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com if [ "${ANDROID_LS:0:1}" == "d" ]; 213cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com then 214cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_DST="${ANDROID_DST}/$(basename ${HOST_SRC})" 215cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com fi 216cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 217cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 218cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_LS=`$ADB $DEVICE_SERIAL shell ls -ld $ANDROID_DST` 219a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if [ "${ANDROID_LS:0:1}" == "-" ]; then 220cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com #get the MD5 for dst and src 221cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com ANDROID_MD5=`$ADB $DEVICE_SERIAL shell md5 $ANDROID_DST` 2223a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com if [ $(uname) == "Darwin" ]; then 2233a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com HOST_MD5=`md5 -q $HOST_SRC` 2243a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com else 2253a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com HOST_MD5=`md5sum $HOST_SRC` 2263a98ed7658057b8b6c5cc38275b02b63d3091527djsollen@google.com fi 227cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com 228a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; then 229a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo -n "$ANDROID_DST " 230cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST 231cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com fi 232cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com else 233a13767579d25a7182d697e93d0df294eccc91507commit-bot@chromium.org echo -n "$ANDROID_DST " 2347f07e956fed08a5d1e2843174b21b3211c08e24dcommit-bot@chromium.org $ADB $DEVICE_SERIAL shell mkdir -p "$(dirname "$ANDROID_DST")" 235cc95b1aeb8cbb9201712c9982d12149b0e0027f0djsollen@google.com $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST 236121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com fi 237121b3fe6a05cff6a8354ae8b4ba4da1c8edd62c3djsollen@google.com} 2387627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.com 2397627535b8f968ba135e0ec16d15f30c31fe786d4borenet@google.comsetup_device "${DEVICE_ID}" 240