| # Copyright 2026 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. |
| |
| load("@platforms//host:constraints.bzl", "HOST_CONSTRAINTS") |
| load("//build/bazel/rules/rust:defs.bzl", "rustc_binary", "rustc_test") |
| |
| package( |
| default_applicable_licenses = ["//:license"], |
| default_visibility = ["//visibility:public"], |
| ) |
| |
| common_sources = [ |
| "src/fidljson.rs", |
| "src/main.rs", |
| "src/templates/markdown/mod.rs", |
| "src/templates/mod.rs", |
| ] |
| |
| common_compile_data = [ |
| "src/templates/markdown/partials/header.hbs", |
| "src/templates/markdown/partials/types/filename.hbs", |
| "src/templates/markdown/library.hbs", |
| "src/templates/markdown/partials/header_dir.hbs", |
| "src/templates/markdown/partials/declarations/tables.hbs", |
| "src/templates/markdown/partials/declarations/enums.hbs", |
| "src/templates/markdown/partials/declarations/constants.hbs", |
| "src/templates/markdown/partials/declarations/aliases.hbs", |
| "src/templates/markdown/partials/declarations/protocols.hbs", |
| "src/templates/markdown/partials/types/doc.hbs", |
| "src/templates/markdown/partials/declarations/bits.hbs", |
| "src/templates/markdown/partials/declarations/unions.hbs", |
| "src/templates/markdown/partials/declarations/services.hbs", |
| "src/templates/markdown/main.hbs", |
| "src/templates/markdown/toc.hbs", |
| "src/templates/markdown/partials/types/type.hbs", |
| "src/templates/markdown/partials/declarations/structs.hbs", |
| "src/templates/markdown/style.css", |
| ] |
| |
| # @bazel2gn:transformer=deps |
| common_deps = [ |
| "//third_party/rust_crates/vendor:anyhow", |
| "//third_party/rust_crates/vendor:argh", |
| "//third_party/rust_crates/vendor:handlebars", |
| "//third_party/rust_crates/vendor:heck", |
| "//third_party/rust_crates/vendor:log", |
| "//third_party/rust_crates/vendor:pulldown-cmark", |
| "//third_party/rust_crates/vendor:rayon", |
| "//third_party/rust_crates/vendor:regex", |
| "//third_party/rust_crates/vendor:serde", |
| "//third_party/rust_crates/vendor:serde_json", |
| "//third_party/rust_crates/vendor:simplelog", |
| ] |
| |
| # @bazel2gn:skip |
| rustc_binary( |
| name = "fidldoc", |
| srcs = common_sources, |
| compile_data = common_compile_data + [ |
| "src/templates/markdown/testdata/README.md", |
| "src/templates/markdown/testdata/_toc.yaml", |
| ], |
| crate_name = "fidldoc", |
| edition = "2024", |
| target_compatible_with = HOST_CONSTRAINTS, |
| deps = common_deps, |
| ) |
| |
| rustc_test( |
| name = "fidldoc_bin_test", |
| testonly = True, |
| srcs = common_sources, |
| compile_data = common_compile_data + [ |
| "src/templates/markdown/testdata/README.md", |
| "src/templates/markdown/testdata/_toc.yaml", |
| "src/fidldoc.config.json", |
| ], |
| crate_root = "src/main.rs", |
| edition = "2024", |
| target_compatible_with = HOST_CONSTRAINTS, |
| deps = common_deps + [ |
| "//third_party/rust_crates/vendor:tempfile", |
| ], |
| ) |