From ab77bd5b81ed54d985a9a6da584afd3bfd4fdf09 Mon Sep 17 00:00:00 2001 From: fwe Date: Tue, 5 Apr 2022 04:07:00 -0700 Subject: [PATCH] Bazel DocGen: Add target for generating all reference docs at once. I tested this changed manually in the git repo. PiperOrigin-RevId: 439539890 --- .../java/com/google/devtools/build/lib/BUILD | 23 +++++++++++++++++++ tools/build_defs/repo/BUILD | 5 +++- 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/google/devtools/build/lib/BUILD b/src/main/java/com/google/devtools/build/lib/BUILD index b2a63715a389ef..3a22a1b8261cbe 100644 --- a/src/main/java/com/google/devtools/build/lib/BUILD +++ b/src/main/java/com/google/devtools/build/lib/BUILD @@ -497,3 +497,26 @@ genrule( tools = ["//src/main/java/com/google/devtools/build/docgen:skydoc_bin"], visibility = ["//site:__pkg__"], ) + +genrule( + name = "gen_reference_docs", + srcs = [ + ":build-encyclopedia.zip", + ":command-line-reference.html", + ":skylark-library.zip", + "//tools/build_defs/repo:doc", + ], + outs = ["reference-docs.zip"], + cmd = "mkdir -p $(@D)/gen_docs/reference/be && " + + "cp $(location :command-line-reference.html) $(@D)/gen_docs/reference/ && " + + "unzip -q -d $(@D)/gen_docs/reference/be/ $(location :build-encyclopedia.zip) && " + + "mkdir -p $(@D)/gen_docs/rules/lib/repo && " + + "unzip -q -d $(@D)/gen_docs/rules/lib/ $(location :skylark-library.zip) && " + + "tar -xf $(location //tools/build_defs/repo:doc) -C $(@D)/gen_docs/rules/lib/repo/ && " + + # Ugly hack: we want to preserve paths relative to gen_docs/, + # which means we have to temporarily cd into that directory and zip with -r. + "pushd $(@D)/gen_docs && " + + "zip -qr tmp.zip . && " + + "popd && mv $(@D)/gen_docs/tmp.zip $@", + visibility = ["//scripts/docs:__pkg__"], +) diff --git a/tools/build_defs/repo/BUILD b/tools/build_defs/repo/BUILD index 103d7c707db9df..dee7008d7fae49 100644 --- a/tools/build_defs/repo/BUILD +++ b/tools/build_defs/repo/BUILD @@ -63,5 +63,8 @@ pkg_tar( name = "doc", srcs = ["%s_md" % (name,) for name in REPO_BZL_FILES] + ["index.md"], strip_prefix = "/tools/build_defs/repo", - visibility = ["//site:__subpackages__"], + visibility = [ + "//site:__subpackages__", + "//src/main/java/com/google/devtools/build/lib:__pkg__", + ], )