# Copyright 2019 The Fuchsia 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/toolchain/clang_toolchain.gni")

# Fuchsia builds using the Clang toolchain, with most parameters common across
# the different target architectures.
template("fuchsia_toolchain") {
  clang_toolchain(target_name) {
    assert(host_os == "linux" || host_os == "mac")
    assert(defined(invoker.toolchain_args),
           "toolchain_args must be defined for fuchsia_clang_toolchain()")

    default_shlib_subdir = "/lib"
    toolchain_args = invoker.toolchain_args
    toolchain_args.current_os = "fuchsia"
  }
}

fuchsia_toolchain("x64") {
  toolchain_args = {
    current_cpu = "x64"
  }
}

fuchsia_toolchain("arm64") {
  toolchain_args = {
    current_cpu = "arm64"
  }
}
