#!/bin/bash

# Copyright (c) 2012 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

# Script to install everything needed to build chromium on android, including
# items requiring sudo privileges.
# See https://www.chromium.org/developers/how-tos/android-build-instructions

args="$@"

if ! uname -m | egrep -q "i686|x86_64"; then
  echo "Only x86 architectures are currently supported" >&2
  exit
fi

# Exit if any commands fail.
set -e

lsb_release=$(lsb_release --codename --short)

# Install first the default Linux build deps.
"$(dirname "${BASH_SOURCE[0]}")/install-build-deps.sh" \
  --no-syms --lib32 --no-arm --no-chromeos-fonts --no-nacl --no-prompt "${args}"

# Fix deps
sudo apt-get -f install

# common
sudo apt-get -y install lib32z1 lighttpd python-pexpect xvfb x11-utils

# Some binaries in the Android SDK require 32-bit libraries on the host.
# See https://developer.android.com/sdk/installing/index.html?pkg=tools
sudo apt-get -y install libncurses5:i386 libstdc++6:i386 zlib1g:i386

# Required by //components/cronet/tools/generate_javadoc.py
# TODO(375324): Stop requiring ANT.
sudo apt-get -y install ant

# Required for apk-patch-size-estimator
sudo apt-get -y install bsdiff

# Do our own error handling for java.
set +e

function IsJava8() {
  # Arg is either "java" or "javac"
  $1 -version 2>&1 | grep -q '1\.8'
}

if ! (IsJava8 java && IsJava8 javac); then
  sudo apt-get -y install openjdk-8-jre openjdk-8-jdk
fi

# There can be several reasons why java8 is not default despite being installed.
# Just show an error and exit.
if ! (IsJava8 java && IsJava8 javac); then
  echo
  echo "Automatic java installation failed."
  echo '`java -version` reports:'
  java -version
  echo
  echo '`javac -version` reports:'
  javac -version
  echo
  echo "Please ensure that JDK 8 is installed and resolves first in your PATH."
  echo -n '`which java` reports: '
  which java
  echo -n '`which javac` reports: '
  which javac
  echo
  echo "You might also try running:"
  echo "    sudo update-java-alternatives -s java-1.8.0-openjdk-amd64"
  exit 1
fi

echo "install-build-deps-android.sh complete."
