blob: 7bb3bd1dab67add0f031026633bc35fb9939c71d [file] [edit]
# 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",
],
)