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 # Parse the arguments for a DEVICE_ID. |
| 6 DEVICE_ID="" | 6 DEVICE_ID="" |
| 7 DEVICE_SERIAL="" | 7 DEVICE_SERIAL="" |
| 8 while (( "$#" )); do | 8 while (( "$#" )); do |
| 9 if [[ $(echo "$1" | grep "^-d$") != "" ]]; | 9 if [[ $(echo "$1" | grep "^-d$") != "" ]]; |
| 10 then | 10 then |
| 11 DEVICE_ID=$2 | 11 DEVICE_ID=$2 |
| 12 shift | 12 shift |
| 13 elif [[ "$1" == "-s" ]]; | 13 elif [[ "$1" == "-s" ]]; |
| 14 then | 14 then |
| 15 if [[ $# -lt 2 ]]; | 15 if [[ $# -lt 2 ]]; |
| 16 then | 16 then |
| 17 echo "ERROR: missing serial number" | 17 echo "ERROR: missing serial number" |
| 18 exit 1; | 18 exit 1; |
| 19 fi | 19 fi |
| 20 DEVICE_SERIAL="-s $2" | 20 DEVICE_SERIAL="-s $2" |
| 21 shift | 21 shift |
| 22 else | 22 else |
| 23 APP_ARGS=("${APP_ARGS[@]}" "${1}") | 23 APP_ARGS=("${APP_ARGS[@]}" "${1}") |
| 24 fi | 24 fi |
| 25 | 25 |
| 26 shift | 26 shift |
| 27 done | 27 done |
| 28 | 28 |
| 29 function verbose { | |
| 30 if [[ -n $VERBOSE ]]; then | |
|
borenet
2013/09/30 20:42:10
Could we rename this variable so that it's clear w
| |
| 31 echo $@ | |
| 32 fi | |
| 33 } | |
| 34 | |
| 29 function exportVar { | 35 function exportVar { |
| 30 NAME=$1 | 36 NAME=$1 |
| 31 VALUE=$2 | 37 VALUE=$2 |
| 32 echo export $NAME=\"$VALUE\" | 38 verbose export $NAME=\"$VALUE\" |
| 33 export $NAME="$VALUE" | 39 export $NAME="$VALUE" |
| 34 } | 40 } |
| 35 | 41 |
| 36 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 42 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
| 37 | 43 |
| 38 # A valid Android SDK installation is required to build the sample app. | 44 # A valid Android SDK installation is required to build the sample app. |
| 39 if [ -z "$ANDROID_SDK_ROOT" ]; then | 45 if [ -z "$ANDROID_SDK_ROOT" ]; then |
| 40 ANDROID_TOOL=$(which android 2>/dev/null) | 46 ANDROID_TOOL=$(which android 2>/dev/null) |
| 41 if [ -z "$ANDROID_TOOL" ]; then | 47 if [ -z "$ANDROID_TOOL" ]; then |
| 42 echo "ERROR: Please define ANDROID_SDK_ROOT in your environment to point" | 48 echo "ERROR: Please define ANDROID_SDK_ROOT in your environment to point" |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 74 NDK_REV="8e" | 80 NDK_REV="8e" |
| 75 fi | 81 fi |
| 76 | 82 |
| 77 if [[ -z "$ANDROID_ARCH" ]]; | 83 if [[ -z "$ANDROID_ARCH" ]]; |
| 78 then | 84 then |
| 79 ANDROID_ARCH="arm" | 85 ANDROID_ARCH="arm" |
| 80 fi | 86 fi |
| 81 | 87 |
| 82 TOOLCHAIN_DIR=${SCRIPT_DIR}/../toolchains | 88 TOOLCHAIN_DIR=${SCRIPT_DIR}/../toolchains |
| 83 if [ $(uname) == "Linux" ]; then | 89 if [ $(uname) == "Linux" ]; then |
| 84 echo "Using Linux toolchain." | 90 verbose "Using Linux toolchain." |
| 85 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL | 91 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL |
| 86 elif [ $(uname) == "Darwin" ]; then | 92 elif [ $(uname) == "Darwin" ]; then |
| 87 echo "Using Mac toolchain." | 93 verbose "Using Mac toolchain." |
| 88 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-mac_v$API_LEVEL | 94 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-mac_v$API_LEVEL |
| 89 else | 95 else |
| 90 echo "Could not automatically determine toolchain! Defaulting to Linux." | 96 verbose "Could not automatically determine toolchain! Defaulting to Linux." |
| 91 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL | 97 TOOLCHAIN_TYPE=ndk-r$NDK_REV-$ANDROID_ARCH-linux_v$API_LEVEL |
| 92 fi | 98 fi |
| 93 exportVar ANDROID_TOOLCHAIN ${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}/bin | 99 exportVar ANDROID_TOOLCHAIN ${TOOLCHAIN_DIR}/${TOOLCHAIN_TYPE}/bin |
| 94 | 100 |
| 95 # if the toolchain doesn't exist on your machine then we need to fetch it | 101 # if the toolchain doesn't exist on your machine then we need to fetch it |
| 96 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then | 102 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then |
| 97 # create the toolchain directory if needed | 103 # create the toolchain directory if needed |
| 98 if [ ! -d "$TOOLCHAIN_DIR" ]; then | 104 if [ ! -d "$TOOLCHAIN_DIR" ]; then |
| 99 mkdir $TOOLCHAIN_DIR | 105 mkdir $TOOLCHAIN_DIR |
| 100 fi | 106 fi |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 114 echo "Removing $TARBALL" | 120 echo "Removing $TARBALL" |
| 115 rm $TARBALL | 121 rm $TARBALL |
| 116 popd | 122 popd |
| 117 fi | 123 fi |
| 118 | 124 |
| 119 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then | 125 if [ ! -d "$ANDROID_TOOLCHAIN" ]; then |
| 120 echo "ERROR: unable to download/setup the required toolchain (${TOOLCHAIN_TY PE})" | 126 echo "ERROR: unable to download/setup the required toolchain (${TOOLCHAIN_TY PE})" |
| 121 return 1; | 127 return 1; |
| 122 fi | 128 fi |
| 123 | 129 |
| 124 echo "The build is targeting NDK API level $API_LEVEL for use on Android 4.0 ( NDK Revision $NDK_REV) and above" | 130 verbose "The build is targeting NDK API level $API_LEVEL for use on Android 4. 0 (NDK Revision $NDK_REV) and above" |
| 125 | 131 |
| 126 LS="/bin/ls" # Use directly to avoid any 'ls' alias that might be defined. | 132 LS="/bin/ls" # Use directly to avoid any 'ls' alias that might be defined. |
| 127 GCC=$($LS $ANDROID_TOOLCHAIN/*-gcc | head -n1) | 133 GCC=$($LS $ANDROID_TOOLCHAIN/*-gcc | head -n1) |
| 128 if [ -z "$GCC" ]; then | 134 if [ -z "$GCC" ]; then |
| 129 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN" | 135 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN" |
| 130 return 1 | 136 return 1 |
| 131 fi | 137 fi |
| 132 | 138 |
| 133 # Remove the '-gcc' at the end to get the full toolchain prefix | 139 # Remove the '-gcc' at the end to get the full toolchain prefix |
| 134 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc} | 140 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc} |
| (...skipping 21 matching lines...) Expand all Loading... | |
| 156 DEFINES="${DEFINES} skia_os=android" | 162 DEFINES="${DEFINES} skia_os=android" |
| 157 DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.." | 163 DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.." |
| 158 DEFINES="${DEFINES} skia_shared_lib=1" | 164 DEFINES="${DEFINES} skia_shared_lib=1" |
| 159 | 165 |
| 160 # Setup the build variation depending on the target device | 166 # Setup the build variation depending on the target device |
| 161 TARGET_DEVICE="$1" | 167 TARGET_DEVICE="$1" |
| 162 | 168 |
| 163 if [ -z "$TARGET_DEVICE" ]; then | 169 if [ -z "$TARGET_DEVICE" ]; then |
| 164 if [ -f .android_config ]; then | 170 if [ -f .android_config ]; then |
| 165 TARGET_DEVICE=$(cat .android_config) | 171 TARGET_DEVICE=$(cat .android_config) |
| 166 echo "INFO: no target device was specified so using the device (${TARGET_D EVICE}) from the most recent build" | 172 verbose "INFO: no target device was specified so using the device (${TARGE T_DEVICE}) from the most recent build" |
| 167 else | 173 else |
| 168 TARGET_DEVICE="arm_v7_thumb" | 174 TARGET_DEVICE="arm_v7_thumb" |
| 169 echo "INFO: no target device type was specified so using the default '${TA RGET_DEVICE}'" | 175 verbose "INFO: no target device type was specified so using the default '$ {TARGET_DEVICE}'" |
| 170 fi | 176 fi |
| 171 fi | 177 fi |
| 172 | 178 |
| 173 case $TARGET_DEVICE in | 179 case $TARGET_DEVICE in |
| 174 nexus_s) | 180 nexus_s) |
| 175 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1" | 181 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb= 1" |
| 176 DEFINES="${DEFINES} skia_texture_cache_mb_limit=24" | 182 DEFINES="${DEFINES} skia_texture_cache_mb_limit=24" |
| 177 ANDROID_ARCH="arm" | 183 ANDROID_ARCH="arm" |
| 178 ;; | 184 ;; |
| 179 nexus_4 | nexus_7 | nexus_10) | 185 nexus_4 | nexus_7 | nexus_10) |
| (...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 220 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" | 226 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" |
| 221 ANDROID_ARCH="x86" | 227 ANDROID_ARCH="x86" |
| 222 ;; | 228 ;; |
| 223 *) | 229 *) |
| 224 echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " | 230 echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " |
| 225 echo "nexus_[s,4,7,10] xoom galaxy_nexus razr_i arm arm_thumb arm_v7 arm_v 7_thumb x86" | 231 echo "nexus_[s,4,7,10] xoom galaxy_nexus razr_i arm arm_thumb arm_v7 arm_v 7_thumb x86" |
| 226 return 1; | 232 return 1; |
| 227 ;; | 233 ;; |
| 228 esac | 234 esac |
| 229 | 235 |
| 230 echo "The build is targeting the device: $TARGET_DEVICE" | 236 verbose "The build is targeting the device: $TARGET_DEVICE" |
| 231 export DEVICE_ID="$TARGET_DEVICE" | 237 export DEVICE_ID="$TARGET_DEVICE" |
| 232 | 238 |
| 233 # Set up the toolchain. | 239 # Set up the toolchain. |
| 234 setup_toolchain | 240 setup_toolchain |
| 235 if [[ "$?" != "0" ]]; then | 241 if [[ "$?" != "0" ]]; then |
| 236 return 1 | 242 return 1 |
| 237 fi | 243 fi |
| 238 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" | 244 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" |
| 239 | 245 |
| 240 exportVar GYP_DEFINES "$DEFINES" | 246 exportVar GYP_DEFINES "$DEFINES" |
| (...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 317 else | 323 else |
| 318 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST | 324 $ADB $DEVICE_SERIAL push $HOST_SRC $ANDROID_DST |
| 319 fi | 325 fi |
| 320 } | 326 } |
| 321 | 327 |
| 322 # Set up the device. | 328 # Set up the device. |
| 323 setup_device "${DEVICE_ID}" | 329 setup_device "${DEVICE_ID}" |
| 324 if [[ "$?" != "0" ]]; then | 330 if [[ "$?" != "0" ]]; then |
| 325 exit 1 | 331 exit 1 |
| 326 fi | 332 fi |
| OLD | NEW |