blob: b1ce65d2cbcb9f602ddaa9b78a98549a2955d22a [file] [log] [blame] [edit]
# Copyright 2020 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/go/go_binary.gni")
import("//build/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/go/toolchain.gni")
import("//build/host.gni")
import("//build/testing/golden_test.gni")
import("//zircon/tools/fidl/testdata/info.gni")
go_library("gopkg") {
name = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go/..."
deps = [ "//tools/fidl/lib/fidlgen" ]
sources = [
"codegen/bits.tmpl.go",
"codegen/codegen.go",
"codegen/enum.tmpl.go",
"codegen/ir.go",
"codegen/ir_test.go",
"codegen/library.tmpl.go",
"codegen/protocol.tmpl.go",
"codegen/struct.tmpl.go",
"codegen/table.tmpl.go",
"codegen/union.tmpl.go",
"main.go",
]
}
go_binary("fidlgen_go") {
gopackage = "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go"
sdk_category = "partner"
deps = [ ":gopkg" ]
}
install_host_tools("host") {
deps = [ ":fidlgen_go" ]
outputs = [ "fidlgen_go" ]
}
go_test("fidlgen_go_lib_tests") {
gopackages = [ "go.fuchsia.dev/fuchsia/tools/fidl/fidlgen_go/codegen" ]
deps = [ ":gopkg" ]
}
golden_test("fidlgen_go_golden_tests") {
goldens_dir = "goldens"
deps = []
entries = []
foreach(info, fidl_testdata_info) {
if (info.denylist + [ "fidlgen_go" ] - [ "fidlgen_go" ] == info.denylist) {
deps += [ "${info.target}_go_generate($go_toolchain)" ]
entries += [
{
golden = "${info.name}.go.golden"
generated = "${info.fidl_gen_dir}/${info.target_name}/${info.library}.fidl/impl.go"
},
]
}
}
}
group("goldens") {
testonly = true
deps = []
foreach(info, fidl_testdata_info) {
if (info.build_denylist + [ "fidlgen_go" ] - [ "fidlgen_go" ] ==
info.build_denylist) {
deps += [ info.target ]
}
}
}
group("tests") {
testonly = true
deps = [
":fidlgen_go_golden_tests($host_toolchain)",
":fidlgen_go_lib_tests($host_toolchain)",
":goldens($go_toolchain)",
]
}