blob: ac29e3fb8dde1d1c8c361f21785efd49fe58c4a0 [file] [log] [blame]
# Copyright 2022 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/components.gni")
import("//build/go/go_library.gni")
import("//build/go/go_test.gni")
import("//build/test.gni")
import("udp_serde_include_dirs.gni")
udp_serde_public_deps =
[ "//sdk/fidl/fuchsia.posix.socket:fuchsia.posix.socket_cpp" ]
# Source set for use by targets in the SDK, which can't depend on a
# shared library defined outside the SDK.
source_set("udp_serde") {
sources = [ "udp_serde.cc" ]
public_deps = udp_serde_public_deps
public = [ "udp_serde.h" ]
}
# Shared library for use by golang targets. Fuchsia's build system doesn't
# support directly compiling C++ files that #include generated FIDL headers
# from CGo. This library lets golang targets get around this limitation by
# using LLCPP internally while exposing a header without referencing any
# generated FIDL types.
shared_library("udp_serde_for_cgo") {
sources = [ "udp_serde.cc" ]
public = [ "udp_serde.h" ]
public_deps = udp_serde_public_deps
}
source_set("udp_serde_test_util") {
testonly = true
sources = [
"udp_serde_test_util.cc",
"udp_serde_test_util.h",
]
public_deps = [
":udp_serde",
"//sdk/fidl/fuchsia.posix.socket:fuchsia.posix.socket_cpp",
]
}
test("udp_serde_cpp_test") {
sources = [ "udp_serde_test.cc" ]
deps = [
":udp_serde",
":udp_serde_test_util",
"//sdk/lib/fidl/cpp/wire",
"//src/lib/fxl/test:gtest_main",
]
# TODO(https://fxbug.dev/42085293): delete the below and fix compiler warnings
configs += [ "//build/config:Wno-vla-cxx-extension" ]
}
test("udp_serde_c_compilation_test") {
sources = [ "udp_serde_c_compilation_test.c" ]
deps = [
":udp_serde",
"//zircon/system/ulib/zxtest",
]
}
fuchsia_unittest_package("udp_serde-unittests") {
deps = [ ":udp_serde_cpp_test" ]
}
fuchsia_unittest_package("udp_serde_c_compilation-unittest") {
deps = [ ":udp_serde_c_compilation_test" ]
}
go_library("golib") {
non_go_deps = [ ":udp_serde_for_cgo" ]
deps = [ "//src/connectivity/network/netstack/fidlconv" ]
sources = [
"errors.go",
"udp_serde.go",
"udp_serde.h",
"udp_serde_test.go",
]
}
go_test("udp_serde_test") {
library = ":golib"
}
fuchsia_unittest_package("udp_serde-gotests") {
deps = [ ":udp_serde_test" ]
}
group("tests") {
testonly = true
deps = [
":udp_serde-gotests",
":udp_serde-unittests",
":udp_serde_c_compilation-unittest",
]
}