# Copyright 2016 The Native Client Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

declare_args() {
  # Untrusted architecture
  use_nacl_x86 = target_cpu == "x86"
  use_nacl_x64 = target_cpu == "x64" || target_os == "win"
  use_nacl_arm = target_cpu == "arm"
  # Untrusted libc
  use_gcc_glibc = false
  use_clang_newlib = true
}

declare_args() {
  if (use_nacl_x86) {
    if (use_gcc_glibc) {
      toolchain_untrusted = "//build/toolchain/nacl:glibc_x86"
    }
    if (use_clang_newlib) {
      toolchain_untrusted = "//build/toolchain/nacl:clang_newlib_x86"
    }
    toolchain_irt = "//build/toolchain/nacl:irt_x86"
  }
  if (use_nacl_x64) {
    if (use_gcc_glibc) {
      toolchain_untrusted = "//build/toolchain/nacl:glibc_x64"
    }
    if (use_clang_newlib) {
      toolchain_untrusted = "//build/toolchain/nacl:clang_newlib_x64"
    }
    toolchain_irt = "//build/toolchain/nacl:irt_x64"
  }
  if (use_nacl_arm) {
    if (use_gcc_glibc) {
      toolchain_untrusted = "//build/toolchain/nacl:glibc_arm"
    }
    if (use_clang_newlib) {
      toolchain_untrusted = "//build/toolchain/nacl:clang_newlib_arm"
    }
    toolchain_irt = "//build/toolchain/nacl:irt_arm"
  }
}
