blob: 2d93f1ae64075b0885e199384157b488c3e041e5 [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/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_files.gni")
import("//tools/fidl/fidlc/testdata/info.gni")
if (is_host) {
go_library("codegen") {
source_dir = "codegen"
deps = [ "//tools/fidl/lib/fidlgen" ]
sources = [
"bits.tmpl",
"const.tmpl",
"enum.tmpl",
"generator.go",
"interface.tmpl",
"ir.go",
"library.tmpl",
"struct.tmpl",
"table.tmpl",
"union.tmpl",
]
}
go_library("main") {
deps = [
":codegen",
"//tools/fidl/lib/fidlgen",
]
sources = [ "main.go" ]
}
go_binary("fidlgen_dart") {
library = ":main"
}
sdk_host_tool("fidlgen_dart_sdk") {
category = "partner"
output_name = "fidlgen_dart"
deps = [ ":fidlgen_dart" ]
}
golden_files("fidlgen_dart_golden_tests") {
testonly = true
formatter = {
script = prebuilt_dart
args = [
"format",
"-o",
"show",
]
}
deps = []
comparisons = []
foreach(info, fidl_testdata_info) {
if (info.denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] ==
info.denylist) {
deps += [ "${info.target}_dart_generate($dart_toolchain)" ]
comparisons += [
{
golden = "goldens/${info.name}_async.dart.golden"
candidate = "${info.fidl_gen_dir}/${info.target_name}/dart/lib/fidl_async.dart"
},
{
golden = "goldens/${info.name}_test.dart.golden"
candidate = "${info.fidl_gen_dir}/${info.target_name}/dart/lib/fidl_test.dart"
},
]
}
}
}
}
install_host_tools("host") {
deps = [ ":fidlgen_dart" ]
outputs = [ "fidlgen_dart" ]
}
if (current_toolchain == dart_toolchain) {
group("goldens") {
testonly = true
deps = []
foreach(info, fidl_testdata_info) {
if (info.build_denylist + [ "fidlgen_dart" ] - [ "fidlgen_dart" ] ==
info.build_denylist) {
deps += [ info.target + "_dart" ]
}
}
}
}
group("tests") {
# TODO(fxbug.dev/118283): put fidlgen_dart non-host test targets here
testonly = true
deps = [
":fidlgen_dart_golden_tests($host_toolchain)",
":goldens($dart_toolchain)",
]
}