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

import("//build/config/android/config.gni")
import("//build/config/clang/clang.gni")
import("//build/config/sysroot.gni")  # Imports android/config.gni.
import("//build/toolchain/gcc_toolchain.gni")

declare_args() {
  # Whether unstripped binaries, i.e. compiled with debug symbols, should be
  # considered runtime_deps rather than stripped ones.
  android_unstripped_runtime_outputs = true
}

# The Android clang toolchains share most of the same parameters, so we have this
# wrapper around gcc_toolchain to avoid duplication of logic.
#
# Parameters:
#  - binary_prefix
#      Prefix of compiler executables.
template("android_clang_toolchain") {
  gcc_toolchain(target_name) {
    assert(defined(invoker.toolchain_args),
           "toolchain_args must be defined for android_clang_toolchain()")
    toolchain_args = invoker.toolchain_args
    toolchain_args.current_os = "android"

    # Output linker map files for binary size analysis.
    enable_linker_map = true

    _android_tool_prefix =
        "$android_toolchain_root/bin/${invoker.binary_prefix}-"

    # The tools should be run relative to the build dir.
    _tool_prefix = rebase_path("$_android_tool_prefix", root_build_dir)

    _prefix = rebase_path("$clang_base_path/bin", root_build_dir)
    cc = "$_prefix/clang"
    cxx = "$_prefix/clang++"
    ar = "$_prefix/llvm-ar"
    ld = cxx
    readelf = _tool_prefix + "readelf"
    nm = _tool_prefix + "nm"
    strip = rebase_path("//buildtools/third_party/eu-strip/bin/eu-strip",
                        root_build_dir)
    use_unstripped_as_runtime_outputs = android_unstripped_runtime_outputs

    # Don't use .cr.so for loadable_modules since they are always loaded via
    # absolute path.
    loadable_module_extension = ".so"
  }
}

android_clang_toolchain("android_clang_x86") {
  binary_prefix = "i686-linux-android"
  toolchain_args = {
    current_cpu = "x86"

    # We lack the libclang_rt.profile library for x86 and x86_64, so we cannot
    # link any binaries that are generated with coverage instrumentation.
    # Therefore we need to turn off 'use_clang_coverage' for this toolchain.
    # TODO(crbug.com/865376)
    use_clang_coverage = false
  }
}

android_clang_toolchain("android_clang_arm") {
  binary_prefix = "arm-linux-androideabi"
  toolchain_args = {
    current_cpu = "arm"
  }
}

android_clang_toolchain("android_clang_mipsel") {
  binary_prefix = "mipsel-linux-android"
  toolchain_args = {
    current_cpu = "mipsel"
  }
}

android_clang_toolchain("android_clang_x64") {
  binary_prefix = "x86_64-linux-android"
  toolchain_args = {
    current_cpu = "x64"

    # We lack the libclang_rt.profile library for x86 and x86_64, so we cannot
    # link any binaries that are generated with coverage instrumentation.
    # Therefore we need to turn off 'use_clang_coverage' for this toolchain.
    # TODO(crbug.com/865376)
    use_clang_coverage = false
  }
}

android_clang_toolchain("android_clang_arm64") {
  binary_prefix = "aarch64-linux-android"
  toolchain_args = {
    current_cpu = "arm64"
  }
}

android_clang_toolchain("android_clang_arm64_hwasan") {
  binary_prefix = "aarch64-linux-android"
  toolchain_args = {
    current_cpu = "arm64"
    is_hwasan = true
    android64_ndk_api_level = 29
  }
}

android_clang_toolchain("android_clang_mips64el") {
  binary_prefix = "mips64el-linux-android"
  toolchain_args = {
    current_cpu = "mips64el"
  }
}
