| load("@bazel_skylib//:bzl_library.bzl", "bzl_library") |
| load("@rules_rust_mdbook//:defs.bzl", "mdbook", "mdbook_server") |
| load("@rules_shell//shell:sh_binary.bzl", "sh_binary") |
| load("@stardoc//stardoc:stardoc.bzl", "stardoc") |
| |
| package(default_visibility = ["//visibility:private"]) |
| |
| bzl_library( |
| name = "docs_deps", |
| srcs = [ |
| "@bazel_tools//tools:bzl_srcs", |
| ], |
| deps = [ |
| "@bazel_skylib//lib:paths", |
| "@bazel_skylib//lib:selects", |
| "@bazel_skylib//lib:structs", |
| "@bazel_skylib//rules:common_settings", |
| ], |
| ) |
| |
| bzl_library( |
| name = "all_docs", |
| deps = [ |
| ":docs_deps", |
| "@rules_rust//cargo:bzl_lib", |
| "@rules_rust//crate_universe:bzl_lib", |
| "@rules_rust//rust:bzl_lib", |
| "@rules_rust_bindgen//:bzl_lib", |
| "@rules_rust_prost//:bzl_lib", |
| "@rules_rust_protobuf//:bzl_lib", |
| "@rules_rust_wasm_bindgen//:bzl_lib", |
| ], |
| ) |
| |
| stardoc( |
| name = "cargo", |
| out = "src/cargo.md", |
| input = "@rules_rust//cargo:defs.bzl", |
| symbol_names = [ |
| "cargo_bootstrap_repository", |
| "cargo_build_script", |
| "cargo_dep_env", |
| "cargo_env", |
| "extract_cargo_lints", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust", |
| out = "src/rust.md", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rust_binary", |
| "rust_library", |
| "rust_library_group", |
| "rust_lint_config", |
| "rust_static_library", |
| "rust_shared_library", |
| "rust_proc_macro", |
| "rust_test", |
| "rust_test_suite", |
| "rust_unpretty_aspect", |
| "rust_unpretty", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_bzlmod", |
| out = "src/rust_bzlmod.md", |
| input = "@rules_rust//rust:extensions.bzl", |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_unpretty", |
| out = "src/rust_unpretty.md", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rust_unpretty_aspect", |
| "rust_unpretty", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "providers", |
| out = "src/providers.md", |
| input = "@rules_rust//rust/private:providers.bzl", |
| symbol_names = [ |
| "CrateInfo", |
| "DepInfo", |
| "StdLibInfo", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_analyzer", |
| out = "src/rust_analyzer.md", |
| header_template = ":rust_analyzer.vm", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rust_analyzer_aspect", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_clippy", |
| out = "src/rust_clippy.md", |
| header_template = ":rust_clippy.vm", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rust_clippy", |
| "rust_clippy_aspect", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_doc", |
| out = "src/rust_doc.md", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rust_doc", |
| "rust_doc_test", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_fmt", |
| out = "src/rust_fmt.md", |
| header_template = ":rust_fmt.vm", |
| input = "@rules_rust//rust:defs.bzl", |
| symbol_names = [ |
| "rustfmt_aspect", |
| "rustfmt_test", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_repositories", |
| out = "src/rust_repositories.md", |
| input = "@rules_rust//rust:repositories.bzl", |
| symbol_names = [ |
| "rules_rust_dependencies", |
| "rust_analyzer_toolchain_repository", |
| "rust_register_toolchains", |
| "rust_repositories", |
| "rust_repository_set", |
| "rust_stdlib_filegroup", |
| "rust_toolchain_repository_proxy", |
| "rust_toolchain_repository", |
| "rust_toolchain_tools_repository", |
| "rust_toolchain", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "rust_toolchains", |
| out = "src/rust_toolchains.md", |
| input = "@rules_rust//rust:toolchain.bzl", |
| symbol_names = [ |
| "rust_toolchain", |
| "rustfmt_toolchain", |
| "rust_analyzer_toolchain", |
| ], |
| table_of_contents_template = "@stardoc//stardoc:templates/markdown_tables/table_of_contents.vm", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "crate_universe_workspace", |
| out = "src/crate_universe_workspace.md", |
| input = "@rules_rust//crate_universe:defs.bzl", |
| deps = [":all_docs"], |
| ) |
| |
| stardoc( |
| name = "crate_universe_bzlmod", |
| out = "src/crate_universe_bzlmod.md", |
| input = "@rules_rust//crate_universe:extensions.bzl", |
| deps = [":all_docs"], |
| ) |
| |
| # This target exists to avoid this issue: |
| # https://github.com/bazelbuild/rules_cc/issues/279 |
| bzl_library( |
| name = "bindgen_lib", |
| srcs = [ |
| "@com_google_protobuf//:bzl_srcs", |
| "@rules_cc//cc:bzl_srcs", |
| ], |
| deps = [ |
| "@com_google_protobuf//bazel:cc_proto_library_bzl", |
| "@rules_cc//cc/common", |
| "@rules_cc//cc/toolchains:toolchain_rules", |
| "@rules_rust_bindgen//:bzl_lib", |
| ], |
| ) |
| |
| stardoc( |
| name = "rust_bindgen", |
| out = "src/rust_bindgen.md", |
| input = "@rules_rust_bindgen//:defs.bzl", |
| deps = [":bindgen_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_mdbook", |
| out = "src/rust_mdbook.md", |
| input = "@rules_rust_mdbook//:defs.bzl", |
| deps = ["@rules_rust_mdbook//:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_protobuf", |
| out = "src/rust_protobuf.md", |
| input = "@rules_rust_protobuf//:defs.bzl", |
| deps = ["@rules_rust_protobuf//:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_prost", |
| out = "src/rust_prost.md", |
| input = "@rules_rust_prost//:defs.bzl", |
| deps = ["@rules_rust_prost//:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_wasm_bindgen", |
| out = "src/rust_wasm_bindgen.md", |
| input = "@rules_rust_wasm_bindgen//:defs.bzl", |
| deps = ["@rules_rust_wasm_bindgen//:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_wasm_bindgen_rules_js", |
| out = "src/rust_wasm_bindgen_rules_js.md", |
| input = "@rules_rust_wasm_bindgen//rules_js:defs.bzl", |
| deps = ["@rules_rust_wasm_bindgen//rules_js:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "rust_settings", |
| out = "src/rust_settings.md", |
| func_template = "rust_settings_func.vm", |
| input = "@rules_rust//rust/settings:settings.bzl", |
| deps = ["@rules_rust//rust:bzl_lib"], |
| ) |
| |
| stardoc( |
| name = "cargo_settings", |
| out = "src/cargo_settings.md", |
| func_template = "cargo_settings_func.vm", |
| input = "@rules_rust//cargo/settings:settings.bzl", |
| deps = ["@rules_rust//cargo:bzl_lib"], |
| ) |
| |
| mdbook( |
| name = "book", |
| srcs = glob(["src/**/*.md"]) + [ |
| ":cargo", |
| ":cargo_settings", |
| ":crate_universe_bzlmod", |
| ":crate_universe_workspace", |
| ":providers", |
| ":rust", |
| ":rust_analyzer", |
| ":rust_bindgen", |
| ":rust_bzlmod", |
| ":rust_clippy", |
| ":rust_doc", |
| ":rust_fmt", |
| ":rust_mdbook", |
| ":rust_prost", |
| ":rust_protobuf", |
| ":rust_repositories", |
| ":rust_settings", |
| ":rust_toolchains", |
| ":rust_unpretty", |
| ":rust_wasm_bindgen", |
| ":rust_wasm_bindgen_rules_js", |
| ], |
| book = "book.toml", |
| ) |
| |
| alias( |
| name = "docs", |
| actual = ":book", |
| ) |
| |
| mdbook_server( |
| name = "server", |
| book = ":book", |
| ) |
| |
| sh_binary( |
| name = "publish_book", |
| srcs = ["publish_book.sh"], |
| data = [":book"], |
| env = {"BOOK_DIR": "$(rootpath :book)"}, |
| ) |