# Copyright 2021 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")

template("mac_toolchain") {
  clang_toolchain(target_name) {
    assert(host_os == "mac")
    assert(defined(invoker.toolchain_args),
           "toolchain_args must be defined for mac_toolchain()")

    toolchain_args = invoker.toolchain_args
    toolchain_args.current_os = "mac"
  }
}
mac_toolchain("clang_x64") {
  toolchain_args = {
    current_cpu = "x64"
  }
}
