OLD | NEW |
| 1 #!/bin/bash |
| 2 # |
| 3 # android_setup.sh: Sets environment variables used by other Android scripts. |
| 4 |
| 5 # Parse the arguments for a DEVICE_ID. |
| 6 DEVICE_ID="" |
| 7 while (( "$#" )); do |
| 8 if [[ $(echo "$1" | grep "^-d$") != "" ]]; |
| 9 then |
| 10 DEVICE_ID=$2 |
| 11 shift |
| 12 else |
| 13 APP_ARGS="$APP_ARGS $1" |
| 14 fi |
| 15 |
| 16 shift |
| 17 done |
| 18 |
| 19 APP_ARGS=$(echo ${APP_ARGS} | sed 's/^ *//g') |
| 20 |
1 function exportVar { | 21 function exportVar { |
2 NAME=$1 | 22 NAME=$1 |
3 VALUE=$2 | 23 VALUE=$2 |
4 echo export $NAME=\"$VALUE\" | 24 echo export $NAME=\"$VALUE\" |
5 export $NAME="$VALUE" | 25 export $NAME="$VALUE" |
6 } | 26 } |
7 | 27 |
8 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" | 28 SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" |
9 | 29 |
10 # A valid Android SDK installation is required to build the sample app. | 30 # A valid Android SDK installation is required to build the sample app. |
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
98 LS="/bin/ls" # Use directly to avoid any 'ls' alias that might be defined. | 118 LS="/bin/ls" # Use directly to avoid any 'ls' alias that might be defined. |
99 GCC=$($LS $ANDROID_TOOLCHAIN/*-gcc | head -n1) | 119 GCC=$($LS $ANDROID_TOOLCHAIN/*-gcc | head -n1) |
100 if [ -z "$GCC" ]; then | 120 if [ -z "$GCC" ]; then |
101 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN" | 121 echo "ERROR: Could not find Android cross-compiler in: $ANDROID_TOOLCHAIN" |
102 return 1 | 122 return 1 |
103 fi | 123 fi |
104 | 124 |
105 # Remove the '-gcc' at the end to get the full toolchain prefix | 125 # Remove the '-gcc' at the end to get the full toolchain prefix |
106 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc} | 126 ANDROID_TOOLCHAIN_PREFIX=${GCC%%-gcc} |
107 | 127 |
108 exportVar AR "$ANDROID_TOOLCHAIN_PREFIX-ar" | |
109 if [[ -z "$ANDROID_MAKE_CCACHE" ]]; then | 128 if [[ -z "$ANDROID_MAKE_CCACHE" ]]; then |
110 exportVar CC "$ANDROID_TOOLCHAIN_PREFIX-gcc" | 129 export CC="$ANDROID_TOOLCHAIN_PREFIX-gcc" |
111 exportVar CXX "$ANDROID_TOOLCHAIN_PREFIX-g++" | 130 export CXX="$ANDROID_TOOLCHAIN_PREFIX-g++" |
112 exportVar LINK "$ANDROID_TOOLCHAIN_PREFIX-gcc" | 131 export LINK="$ANDROID_TOOLCHAIN_PREFIX-gcc" |
113 else | 132 else |
114 exportVar CC "$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" | 133 export CC="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" |
115 exportVar CXX "$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++" | 134 export CXX="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-g++" |
116 exportVar LINK "$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" | 135 export LINK="$ANDROID_MAKE_CCACHE $ANDROID_TOOLCHAIN_PREFIX-gcc" |
117 fi | 136 fi |
118 exportVar RANLIB "$ANDROID_TOOLCHAIN_PREFIX-ranlib" | 137 export AR="$ANDROID_TOOLCHAIN_PREFIX-ar" |
119 exportVar OBJCOPY "$ANDROID_TOOLCHAIN_PREFIX-objcopy" | 138 export RANLIB="$ANDROID_TOOLCHAIN_PREFIX-ranlib" |
120 exportVar STRIP "$ANDROID_TOOLCHAIN_PREFIX-strip" | 139 export OBJCOPY="$ANDROID_TOOLCHAIN_PREFIX-objcopy" |
| 140 export STRIP="$ANDROID_TOOLCHAIN_PREFIX-strip" |
121 } | 141 } |
122 | 142 |
123 # Helper function to configure the GYP defines to the appropriate values | 143 # Helper function to configure the GYP defines to the appropriate values |
124 # based on the target device. | 144 # based on the target device. |
125 setup_device() { | 145 setup_device() { |
126 DEFINES="OS=android" | 146 DEFINES="OS=android" |
127 DEFINES="${DEFINES} host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/'
)" | 147 DEFINES="${DEFINES} host_os=$(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/'
)" |
128 DEFINES="${DEFINES} skia_os=android" | 148 DEFINES="${DEFINES} skia_os=android" |
129 DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.." | 149 DEFINES="${DEFINES} android_base=${SCRIPT_DIR}/.." |
130 DEFINES="${DEFINES} skia_shared_lib=1" | 150 DEFINES="${DEFINES} skia_shared_lib=1" |
131 | 151 |
132 # Setup the build variation depending on the target device | 152 # Setup the build variation depending on the target device |
133 TARGET_DEVICE="$1" | 153 TARGET_DEVICE="$1" |
134 | 154 |
135 if [ -z "$TARGET_DEVICE" ]; then | 155 if [ -z "$TARGET_DEVICE" ]; then |
136 echo "INFO: no target device type was specified so using the default 'arm_v7
'" | 156 echo "INFO: no target device type was specified so using the default 'arm_v7
'" |
137 TARGET_DEVICE="arm_v7" | 157 TARGET_DEVICE="arm_v7" |
138 fi | 158 fi |
139 | 159 |
140 case $TARGET_DEVICE in | 160 case $TARGET_DEVICE in |
141 nexus_s) | 161 nexus_s) |
142 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" | 162 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" |
143 DEFINES="${DEFINES} skia_texture_cache_mb_limit=24" | 163 DEFINES="${DEFINES} skia_texture_cache_mb_limit=24" |
| 164 ANDROID_ARCH="arm" |
144 ;; | 165 ;; |
145 nexus_4 | nexus_7 | nexus_10) | 166 nexus_4 | nexus_7 | nexus_10) |
146 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" | 167 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" |
| 168 ANDROID_ARCH="arm" |
147 ;; | 169 ;; |
148 xoom) | 170 xoom) |
149 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_version=7 arm_thumb=
1" | 171 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_version=7 arm_thumb=
1" |
| 172 ANDROID_ARCH="arm" |
150 ;; | 173 ;; |
151 galaxy_nexus) | 174 galaxy_nexus) |
152 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" | 175 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=1 arm_version=7 arm_thumb=
1" |
153 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" | 176 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" |
| 177 ANDROID_ARCH="arm" |
154 ;; | 178 ;; |
155 razr_i) | 179 razr_i) |
156 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" | 180 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" |
157 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" | 181 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" |
| 182 ANDROID_ARCH="x86" |
158 ;; | 183 ;; |
159 arm_v7) | 184 arm_v7) |
160 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a
rm_thumb=0" | 185 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a
rm_thumb=0" |
| 186 ANDROID_ARCH="arm" |
161 ;; | 187 ;; |
162 arm_v7_thumb) | 188 arm_v7_thumb) |
163 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a
rm_thumb=1" | 189 DEFINES="${DEFINES} skia_arch_type=arm arm_neon_optional=1 arm_version=7 a
rm_thumb=1" |
| 190 ANDROID_ARCH="arm" |
164 ;; | 191 ;; |
165 arm) | 192 arm) |
166 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=0" | 193 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=0" |
| 194 ANDROID_ARCH="arm" |
167 ;; | 195 ;; |
168 arm_thumb) | 196 arm_thumb) |
169 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=1" | 197 DEFINES="${DEFINES} skia_arch_type=arm arm_neon=0 arm_thumb=1" |
| 198 ANDROID_ARCH="arm" |
170 ;; | 199 ;; |
171 x86) | 200 x86) |
172 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" | 201 DEFINES="${DEFINES} skia_arch_type=x86 skia_arch_width=32" |
173 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" | 202 DEFINES="${DEFINES} skia_texture_cache_mb_limit=32" |
| 203 ANDROID_ARCH="x86" |
174 ;; | 204 ;; |
175 *) | 205 *) |
176 echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " | 206 echo -n "ERROR: unknown device specified ($TARGET_DEVICE), valid values: " |
177 echo "nexus_[s,4,7,10] xoom galaxy_nexus razr_i arm arm_thumb arm_v7 arm_v
7_thumb x86" | 207 echo "nexus_[s,4,7,10] xoom galaxy_nexus razr_i arm arm_thumb arm_v7 arm_v
7_thumb x86" |
178 return 1; | 208 return 1; |
179 ;; | 209 ;; |
180 esac | 210 esac |
181 | 211 |
182 echo "The build is targeting the device: $TARGET_DEVICE" | 212 echo "The build is targeting the device: $TARGET_DEVICE" |
183 | 213 |
184 # Set up the toolchain. | 214 # Set up the toolchain. |
185 setup_toolchain | 215 setup_toolchain |
| 216 if [[ "$?" != "0" ]]; then |
| 217 return 1 |
| 218 fi |
186 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" | 219 DEFINES="${DEFINES} android_toolchain=${TOOLCHAIN_TYPE}" |
187 | 220 |
188 # Use the "android" flavor of the Makefile generator for both Linux and OS X. | 221 # Use the "android" flavor of the Makefile generator for both Linux and OS X. |
189 exportVar GYP_GENERATORS "make-android" | 222 exportVar GYP_GENERATORS "make-android" |
190 exportVar GYP_DEFINES "$DEFINES" | 223 exportVar GYP_DEFINES "$DEFINES" |
191 exportVar SKIA_OUT "out/config/android-${TARGET_DEVICE}" | 224 exportVar SKIA_OUT "out/config/android-${TARGET_DEVICE}" |
192 } | 225 } |
193 | 226 |
194 # adb_pull_if_needed(android_src, host_dst) | 227 # adb_pull_if_needed(android_src, host_dst) |
195 adb_pull_if_needed() { | 228 adb_pull_if_needed() { |
(...skipping 21 matching lines...) Expand all Loading... |
217 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; | 250 if [ "${ANDROID_MD5:0:32}" != "${HOST_MD5:0:32}" ]; |
218 then | 251 then |
219 $ADB pull $ANDROID_SRC $HOST_DST | 252 $ADB pull $ANDROID_SRC $HOST_DST |
220 # else | 253 # else |
221 # echo "md5 match of android [$ANDROID_SRC] and host [$HOST_DST]" | 254 # echo "md5 match of android [$ANDROID_SRC] and host [$HOST_DST]" |
222 fi | 255 fi |
223 else | 256 else |
224 $ADB pull $ANDROID_SRC $HOST_DST | 257 $ADB pull $ANDROID_SRC $HOST_DST |
225 fi | 258 fi |
226 } | 259 } |
| 260 |
| 261 # Set up the device. |
| 262 setup_device "${DEVICE_ID}" |
| 263 if [[ "$?" != "0" ]]; then |
| 264 exit 1 |
| 265 fi |
OLD | NEW |