# 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) {
  assert(rebase_path("//", root_build_dir) == "../../",
         "Android output directory must be nested 2 levels within src/ (" +
             "e.g.: out-gn/Debug). http://crbug.com/412935")
  has_chrome_android_internal =
      exec_script("//build/dir_exists.py",
                  [ rebase_path("//clank", root_build_dir) ],
                  "string") == "True"

  if (has_chrome_android_internal) {
    import("//clank/config.gni")
  }

  if (!defined(extra_chrome_shared_library_configs)) {
    extra_chrome_shared_library_configs = []
  }

  if (!defined(default_android_ndk_root)) {
    default_android_ndk_root = "//third_party/android_tools/ndk"
  }

  if (!defined(default_android_sdk_root)) {
    default_android_sdk_root = "//third_party/android_tools/sdk"
    default_android_sdk_version = "23"
    default_android_sdk_build_tools_version = "23.0.1"
  }

  if (!defined(default_android_keystore_path)) {
    default_android_keystore_path =
        "//build/android/ant/chromium-debug.keystore"
    default_android_keystore_name = "chromiumdebugkey"
    default_android_keystore_password = "chromium"
  }

  if (!defined(google_play_services_library)) {
    google_play_services_library =
        "//third_party/android_tools:google_play_services_default_java"
  }

  if (!defined(google_play_services_resources)) {
    google_play_services_resources =
        "//third_party/android_tools:google_play_services_default_resources"
  }

  webview_public_framework_jar =
      "//third_party/android_platform/webview/frameworks_6.0.jar"
  if (!defined(webview_framework_jar)) {
    webview_framework_jar = webview_public_framework_jar
  }

  declare_args() {
    android_ndk_root = default_android_ndk_root

    android_sdk_root = default_android_sdk_root
    android_sdk_version = default_android_sdk_version
    android_sdk_build_tools_version = default_android_sdk_build_tools_version

    # Libc++ library directory. Override to use a custom libc++ binary.
    android_libcpp_lib_dir = ""

    # Android versionCode for android_apk()s that don't expclitly set one.
    android_default_version_code = "1"

    # Android versionName for android_apk()s that don't expclitly set one.
    android_default_version_name = "Developer Build"

    # The path to the keystore to use for signing builds.
    android_keystore_path = default_android_keystore_path

    # The name of the keystore to use for signing builds.
    android_keystore_name = default_android_keystore_name

    # The password for the keystore to use for signing builds.
    android_keystore_password = default_android_keystore_password

    # Set to true to run findbugs on JAR targets.
    run_findbugs = false

    # Set to true to enable verbose findbugs logging. This does nothing if
    # run_findbugs is false.
    findbugs_verbose = false

    # Enables verbose proguard output (summaries and unfiltered output).
    proguard_verbose = false

    # Set to true to enable the Errorprone compiler
    use_errorprone_java_compiler = false

    # Enables EMMA Java code coverage. Instruments classes during build to
    # produce .ec files during runtime
    emma_coverage = false

    # EMMA filter string consisting of a list of inclusion/exclusion patterns
    # separated with whitespace and/or comma. Only has effect if
    # emma_coverage==true
    emma_filter = ""

    # Disables process isolation when building _incremental targets.
    # Required for Android M+ due to SELinux policies (stronger sandboxing).
    disable_incremental_isolated_processes = false

    # Speed up incremental compiles by compiling only changed files.
    enable_incremental_javac = false

    # Speed up dexing using dx --incremental.
    enable_incremental_dx = is_debug

    # Neither of these should ever be used for release builds since they are
    # somewhat experimental and dx --incremental is known to not produce
    # byte-for-byte identical output.
    assert(!(enable_incremental_dx && !is_debug))
    assert(!(enable_incremental_javac && !is_debug))

    # Adds intrumentation to each function. Writes a file with the order that
    # functions are called at startup.
    use_order_profiling = false
  }

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

  # Defines the name the Android build gives to the current host CPU
  # architecture, which is different than the names GN uses.
  if (host_cpu == "x64") {
    android_host_arch = "x86_64"
  } else if (host_cpu == "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 (host_os == "linux") {
    android_host_os = "linux"
  } else if (host_os == "mac") {
    android_host_os = "darwin"
  } 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_include_dir = "$android_ndk_root/usr/include"

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

  # 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 = 16
  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"
  _android64_api_level = 21
  x86_64_android_sysroot_subdir =
      "platforms/android-${_android64_api_level}/arch-x86_64"
  arm64_android_sysroot_subdir =
      "platforms/android-${_android64_api_level}/arch-arm64"
  mips64_android_sysroot_subdir =
      "platforms/android-${_android64_api_level}/arch-mips64"

  # 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}"
  x86_64_android_toolchain_root = "$android_ndk_root/toolchains/x86_64-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
  arm64_android_toolchain_root = "$android_ndk_root/toolchains/aarch64-linux-android-${_android_toolchain_version}/prebuilt/${android_host_os}-${android_host_arch}"
  mips64_android_toolchain_root = "$android_ndk_root/toolchains/mips64el-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 (current_cpu == "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 (current_cpu == "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 (current_cpu == "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 if (current_cpu == "x64") {
    android_prebuilt_arch = "android-x86_64"
    _binary_prefix = "x86_64-linux-android"
    android_toolchain_root = "$x86_64_android_toolchain_root"
    android_libgcc_file = "$android_toolchain_root/lib/gcc/x86_64-linux-android/${_android_toolchain_version}/libgcc.a"
  } else if (current_cpu == "arm64") {
    android_prebuilt_arch = "android-arm64"
    _binary_prefix = "aarch64-linux-android"
    android_toolchain_root = "$arm64_android_toolchain_root"
    android_libgcc_file = "$android_toolchain_root/lib/gcc/aarch64-linux-android/${_android_toolchain_version}/libgcc.a"
  } else if (current_cpu == "mips64el") {
    android_prebuilt_arch = "android-mips64"
    _binary_prefix = "mips64el-linux-android"
    android_toolchain_root = "$mips64_android_toolchain_root"
    android_libgcc_file = "$android_toolchain_root/lib/gcc/mips64el-linux-android/${_android_toolchain_version}/libgcc.a"
  } else {
    assert(false, "Need android libgcc support for your target arch.")
  }

  android_tool_prefix = "$android_toolchain_root/bin/$_binary_prefix-"
  android_readelf = "${android_tool_prefix}readelf"
  android_objcopy = "${android_tool_prefix}objcopy"
  android_gdbserver =
      "$android_ndk_root/prebuilt/$android_prebuilt_arch/gdbserver/gdbserver"

  # Toolchain stuff ------------------------------------------------------------

  android_libcpp_root = "$android_ndk_root/sources/cxx-stl/llvm-libc++"

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

  # Intentionally do not define android_app_secondary_abi for 64-bit
  # android_app_abi, since they are not used.
  if (current_cpu == "x86") {
    android_app_abi = "x86"
    android_app_secondary_abi = "x86_64"
  } else if (current_cpu == "arm") {
    import("//build/config/arm.gni")
    if (arm_version < 7) {
      android_app_abi = "armeabi"
    } else {
      android_app_abi = "armeabi-v7a"
    }
    android_app_secondary_abi = "arm64-v8a"
  } else if (current_cpu == "mipsel") {
    android_app_abi = "mips"
    android_app_secondary_abi = "mips64"
  } else if (current_cpu == "x64") {
    android_app_abi = "x86_64"
  } else if (current_cpu == "arm64") {
    android_app_abi = "arm64-v8a"
  } else if (current_cpu == "mips64el") {
    android_app_abi = "mips64"
  } else {
    assert(false, "Unknown Android ABI: " + current_cpu)
  }

  if (android_libcpp_lib_dir == "") {
    android_libcpp_lib_dir = "${android_libcpp_root}/libs/${android_app_abi}"
  }
}
