blob: b573a73778e63ef1048b28311451ea133cd67ffe [file] [log] [blame]
# 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/compiled_action.gni")
import("//build/dart/fidlmerge_dart.gni")
import("//build/dart/toolchain.gni")
# Declares a library that contains Dart JSON serialization/deserialization
# support for the given FIDL library
#
# Parameters
#
# fidl_target (required)
# Specifies the fidl target from which to read fidl json. For example,
# "//sdk/fidl/fuchsia.setui" for fuchsia.setui.
#
# template_path (optional)
# Specifies the template to use to generate the formatting code. Default
# //topaz/bin/dart_fidl_json/json.fidlmerge.
#
# amendments_path (optional)
# Specifies a JSON file that contains amendments to be made to the fidl
# model before the template is applied. For example,
# "//garnet/public/build/fostr/fidl/fuchsia.media/amendments.fidlmerge".
# See the fidlmerge README for details.
#
# deps, public_deps, test_only, visibility (optional)
# These parameters are forwarded to the source_set. This template lists
# //garnet/public/lib/fostr and the value of fidl_target as public_deps.
#
template("json_fidl") {
assert(defined(invoker.fidl_target),
"json_fidl requires parameter fidl_target.")
fidl_target = invoker.fidl_target
template_path = "//topaz/bin/dart_fidl_json/json.fidlmerge"
if (defined(invoker.template_path)) {
template_path = invoker.template_path
}
fidlmerge_dart(target_name) {
forward_variables_from(invoker,
[
"deps",
"testonly",
"visibility",
"amendments_path",
])
fidl_target = "$fidl_target"
template_path = "$template_path"
generated_source_base = "json"
if (defined(invoker.additional_include)) {
options = "include=${invoker.additional_include}"
}
}
}