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

Side by Side Diff: build/android/envsetup_functions.sh

Issue 10920094: android: Refine ANDROID_SDK_ROOT definition for SDK builds. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 years, 3 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 | « build/android/envsetup.sh ('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 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 3 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
4 # Use of this source code is governed by a BSD-style license that can be 4 # Use of this source code is governed by a BSD-style license that can be
5 # found in the LICENSE file. 5 # found in the LICENSE file.
6 6
7 # Defines functions for envsetup.sh which sets up environment for building 7 # Defines functions for envsetup.sh which sets up environment for building
8 # Chromium on Android. The build can be either use the Android NDK/SDK or 8 # Chromium on Android. The build can be either use the Android NDK/SDK or
9 # android source tree. Each has a unique init function which calls functions 9 # android source tree. Each has a unique init function which calls functions
10 # prefixed with "common_" that is common for both environment setups. 10 # prefixed with "common_" that is common for both environment setups.
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 57
58 # TODO(beverloo): Remove these once all consumers updated to --strip-binary. 58 # TODO(beverloo): Remove these once all consumers updated to --strip-binary.
59 export OBJCOPY=$(echo ${ANDROID_TOOLCHAIN}/*-objcopy) 59 export OBJCOPY=$(echo ${ANDROID_TOOLCHAIN}/*-objcopy)
60 export STRIP=$(echo ${ANDROID_TOOLCHAIN}/*-strip) 60 export STRIP=$(echo ${ANDROID_TOOLCHAIN}/*-strip)
61 61
62 # The set of GYP_DEFINES to pass to gyp. Use 'readlink -e' on directories 62 # The set of GYP_DEFINES to pass to gyp. Use 'readlink -e' on directories
63 # to canonicalize them (remove double '/', remove trailing '/', etc). 63 # to canonicalize them (remove double '/', remove trailing '/', etc).
64 DEFINES="OS=android" 64 DEFINES="OS=android"
65 DEFINES+=" host_os=${host_os}" 65 DEFINES+=" host_os=${host_os}"
66 66
67 if [ -n "$CHROME_ANDROID_OFFICIAL_BUILD" ]; then 67 if [[ -n "$CHROME_ANDROID_OFFICIAL_BUILD" ]]; then
68 DEFINES+=" branding=Chrome" 68 DEFINES+=" branding=Chrome"
69 DEFINES+=" buildtype=Official" 69 DEFINES+=" buildtype=Official"
70 70
71 # These defines are used by various chrome build scripts to tag the binary's 71 # These defines are used by various chrome build scripts to tag the binary's
72 # version string as 'official' in linux builds (e.g. in 72 # version string as 'official' in linux builds (e.g. in
73 # chrome/trunk/src/chrome/tools/build/version.py). 73 # chrome/trunk/src/chrome/tools/build/version.py).
74 export OFFICIAL_BUILD=1 74 export OFFICIAL_BUILD=1
75 export CHROMIUM_BUILD="_google_chrome" 75 export CHROMIUM_BUILD="_google_chrome"
76 export CHROME_BUILD_TYPE="_official" 76 export CHROME_BUILD_TYPE="_official"
77 77
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
161 # TODO(navabi): Add NDK to $ROOT/src/third_party/android_tools/ndk. 161 # TODO(navabi): Add NDK to $ROOT/src/third_party/android_tools/ndk.
162 # To build Chromium for Android with NDK/SDK follow the steps below: 162 # To build Chromium for Android with NDK/SDK follow the steps below:
163 # > export ANDROID_NDK_ROOT=<android ndk root> 163 # > export ANDROID_NDK_ROOT=<android ndk root>
164 # > export ANDROID_SDK_ROOT=<android sdk root> # to override the default sdk 164 # > export ANDROID_SDK_ROOT=<android sdk root> # to override the default sdk
165 # > . build/android/envsetup.sh --sdk 165 # > . build/android/envsetup.sh --sdk
166 # > make 166 # > make
167 ################################################################################ 167 ################################################################################
168 sdk_build_init() { 168 sdk_build_init() {
169 # If ANDROID_NDK_ROOT is set when envsetup is run, use the ndk pointed to by 169 # If ANDROID_NDK_ROOT is set when envsetup is run, use the ndk pointed to by
170 # the environment variable. Otherwise, use the default ndk from the tree. 170 # the environment variable. Otherwise, use the default ndk from the tree.
171 if [ ! -d "${ANDROID_NDK_ROOT}" ]; then 171 if [[ -z "${ANDROID_NDK_ROOT}" || ! -d "${ANDROID_NDK_ROOT}" ]]; then
172 export ANDROID_NDK_ROOT="${CHROME_SRC}/third_party/android_tools/ndk/" 172 export ANDROID_NDK_ROOT="${CHROME_SRC}/third_party/android_tools/ndk/"
173 fi 173 fi
174 174
175 # If ANDROID_SDK_ROOT is set when envsetup is run, use the sdk pointed to by 175 # If ANDROID_SDK_ROOT is set when envsetup is run, and if it has the
176 # the environment variable. Otherwise, use the default sdk from the tree. 176 # right SDK-compatible directory layout, use the sdk pointed to by the
177 if [ ! -d "${ANDROID_SDK_ROOT}" ]; then 177 # environment variable. Otherwise, use the default sdk from the tree.
178 local sdk_suffix=platforms/android-${ANDROID_SDK_VERSION}
179 if [[ -z "${ANDROID_SDK_ROOT}" || \
180 ! -d "${ANDROID_SDK_ROOT}/${sdk_suffix}" ]]; then
178 export ANDROID_SDK_ROOT="${CHROME_SRC}/third_party/android_tools/sdk/" 181 export ANDROID_SDK_ROOT="${CHROME_SRC}/third_party/android_tools/sdk/"
179 fi 182 fi
180 183
181 # Makes sure ANDROID_BUILD_TOP is unset if build has option --sdk 184 # Makes sure ANDROID_BUILD_TOP is unset if build has option --sdk
182 unset ANDROID_BUILD_TOP 185 unset ANDROID_BUILD_TOP
183 186
184 # Set default target. 187 # Set default target.
185 export TARGET_PRODUCT="${TARGET_PRODUCT:-trygon}" 188 export TARGET_PRODUCT="${TARGET_PRODUCT:-trygon}"
186 189
187 # Unset toolchain so that it can be set based on TARGET_PRODUCT. 190 # Unset toolchain so that it can be set based on TARGET_PRODUCT.
(...skipping 11 matching lines...) Expand all
199 ;; 202 ;;
200 esac 203 esac
201 204
202 # Sets android specific directories to NOT_SDK_COMPLIANT. This will allow 205 # Sets android specific directories to NOT_SDK_COMPLIANT. This will allow
203 # android_gyp to generate make files, but will cause errors when (and only 206 # android_gyp to generate make files, but will cause errors when (and only
204 # when) building targets that depend on these directories. 207 # when) building targets that depend on these directories.
205 DEFINES+=" android_src='NOT_SDK_COMPLIANT'" 208 DEFINES+=" android_src='NOT_SDK_COMPLIANT'"
206 DEFINES+=" android_product_out=${CHROME_SRC}/out/android" 209 DEFINES+=" android_product_out=${CHROME_SRC}/out/android"
207 DEFINES+=" android_lib='NOT_SDK_COMPLIANT'" 210 DEFINES+=" android_lib='NOT_SDK_COMPLIANT'"
208 DEFINES+=" android_static_lib='NOT_SDK_COMPLIANT'" 211 DEFINES+=" android_static_lib='NOT_SDK_COMPLIANT'"
209 DEFINES+=\ 212 DEFINES+=" android_sdk=${ANDROID_SDK_ROOT}/${sdk_suffix}"
210 " android_sdk=${ANDROID_SDK_ROOT}/platforms/android-${ANDROID_SDK_VERSION}"
211 DEFINES+=" android_sdk_root=${ANDROID_SDK_ROOT}" 213 DEFINES+=" android_sdk_root=${ANDROID_SDK_ROOT}"
212 DEFINES+=" android_sdk_tools=${ANDROID_SDK_ROOT}/platform-tools" 214 DEFINES+=" android_sdk_tools=${ANDROID_SDK_ROOT}/platform-tools"
213 DEFINES+=" android_sdk_version=${ANDROID_SDK_VERSION}" 215 DEFINES+=" android_sdk_version=${ANDROID_SDK_VERSION}"
214 DEFINES+=" android_toolchain=${ANDROID_TOOLCHAIN}" 216 DEFINES+=" android_toolchain=${ANDROID_TOOLCHAIN}"
215 217
216 common_gyp_vars 218 common_gyp_vars
217 219
218 if [ -n "$CHROME_ANDROID_BUILD_WEBVIEW" ]; then 220 if [[ -n "$CHROME_ANDROID_BUILD_WEBVIEW" ]]; then
219 # Can not build WebView with NDK/SDK because it needs the Android build 221 # Can not build WebView with NDK/SDK because it needs the Android build
220 # system and build inside an Android source tree. 222 # system and build inside an Android source tree.
221 echo "Can not build WebView with NDK/SDK. Requires android source tree." \ 223 echo "Can not build WebView with NDK/SDK. Requires android source tree." \
222 >& 2 224 >& 2
223 echo "Try . build/android/envsetup.sh instead." >& 2 225 echo "Try . build/android/envsetup.sh instead." >& 2
224 return 1 226 return 1
225 fi 227 fi
226 228
227 } 229 }
228 230
229 ################################################################################ 231 ################################################################################
230 # Initializes environment variables for build with android source. This expects 232 # Initializes environment variables for build with android source. This expects
231 # android environment to be set up along with lunch. To build: 233 # android environment to be set up along with lunch. To build:
232 # > . build/envsetup.sh 234 # > . build/envsetup.sh
233 # > lunch <lunch-type> 235 # > lunch <lunch-type>
234 # > . build/android/envsetup.sh 236 # > . build/android/envsetup.sh
235 # > make 237 # > make
236 ############################################################################# 238 #############################################################################
237 non_sdk_build_init() { 239 non_sdk_build_init() {
238 # We export "TOP" here so that "mmm" can be run to build Java code without 240 # We export "TOP" here so that "mmm" can be run to build Java code without
239 # having to cd to $ANDROID_BUILD_TOP. 241 # having to cd to $ANDROID_BUILD_TOP.
240 export TOP="$ANDROID_BUILD_TOP" 242 export TOP="$ANDROID_BUILD_TOP"
241 243
242 # Set "ANDROID_NDK_ROOT" as checked-in version, if it was not set. 244 # Set "ANDROID_NDK_ROOT" as checked-in version, if it was not set.
243 if [ ! -d "$ANDROID_NDK_ROOT" ] ; then 245 if [[ "${ANDROID_NDK_ROOT}" || ! -d "$ANDROID_NDK_ROOT" ]] ; then
244 export ANDROID_NDK_ROOT="${CHROME_SRC}/third_party/android_tools/ndk/" 246 export ANDROID_NDK_ROOT="${CHROME_SRC}/third_party/android_tools/ndk/"
245 fi 247 fi
246 if [ ! -d "$ANDROID_NDK_ROOT" ] ; then 248 if [[ ! -d "${ANDROID_NDK_ROOT}" ]] ; then
247 echo "Can not find Android NDK root ${ANDROID_NDK_ROOT}." >& 2 249 echo "Can not find Android NDK root ${ANDROID_NDK_ROOT}." >& 2
248 return 1 250 return 1
249 fi 251 fi
250 252
251 # We export "ANDROID_SDK_ROOT" for building Java source with the SDK. 253 # We export "ANDROID_SDK_ROOT" for building Java source with the SDK.
252 export ANDROID_SDK_ROOT=${ANDROID_BUILD_TOP}/prebuilts/sdk/\ 254 export ANDROID_SDK_ROOT=${ANDROID_BUILD_TOP}/prebuilts/sdk/\
253 ${ANDROID_SDK_VERSION} 255 ${ANDROID_SDK_VERSION}
254 # Needed by android antfiles when creating apks. 256 # Needed by android antfiles when creating apks.
255 export ANDROID_SDK_HOME=${ANDROID_SDK_ROOT} 257 export ANDROID_SDK_HOME=${ANDROID_SDK_ROOT}
256 258
257 # Unset ANDROID_TOOLCHAIN, so it could be set to checked-in 64-bit toolchain. 259 # Unset ANDROID_TOOLCHAIN, so it could be set to checked-in 64-bit toolchain.
258 # in common_vars_defines 260 # in common_vars_defines
259 unset ANDROID_TOOLCHAIN 261 unset ANDROID_TOOLCHAIN
260 262
261 common_vars_defines 263 common_vars_defines
262 264
263 DEFINES+=" sdk_build=0" 265 DEFINES+=" sdk_build=0"
264 DEFINES+=" android_product_out=${ANDROID_PRODUCT_OUT}" 266 DEFINES+=" android_product_out=${ANDROID_PRODUCT_OUT}"
265 267
266 if [ -n "$CHROME_ANDROID_BUILD_WEBVIEW" ]; then 268 if [[ -n "$CHROME_ANDROID_BUILD_WEBVIEW" ]]; then
267 webview_build_init 269 webview_build_init
268 return 270 return
269 fi 271 fi
270 272
271 # The non-SDK build currently requires the SDK path to build the framework 273 # The non-SDK build currently requires the SDK path to build the framework
272 # Java aidl files. TODO(steveblock): Investigate avoiding this requirement. 274 # Java aidl files. TODO(steveblock): Investigate avoiding this requirement.
273 DEFINES+=" android_sdk=${ANDROID_SDK_ROOT}" 275 DEFINES+=" android_sdk=${ANDROID_SDK_ROOT}"
274 DEFINES+=" android_sdk_root=${ANDROID_SDK_ROOT}" 276 DEFINES+=" android_sdk_root=${ANDROID_SDK_ROOT}"
275 DEFINES+=" android_sdk_tools=${ANDROID_SDK_ROOT}/../tools/linux" 277 DEFINES+=" android_sdk_tools=${ANDROID_SDK_ROOT}/../tools/linux"
276 DEFINES+=" android_sdk_version=${ANDROID_SDK_VERSION}" 278 DEFINES+=" android_sdk_version=${ANDROID_SDK_VERSION}"
(...skipping 28 matching lines...) Expand all
305 307
306 export GYP_GENERATORS="android" 308 export GYP_GENERATORS="android"
307 309
308 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} default_target=All" 310 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} default_target=All"
309 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} limit_to_target_all=1" 311 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} limit_to_target_all=1"
310 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} auto_regeneration=0" 312 export GYP_GENERATOR_FLAGS="${GYP_GENERATOR_FLAGS} auto_regeneration=0"
311 313
312 # TODO(torne): This isn't upstream yet. Upstream it or remove this setting. 314 # TODO(torne): This isn't upstream yet. Upstream it or remove this setting.
313 export CHROMIUM_GYP_FILE="${CHROME_SRC}/build/all_android_webview.gyp" 315 export CHROMIUM_GYP_FILE="${CHROME_SRC}/build/all_android_webview.gyp"
314 } 316 }
OLDNEW
« no previous file with comments | « build/android/envsetup.sh ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698