[Extensions Toolbar] Observe original profile for extension host notifications
[chromium-blink-merge.git] / build / install-build-deps-android.sh
blob5d95ed5413db1fd5924f82c76860faa7480b306a
1 #!/bin/bash -e
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
5 # found in the LICENSE file.
7 # Script to install everything needed to build chromium on android that
8 # requires sudo privileges.
9 # See http://code.google.com/p/chromium/wiki/AndroidBuildInstructions
11 # This script installs the sun-java6 packages (bin, jre and jdk). Sun requires
12 # a license agreement, so upon installation it will prompt the user. To get
13 # past the curses-based dialog press TAB <ret> TAB <ret> to agree.
15 args="$@"
16 if test "$1" = "--skip-sdk-packages"; then
17 skip_inst_sdk_packages=1
18 args="${@:2}"
19 else
20 skip_inst_sdk_packages=0
23 if ! uname -m | egrep -q "i686|x86_64"; then
24 echo "Only x86 architectures are currently supported" >&2
25 exit
28 # Install first the default Linux build deps.
29 "$(dirname "${BASH_SOURCE[0]}")/install-build-deps.sh" \
30 --no-syms --lib32 --no-arm --no-chromeos-fonts --no-nacl --no-prompt "${args}"
32 lsb_release=$(lsb_release --codename --short)
34 # The temporary directory used to store output of update-java-alternatives
35 TEMPDIR=$(mktemp -d)
36 cleanup() {
37 local status=${?}
38 trap - EXIT
39 rm -rf "${TEMPDIR}"
40 exit ${status}
42 trap cleanup EXIT
44 # Fix deps
45 sudo apt-get -f install
47 # Install deps
48 # This step differs depending on what Ubuntu release we are running
49 # on since the package names are different, and Sun's Java must
50 # be installed manually on late-model versions.
52 # common
53 sudo apt-get -y install lighttpd python-pexpect xvfb x11-utils
55 # Some binaries in the Android SDK require 32-bit libraries on the host.
56 # See https://developer.android.com/sdk/installing/index.html?pkg=tools
57 if [[ $lsb_release == "precise" ]]; then
58 sudo apt-get -y install ia32-libs
59 else
60 sudo apt-get -y install libncurses5:i386 libstdc++6:i386 zlib1g:i386
63 sudo apt-get -y install ant
65 # Install openjdk and openjre 7 stuff
66 sudo apt-get -y install openjdk-7-jre openjdk-7-jdk
68 # Switch version of Java to openjdk 7.
69 # Some Java plugins (e.g. for firefox, mozilla) are not required to build, and
70 # thus are treated only as warnings. Any errors in updating java alternatives
71 # which are not '*-javaplugin.so' will cause errors and stop the script from
72 # completing successfully.
73 if ! sudo update-java-alternatives -s java-1.7.0-openjdk-amd64 \
74 >& "${TEMPDIR}"/update-java-alternatives.out
75 then
76 # Check that there are the expected javaplugin.so errors for the update
77 if grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out >& \
78 /dev/null
79 then
80 # Print as warnings all the javaplugin.so errors
81 echo 'WARNING: java-6-sun has no alternatives for the following plugins:'
82 grep 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
84 # Check if there are any errors that are not javaplugin.so
85 if grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out \
86 >& /dev/null
87 then
88 # If there are non-javaplugin.so errors, treat as errors and exit
89 echo 'ERRORS: Failed to update alternatives for java-6-sun:'
90 grep -v 'javaplugin.so' "${TEMPDIR}"/update-java-alternatives.out
91 exit 1
95 if test "$skip_inst_sdk_packages" != 1; then
96 echo 'checking for sdk packages install'
97 # Use absolute path to call 'android' so script can be run from any directory.
98 cwd=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
99 # Get the SDK extras packages to install from the DEPS file 'sdkextras' hook.
100 packages="$(python ${cwd}/get_sdk_extras_packages.py)"
101 for package in "${packages}"; do
102 pkg_id=$(${cwd}/../third_party/android_tools/sdk/tools/android list sdk | \
103 grep -i "$package," | \
104 awk '/^[ ]*[0-9]*- / {gsub("-",""); print $1}')
105 if [[ -n ${pkg_id} ]]; then
106 ${cwd}/../third_party/android_tools/sdk/tools/android update sdk --no-ui \
107 --filter ${pkg_id}
109 done
112 echo "install-build-deps-android.sh complete."