blob: 7d39132b04d6a523312e84fb7421787a27d16758 [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/host.gni")
import("//build/package.gni")
import("//build/rust/rustc_binary.gni")
import("//build/rust/rustc_library.gni")
import("//build/rust/rustc_test.gni")
group("banjo") {
public_deps = [ ":banjo_bin($host_toolchain)" ]
}
group("tests") {
testonly = true
public_deps = [ ":banjo_unittests($host_toolchain)" ]
}
rustc_binary("banjo_bin") {
edition = "2018"
deps = [
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:heck",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:pest",
"//third_party/rust_crates:pest_derive",
"//third_party/rust_crates:regex",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:structopt",
"//third_party/rust_crates:thiserror",
]
source_root = "src/main.rs"
sources = [
"src/ast.rs",
"src/backends/ast.rs",
"src/backends/c.rs",
"src/backends/cpp.rs",
"src/backends/mod.rs",
"src/backends/rust.rs",
"src/backends/templates/rust/body.rs",
"src/backends/templates/rust/enum.rs",
"src/backends/templates/rust/header.rs",
"src/backends/templates/rust/struct.rs",
"src/backends/templates/rust/union.rs",
"src/backends/util.rs",
"src/fidl.rs",
"src/main.rs",
"src/parser.rs",
]
inputs = [
"src/backends/templates/c/callback.h",
"src/backends/templates/c/proto_transform.h",
"src/backends/templates/cpp/base_protocol.h",
"src/backends/templates/cpp/mock_header.h",
"src/backends/templates/c/struct.h",
"src/backends/templates/cpp/example.h",
"src/backends/templates/cpp/internal.h",
"zx.banjo",
"src/backends/templates/c/protocol_ops.h",
"src/backends/templates/cpp/proto_transform.h",
"src/backends/templates/cpp/protocol.h",
"src/backends/templates/cpp/interface.h",
"src/backends/templates/cpp/header.h",
"src/backends/templates/cpp/footer.h",
"src/backends/templates/cpp/mock.h",
"src/backends/templates/c/header.h",
"src/backends/templates/cpp/mock_expect.h",
"src/backends/templates/c/protocol.h",
"src/backends/templates/cpp/internal_protocol.h",
"src/backends/templates/c/body.h",
"src/backends/templates/cpp/internal_static_assert.h",
"src/backends/templates/cpp/internal_decl.h",
]
}
rustc_library("banjo_lib") {
edition = "2018"
deps = [
"//third_party/rust_crates:anyhow",
"//third_party/rust_crates:heck",
"//third_party/rust_crates:lazy_static",
"//third_party/rust_crates:pest",
"//third_party/rust_crates:pest_derive",
"//third_party/rust_crates:regex",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
"//third_party/rust_crates:structopt",
"//third_party/rust_crates:thiserror",
]
source_root = "src/lib.rs"
sources = [
"src/ast.rs",
"src/backends/ast.rs",
"src/backends/c.rs",
"src/backends/cpp.rs",
"src/backends/mod.rs",
"src/backends/rust.rs",
"src/backends/templates/rust/body.rs",
"src/backends/templates/rust/enum.rs",
"src/backends/templates/rust/header.rs",
"src/backends/templates/rust/struct.rs",
"src/backends/templates/rust/union.rs",
"src/backends/util.rs",
"src/fidl.rs",
"src/lib.rs",
"src/parser.rs",
]
inputs = [
"src/backends/templates/cpp/base_protocol.h",
"src/backends/templates/cpp/mock_header.h",
"src/backends/templates/cpp/internal_static_assert.h",
"src/backends/templates/c/header.h",
"src/backends/templates/cpp/mock_expect.h",
"src/backends/templates/cpp/internal.h",
"src/backends/templates/cpp/interface.h",
"src/backends/templates/c/protocol_ops.h",
"src/backends/templates/cpp/footer.h",
"src/backends/templates/c/body.h",
"src/backends/templates/cpp/example.h",
"src/backends/templates/cpp/header.h",
"src/backends/templates/cpp/mock.h",
"src/backends/templates/c/protocol.h",
"src/backends/templates/c/struct.h",
"src/backends/templates/c/proto_transform.h",
"src/backends/templates/cpp/internal_decl.h",
"src/backends/templates/cpp/internal_protocol.h",
"src/backends/templates/cpp/protocol.h",
"src/backends/templates/cpp/proto_transform.h",
"src/backends/templates/c/callback.h",
]
}
if (host_toolchain == current_toolchain) {
rustc_test("banjo_unittests") {
edition = "2018"
deps = [
":banjo_bin",
":banjo_lib($host_toolchain)",
"//third_party/rust_crates:pest",
"//third_party/rust_crates:pretty_assertions",
"//third_party/rust_crates:serde",
"//third_party/rust_crates:serde_json",
]
source_root = "test/tests.rs"
sources = [
"test/ast_tests.rs",
"test/codegen_tests.rs",
"test/fidl_tests.rs",
"test/negative_tests.rs",
"test/rust/alignment.rs",
"test/rust/attributes.rs",
"test/rust/empty.rs",
"test/rust/enums.rs",
"test/rust/example-0.rs",
"test/rust/example-1.rs",
"test/rust/example-2.rs",
"test/rust/example-3.rs",
"test/rust/example-4.rs",
"test/rust/example-6.rs",
"test/rust/example-7.rs",
"test/rust/example-8.rs",
"test/rust/example-9.rs",
"test/rust/point.rs",
"test/rust/rust-derive.rs",
"test/rust/simple.rs",
"test/rust/tables.rs",
"test/rust/types.rs",
"test/rust/view.rs",
"test/tests.rs",
]
inputs = [
"test/ast/protocol-primitive.test.ast",
"test/ast/example-2.test.ast",
"test/cpp/protocol-base-internal.h",
"test/banjo/callback.test.banjo",
"test/cpp/view.h",
"test/c/interface.h",
"test/cpp/mock-protocol-handle.h",
"test/c/types.h",
"test/cpp/simple-internal.h",
"test/banjo/example-0.test.banjo",
"test/cpp/example-6-internal.h",
"test/banjo/alignment.test.banjo",
"test/cpp/empty-internal.h",
"test/cpp/mock-protocol-primitive.h",
"test/banjo/example-1.test.banjo",
"test/banjo/example-9.test.banjo",
"test/banjo/example-8.test.banjo",
"test/ast/protocol-vector.test.ast",
"test/c/example-9.h",
"test/c/enums.h",
"test/ast/protocol-array.test.ast",
"test/ast/example-8.test.ast",
"test/cpp/protocol-base.h",
"test/ast/view.test.ast",
"test/cpp/mock-protocol-other-types.h",
"test/c/point.h",
"test/ast/protocol-other-types.test.ast",
"test/c/example-3.h",
"test/cpp/mock-protocol-base.h",
"test/c/callback.h",
"test/ast/example-6.test.ast",
"test/c/tables.h",
"test/banjo/example-7.test.banjo",
"test/banjo/protocol-base.test.banjo",
"test/banjo/view.test.banjo",
"test/c/protocol-handle.h",
"test/ast/example-0.test.ast",
"test/banjo/enums.test.banjo",
"test/c/example-7.h",
"test/c/alignment.h",
"test/cpp/example-9-internal.h",
"test/ast/example-3.test.ast",
"test/ast/attributes.test.ast",
"test/banjo/protocol-handle.test.banjo",
"test/cpp/empty.h",
"test/cpp/example-6.h",
"test/banjo/protocol-array.test.banjo",
"test/banjo/api.test.banjo",
"test/c/view.h",
"test/banjo/rust-derive.test.banjo",
"test/cpp/protocol-other-types.h",
"test/banjo/tables.test.banjo",
"test/cpp/protocol-vector-internal.h",
"test/banjo/protocol-other-types.test.banjo",
"test/cpp/example-7-internal.h",
"test/cpp/view-internal.h",
"test/ast/enums.test.ast",
"test/ast/interface.test.ast",
"test/ast/example-4.test.ast",
"test/ast/example-1.test.ast",
"test/ast/protocol-handle.test.ast",
"test/ast/protocol-base.test.ast",
"test/banjo/simple.test.banjo",
"test/banjo/example-2.test.banjo",
"test/banjo/attributes.test.banjo",
"test/cpp/example-9.h",
"test/cpp/mock-protocol-array.h",
"test/cpp/interface.h",
"test/ast/callback.test.ast",
"test/c/protocol-other-types.h",
"test/banjo/point.test.banjo",
"test/banjo/example-3.test.banjo",
"test/ast/point.test.ast",
"test/cpp/protocol-primitive-internal.h",
"test/ast/example-7.test.ast",
"test/cpp/protocol-other-types-internal.h",
"test/ast/empty.test.ast",
"test/banjo/interface.test.banjo",
"test/ast/example-9.test.ast",
"test/c/example-0.h",
"test/c/empty.h",
"test/banjo/protocol-primitive.test.banjo",
"test/banjo/protocol-vector.test.banjo",
"test/cpp/protocol-primitive.h",
"test/cpp/protocol-vector.h",
"test/ast/alignment.test.ast",
"test/cpp/example-7.h",
"test/c/protocol-primitive.h",
"test/cpp/mock-protocol-vector.h",
"test/banjo/empty.test.banjo",
"test/c/simple.h",
"test/cpp/protocol-array.h",
"test/cpp/interface-internal.h",
"test/c/example-1.h",
"test/fidl/test.fidl.json",
"test/cpp/protocol-handle-internal.h",
"test/cpp/example-4-internal.h",
"test/ast/tables.test.ast",
"test/banjo/example-4.test.banjo",
"test/cpp/mock-pass-callback.h",
"test/banjo/example-6.test.banjo",
"test/cpp/protocol-handle.h",
"test/c/protocol-vector.h",
"test/c/example-6.h",
"test/cpp/protocol-array-internal.h",
"test/ast/types.test.ast",
"test/c/example-4.h",
"test/cpp/callback.h",
"test/ast/simple.test.ast",
"test/c/protocol-array.h",
"test/cpp/callback-internal.h",
"test/banjo/types.test.banjo",
"zx.banjo",
"test/banjo/bad_type.test.banjo",
"test/c/protocol-base.h",
"test/c/example-2.h",
"test/cpp/example-4.h",
"test/banjo/pass-callback.test.banjo",
"test/cpp/simple.h",
"test/c/attributes.h",
"test/c/example-8.h",
]
}
}