| # 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", |
| ] |
| } |
| } |