| # 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/dart/dart_library.gni") |
| import("//build/go/go_binary.gni") |
| import("//build/go/go_library.gni") |
| import("//build/host.gni") |
| import("//build/sdk/sdk_host_tool.gni") |
| import("//build/testing/golden_test.gni") |
| import("//tools/fidl/fidlc/testdata/info.gni") |
| |
| if (is_host) { |
| go_library("fidlgen_dart_lib") { |
| name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/..." |
| |
| deps = [ "//tools/fidl/lib/fidlgen" ] |
| sources = [ |
| "codegen/bits.tmpl", |
| "codegen/const.tmpl", |
| "codegen/enum.tmpl", |
| "codegen/generator.go", |
| "codegen/interface.tmpl", |
| "codegen/ir.go", |
| "codegen/library.tmpl", |
| "codegen/struct.tmpl", |
| "codegen/table.tmpl", |
| "codegen/union.tmpl", |
| "main.go", |
| ] |
| } |
| |
| go_binary("fidlgen_dart") { |
| gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_dart/" |
| deps = [ ":fidlgen_dart_lib" ] |
| } |
| |
| sdk_host_tool("fidlgen_dart_sdk") { |
| category = "partner" |
| output_name = "fidlgen_dart" |
| deps = [ ":fidlgen_dart" ] |
| } |
| |
| golden_test("fidlgen_dart_golden_tests") { |
| goldens_dir = "goldens" |
| reformat_goldens_bin = prebuilt_dart |
| reformat_goldens_args = [ |
| "format", |
| "-o", |
| "show", |
| ] |
| deps = [] |
| entries = [] |
| foreach(info, fidl_testdata_info) { |
| if (info.denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] == |
| info.denylist) { |
| deps += [ "${info.target}_dart_generate($dart_toolchain)" ] |
| dart_gen_dir = |
| get_label_info("${info.target}($dart_toolchain)", "target_gen_dir") |
| entries += [ |
| { |
| golden = "${info.name}_async.dart.golden" |
| generated = |
| "${dart_gen_dir}/${info.library}_package/lib/fidl_async.dart" |
| }, |
| { |
| golden = "${info.name}_test.dart.golden" |
| generated = |
| "${dart_gen_dir}/${info.library}_package/lib/fidl_test.dart" |
| }, |
| ] |
| } |
| } |
| } |
| } |
| |
| install_host_tools("host") { |
| deps = [ ":fidlgen_dart" ] |
| outputs = [ "fidlgen_dart" ] |
| } |
| |
| group("goldens") { |
| testonly = true |
| |
| deps = [] |
| foreach(info, fidl_testdata_info) { |
| if (info.build_denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] == |
| info.build_denylist) { |
| deps += [ info.target ] |
| } |
| } |
| } |
| |
| group("tests") { |
| # TODO(ianloic): put fidlgen_dart non-host test targets here |
| testonly = true |
| deps = [ |
| ":fidlgen_dart_golden_tests($host_toolchain)", |
| ":goldens($dart_toolchain)", |
| ] |
| } |