# Copyright (C) 2017 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

declare_args() {
  android_api_level = 21
  android_ndk_root = rebase_path("//buildtools/ndk")
  _android_toolchain_version = "4.9"

  if (host_os == "linux") {
    android_host = "linux-x86_64"
  } else if (host_os == "mac") {
    android_host = "darwin-x86_64"
  } else {
    android_host = "UNSUPPORTED_ON_WINDOWS"
  }
}

declare_args() {
  android_llvm_dir = "$android_ndk_root/toolchains/llvm/prebuilt/$android_host"
  android_clangrt_dir = "$android_llvm_dir/lib64/clang/9.0.9/lib/linux"
  android_compile_sysroot = "$android_ndk_root/sysroot/usr/include"

  if (current_cpu == "x86") {
    android_abi_target = "i686-linux-android"
    android_compile_sysroot_subdir = "i686-linux-android"
    android_link_sysroot_subdir =
        "platforms/android-${android_api_level}/arch-x86"
    android_prebuilt_arch = "android-x86"
    android_toolchain_root = "$android_ndk_root/toolchains/x86-${_android_toolchain_version}/prebuilt/$android_host"
    android_llvm_arch = "i686"
  } else if (current_cpu == "arm") {
    android_abi_target = "arm-linux-androideabi"
    android_compile_sysroot_subdir = "arm-linux-androideabi"
    android_link_sysroot_subdir =
        "platforms/android-${android_api_level}/arch-arm"
    android_prebuilt_arch = "android-arm"
    android_toolchain_root = "$android_ndk_root/toolchains/arm-linux-androideabi-${_android_toolchain_version}/prebuilt/$android_host"
    android_llvm_arch = "arm"
  } else if (current_cpu == "x64") {
    android_abi_target = "x86_64-linux-android"
    android_compile_sysroot_subdir = "x86_64-linux-android"
    android_link_sysroot_subdir =
        "platforms/android-${android_api_level}/arch-x86_64"
    android_prebuilt_arch = "android-x86_64"
    android_toolchain_root = "$android_ndk_root/toolchains/x86_64-${_android_toolchain_version}/prebuilt/$android_host"
    android_llvm_arch = "x86_64"
  } else if (current_cpu == "arm64") {
    android_abi_target = "aarch64-linux-android"
    android_compile_sysroot_subdir = "aarch64-linux-android"
    android_link_sysroot_subdir =
        "platforms/android-${android_api_level}/arch-arm64"
    android_prebuilt_arch = "android-arm64"
    android_toolchain_root = "$android_ndk_root/toolchains/aarch64-linux-android-${_android_toolchain_version}/prebuilt/$android_host"
    android_llvm_arch = "aarch64"
  } else {
    assert(false, "Need android libgcc support for this arch.")
  }

  if (current_cpu == "x86") {
    android_app_abi = "x86"
  } else if (current_cpu == "arm") {
    android_app_abi = "armeabi-v7a"
  } else if (current_cpu == "x64") {
    android_app_abi = "x86_64"
  } else if (current_cpu == "arm64") {
    android_app_abi = "arm64-v8a"
  } else {
    assert(false, "Unknown ABI: " + current_cpu)
  }
}
