From bbe61f92ec394b643c6da848cdc4e38576b89237 Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Fri, 20 May 2022 16:44:50 -0700 Subject: [PATCH] Document private items by default for binaries Summary: This matches Cargo's behavior. See [rust-lang/cargo#7593](https://github.com/rust-lang/cargo/pull/7593). Documentation for `rust_binary` targets is otherwise useless, since usually there is nothing in them declared `pub`. Reviewed By: zertosh Differential Revision: D36563393 fbshipit-source-id: 9ee64fb3f77caf7376a93eabfb309dc0adc1b45d --- prelude/rust/build.bzl | 6 +++++- prelude/rust/rust_binary.bzl | 9 ++++++++- prelude/rust/rust_library.bzl | 11 ++++++----- 3 files changed, 19 insertions(+), 7 deletions(-) diff --git a/prelude/rust/build.bzl b/prelude/rust/build.bzl index a260aad41914..21f7a0c103cc 100644 --- a/prelude/rust/build.bzl +++ b/prelude/rust/build.bzl @@ -92,7 +92,8 @@ def generate_rustdoc( # link style doesn't matter, but caller should pass in build params # with static-pic (to get best cache hits for deps) params: BuildParams.type, - default_roots: [str.type]) -> "artifact": + default_roots: [str.type], + document_private_items: bool.type) -> "artifact": toolchain_info = ctx_toolchain_info(ctx) common_args = _compute_common_args( @@ -122,6 +123,9 @@ def generate_rustdoc( common_args.args, ) + if document_private_items: + rustdoc_cmd.add("--document-private-items") + url_prefix = toolchain_info.extern_html_root_url_prefix for rust_dependency in resolve_deps(ctx): dep = rust_dependency.dep diff --git a/prelude/rust/rust_binary.bzl b/prelude/rust/rust_binary.bzl index 1877b5e8514e..c503f6a8d8a8 100644 --- a/prelude/rust/rust_binary.bzl +++ b/prelude/rust/rust_binary.bzl @@ -109,7 +109,14 @@ def _rust_binary_common( ) extra_targets += [ - ("doc", generate_rustdoc(ctx, compile_ctx, crate, style_param[LinkStyle("static_pic")], default_roots)), + ("doc", generate_rustdoc( + ctx = ctx, + compile_ctx = compile_ctx, + crate = crate, + params = style_param[LinkStyle("static_pic")], + default_roots = default_roots, + document_private_items = True, + )), ("expand", expand.outputs[Emit("expand")]), ] sub_targets = {k: [DefaultInfo(default_outputs = [v])] for k, v in extra_targets} diff --git a/prelude/rust/rust_library.bzl b/prelude/rust/rust_library.bzl index b312c7d7d17b..1443b046aa0c 100644 --- a/prelude/rust/rust_library.bzl +++ b/prelude/rust/rust_library.bzl @@ -160,11 +160,12 @@ def rust_library_impl(ctx: "context") -> ["provider"]: fail("Unhandled lang {}".format(lang)) rustdoc = generate_rustdoc( - ctx, - compile_ctx, - crate, - lang_style_param[(LinkageLang("rust"), LinkStyle("static_pic"))], - ["lib.rs"], + ctx = ctx, + compile_ctx = compile_ctx, + crate = crate, + params = lang_style_param[(LinkageLang("rust"), LinkStyle("static_pic"))], + default_roots = ["lib.rs"], + document_private_items = False, ) expand = rust_compile(