# Copyright 2014 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.

# This file contains common system config stuff for the Android build.

if (is_android) {
  declare_args() {
    # Absolute directory containing the Android source code.
    android_src = ""

    android_sdk_root = "//third_party/android_tools/sdk"
    android_sdk_version = "20"

    # This is set when building the Android WebView inside the Android build
    # system, using the 'android' gyp backend. The WebView code is still built
    # when this is unset, but builds using the normal chromium build system.
    is_android_webview_build = false

    android_default_keystore_path = "//build/android/ant/chromium-debug.keystore"
    android_default_keystore_name = "chromiumdebugkey"
    android_default_keystore_password = "chromium"

    # This is a unique identifier for a given build. It's used for
    # identifying various build artifacts corresponding to a particular build of
    # chrome (e.g. where to find archived symbols).
    android_chrome_build_id = "\"\""
  }

  if (is_android_webview_build) {
    assert(android_src != "",
           "You must specify android_src for an Android WebView build.")
  }


  # Host stuff -----------------------------------------------------------------

  # Defines the name the Android build gives to the current host CPU
  # architecture, which is different than the names GN uses.
  if (build_cpu_arch == "x64") {
    android_host_arch = "x86_64"
  } else if (build_cpu_arch == "x86") {
    android_host_arch = "x86"
  } else {
    assert(false, "Need Android toolchain support for your build CPU arch.")
  }

  # Defines the name the Android build gives to the current host CPU
  # architecture, which is different than the names GN uses.
  if (build_os == "linux") {
    android_host_os = "linux"
  } else {
    assert(false, "Need Android toolchain support for your build OS.")
  }

  # Directories and files ------------------------------------------------------
  #
  # We define may of the dirs strings here for each output architecture (rather
  # than just the current one) since these are needed by the Android toolchain
  # file to define toolchains for all possible targets in one pass.

  android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"

  # Path to the Android NDK and SDK.
  android_ndk_root = "//third_party/android_tools/ndk"

  android_sdk = "${android_sdk_root}/platforms/android-${android_sdk_version}"

  android_sdk_tools = "${android_sdk_root}/tools"
  android_sdk_build_tools = "${android_sdk_root}/build-tools/20.0.0"

  # Path to the SDK's android.jar
  android_sdk_jar = "$android_sdk/android.jar"

  zipalign_path = "$android_sdk_build_tools/zipalign"

  # Subdirectories inside android_ndk_root that contain the sysroot for the
  # associated platform.
  _android_api_level = 14
  x86_android_sysroot_subdir = "platforms/android-${_android_api_level}/arch-x86"
  arm_android_sysroot_subdir = "platforms/android-${_android_api_level}/arch-arm"
  mips_android_sysroot_subdir = "platforms/android-${_android_api_level}/arch-mips"

  # Toolchain root directory for each build. The actual binaries are inside
  # a "bin" directory inside of these.
  _android_toolchain_version = "4.9"
  x86_android_toolchain_root = "$android_ndk_root/toolchains/x86-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
  arm_android_toolchain_root = "$android_ndk_root/toolchains/arm-linux-androideabi-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
  mips_android_toolchain_root = "$android_ndk_root/toolchains/mipsel-linux-android-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"

  # Location of libgcc. This is only needed for the current GN toolchain, so we
  # only need to define the current one, rather than one for every platform
  # like the toolchain roots.
  if (cpu_arch == "x86") {
    android_prebuilt_arch = "android-x86"
    _binary_prefix = "i686-linux-android"
    android_toolchain_root = "$x86_android_toolchain_root"
    android_libgcc_file =
      "$android_toolchain_root/lib/gcc/i686-linux-android/${_android_toolchain_version}/libgcc.a"
  } else if (cpu_arch == "arm") {
    android_prebuilt_arch = "android-arm"
    _binary_prefix = "arm-linux-androideabi"
    android_toolchain_root = "$arm_android_toolchain_root"
    android_libgcc_file =
      "$android_toolchain_root/lib/gcc/arm-linux-androideabi/${_android_toolchain_version}/libgcc.a"
  } else if (cpu_arch == "mipsel") {
    android_prebuilt_arch = "android-mips"
    _binary_prefix = "mipsel-linux-android"
    android_toolchain_root = "$mips_android_toolchain_root"
    android_libgcc_file =
      "$android_toolchain_root/lib/gcc/mipsel-linux-android/${_android_toolchain_version}/libgcc.a"
  } else {
    assert(false, "Need android libgcc support for your target arch.")
  }

  android_readelf = "$android_toolchain_root/bin/$_binary_prefix-readelf"
  android_gdbserver = "$android_ndk_root/prebuilt/$android_prebuilt_arch/gdbserver/gdbserver"

  # stlport stuff --------------------------------------------------------------

  use_system_stlport = is_android_webview_build

  if (use_system_stlport) {
    android_stlport_library = "stlport"
  } else if (component_mode == "shared_library") {
    android_stlport_library = "stlport_shared"
  } else {
    android_stlport_library = "stlport_static"
  }

  # ABI ------------------------------------------------------------------------

  if (cpu_arch == "x86") {
    android_app_abi = "x86"
  } else if (cpu_arch == "arm") {
    import("//build/config/arm.gni")
    if (arm_version < 7) {
      android_app_abi = "armeabi"
    } else {
      android_app_abi = "armeabi-v7a"
    }
  } else if (cpu_arch == "mipsel") {
    android_app_abi = "mips"
  } else {
    assert(false, "Unknown Android ABI: " + cpu_arch)
  }
} else {
  if (!defined(is_android_webview_build)) {
    is_android_webview_build = false
  }
  use_system_stlport = false
}
