# Copyright 2018 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/banjo/toolchain.gni")
import("//build/toolchain/basic_toolchain.gni")

# A toolchain dedicated to processing Banjo libraries.
# The only targets in this toolchain are action() targets, so it
# has no real tools.  But every toolchain needs stamp and copy.
basic_toolchain("banjoing") {
  expected_label = banjo_toolchain
}
