# 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.

## BAZEL2GN SENTINEL - DO NOT EDIT BELOW THIS LINE ##
#
#  ________  _________  ________  ________
# |\   ____\|\___   ___\\   __  \|\   __  \
# \ \  \___|\|___ \  \_\ \  \|\  \ \  \|\  \
#  \ \_____  \   \ \  \ \ \  \\\  \ \   ____\
#   \|____|\  \   \ \  \ \ \  \\\  \ \  \___|
#     ____\_\  \   \ \__\ \ \_______\ \__\
#    |\_________\   \|__|  \|_______|\|__|
#    \|_________|
#
#
# AUTO-GENERATED - DO NOT EDIT
#
# The targets below are auto-generated based on the targets defined in the
# BUILD.bazel file from the same directory. If you made changes to targets in
# Bazel, instead of editing this file manually, run:
#
#   > fx bazel2gn
#
# Please do NOT edit this file directly. Instead, edit the BUILD.bazel file and
# rerun bazel2gn.

import("//build/tools/bazel2gn/bazel_migration.gni")

# A self-verification target for generated content in this file.
if (is_host) {
  verify_bazel2gn("verify_bazel2gn") {
  }
}

if (is_host) {
  go_library("codegen") {
    sources = [ "codegen.go" ]
    embedsrcs = [
      "driver/file_natural_messaging_header.tmpl",
      "driver/file_natural_messaging_source.tmpl",
      "driver/file_unified_header.tmpl",
      "driver/file_wire_header.tmpl",
      "driver/file_wire_messaging_header.tmpl",
      "driver/file_wire_messaging_source.tmpl",
      "driver/fragment_method_client_impl_async_buffer.tmpl",
      "driver/fragment_method_client_impl_oneway.tmpl",
      "driver/fragment_method_client_impl_oneway_buffer.tmpl",
      "driver/fragment_method_client_impl_sync.tmpl",
      "driver/fragment_method_completer_base.tmpl",
      "driver/fragment_method_unownedresult.tmpl",
      "driver/fragment_protocol_caller.tmpl",
      "driver/fragment_protocol_client_impl.tmpl",
      "driver/fragment_protocol_event_sender.tmpl",
      "file_common_types_format_header.tmpl",
      "file_common_types_header.tmpl",
      "file_common_types_source.tmpl",
      "file_hlcpp_conversion.tmpl",
      "file_markers.tmpl",
      "file_natural_messaging_header.tmpl",
      "file_natural_messaging_source.tmpl",
      "file_natural_ostream_header.tmpl",
      "file_natural_ostream_source.tmpl",
      "file_natural_types_header.tmpl",
      "file_natural_types_source.tmpl",
      "file_test_base.tmpl",
      "file_type_conversions_header.tmpl",
      "file_type_conversions_source.tmpl",
      "file_unified_header.tmpl",
      "file_wire_header.tmpl",
      "file_wire_messaging_header.tmpl",
      "file_wire_messaging_source.tmpl",
      "file_wire_test_base.tmpl",
      "file_wire_types_header.tmpl",
      "file_wire_types_source.tmpl",
      "fragment_alias.tmpl",
      "fragment_bits.tmpl",
      "fragment_const.tmpl",
      "fragment_enum.tmpl",
      "fragment_method_client_impl_async.tmpl",
      "fragment_method_client_impl_async_buffer.tmpl",
      "fragment_method_client_impl_oneway.tmpl",
      "fragment_method_client_impl_oneway_buffer.tmpl",
      "fragment_method_client_impl_sync.tmpl",
      "fragment_method_completer_base.tmpl",
      "fragment_method_event.tmpl",
      "fragment_method_request.tmpl",
      "fragment_method_response.tmpl",
      "fragment_method_result.tmpl",
      "fragment_method_types.tmpl",
      "fragment_method_unownedresult.tmpl",
      "fragment_protocol.tmpl",
      "fragment_protocol_caller.tmpl",
      "fragment_protocol_client_impl.tmpl",
      "fragment_protocol_details.tmpl",
      "fragment_protocol_dispatcher.tmpl",
      "fragment_protocol_event_handler.tmpl",
      "fragment_protocol_event_sender.tmpl",
      "fragment_protocol_interface.tmpl",
      "fragment_service.tmpl",
      "fragment_struct.tmpl",
      "fragment_table.tmpl",
      "fragment_union.tmpl",
      "natural_struct.tmpl",
      "natural_table.tmpl",
      "natural_union.tmpl",
    ]
    importpath = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_cpp/codegen"
    deps = [ "//tools/fidl/lib/fidlgen_cpp" ]
  }
}
