Chromium Code Reviews| OLD | NEW |
|---|---|
| 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 | |
| OLD | NEW |