| # 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/bind/bind.gni") | |
| import("//build/components.gni") | |
| import("//build/drivers.gni") | |
| import("//build/rust/rustc_binary.gni") | |
| import("//build/test.gni") | |
| group("bindlib_codegen") { | |
| deps = [ | |
| ":check_golden", | |
| ":check_golden_cpp", | |
| ":check_golden_rust", | |
| ":parent_cpp_code", | |
| ":parent_rust_code", | |
| ] | |
| } | |
| # [START example_bind_lib_target] | |
| bind_library("my_bindlib_target") { # target_name | |
| source = "mybindlib.bind" | |
| name = "fuchsia.example.library" # library_name (optional, defaults to | |
| # target_name) | |
| public_deps = [ "//src/devices/bind/fuchsia.pci" ] | |
| } | |
| # [END example_bind_lib_target] | |
| # [START example_cpp_target] | |
| source_set("parent_cpp_code") { | |
| sources = [ "parent-driver.cc" ] | |
| deps = [ ":my_bindlib_target_cpp" ] | |
| } | |
| # [END example_cpp_target] | |
| # [START example_rust_target] | |
| rustc_binary("parent_rust_code") { | |
| edition = "2024" | |
| source_root = "parent-driver.rs" | |
| sources = [ "parent-driver.rs" ] | |
| deps = [ ":my_bindlib_target_rust" ] | |
| } | |
| # [END example_rust_target] | |
| # This is a duplicate of my_bindlib_target used to validate the goldens we are | |
| # checking in so the docs can show generated code. We don't want to show this | |
| # build target as an example since the golden file properties here are not | |
| # necessary. | |
| bind_library("check_golden") { | |
| source = "mybindlib.bind" | |
| name = "fuchsia.example.library" | |
| public_deps = [ "//src/devices/bind/fuchsia.pci" ] | |
| cpp_golden_file = "cpp_codegen.h.golden" | |
| rust_golden_file = "rust_codegen.rs.golden" | |
| } |