# Copyright 2024 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/fidl/fidl.gni")

# Declares a FIDL library for use in the FIDL toolchain golden testing.
# See //build/fidl/fidl.gni for parameters.
template("fidl_golden_library") {
  fidl(target_name) {
    forward_variables_from(invoker, "*")

    testonly = true
    visibility = [
      "//src/devices/tools/fidlgen_banjo/*",
      "//tools/fidl/*",
    ]

    enable_hlcpp = true
    enable_rust_drivers = true
    enable_rust_next = true
    disable_rustdoc = true

    available = [
      "fuchsia:HEAD",
      "test:HEAD",
    ]

    if (!defined(experimental_flags)) {
      experimental_flags = []
    }
    experimental_flags += [ "output_index_json" ]
  }
}
