aiuto | 11462d1 | 2019-07-23 14:46:46 -0700 | [diff] [blame] | 1 | load("@rules_pkg//:pkg.bzl", "pkg_tar") |
Damien Martin-Guillerez | 49a3e4b | 2017-11-03 15:30:52 +0100 | [diff] [blame] | 2 | load("//scripts/docs:jekyll.bzl", "jekyll_build") |
Jingwen Chen | 186bdcd | 2018-12-14 10:27:23 -0800 | [diff] [blame] | 3 | load("//scripts/docs:doc_versions.bzl", "DOC_VERSIONS") |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 4 | |
Dmitry Lomov | 251d754 | 2015-11-18 16:16:22 +0000 | [diff] [blame] | 5 | exports_files( |
Ulf Adams | 9e24ebd | 2016-06-23 09:24:57 +0000 | [diff] [blame] | 6 | [ |
dmarting | cdb8a63 | 2017-09-04 11:43:35 +0200 | [diff] [blame] | 7 | "docs/user-manual.html", |
Ulf Adams | 9e24ebd | 2016-06-23 09:24:57 +0000 | [diff] [blame] | 8 | "command-line-reference-prefix.html", |
| 9 | "command-line-reference-suffix.html", |
| 10 | ], |
Dmitry Lomov | 251d754 | 2015-11-18 16:16:22 +0000 | [diff] [blame] | 11 | ) |
Damien Martin-Guillerez | de54bca | 2016-02-29 10:49:43 +0000 | [diff] [blame] | 12 | |
Laszlo Csomor | 3d21578 | 2017-07-27 11:34:09 +0200 | [diff] [blame] | 13 | exports_files( |
| 14 | [ |
| 15 | "images/favicon.ico", |
| 16 | ], |
| 17 | visibility = ["//src/main/native/windows:__pkg__"], |
| 18 | ) |
| 19 | |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 20 | DOT_GRAPH_HTML_FILES = [ |
dzc | 22b85a2 | 2017-05-31 20:37:50 +0200 | [diff] [blame] | 21 | "docs/query.html", |
| 22 | "docs/build-ref.html", |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 23 | ] |
| 24 | |
Damien Martin-Guillerez | de54bca | 2016-02-29 10:49:43 +0000 | [diff] [blame] | 25 | filegroup( |
| 26 | name = "srcs", |
| 27 | srcs = glob(["**"]), |
| 28 | visibility = ["//:__pkg__"], |
| 29 | ) |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 30 | |
Jingwen Chen | 762c27d | 2020-05-14 03:07:03 -0700 | [diff] [blame] | 31 | # Required to move the shared CSS Files from the external repo's execroot location |
| 32 | # to the _sass location expected by the local css/main.scss imports. |
| 33 | genrule( |
| 34 | name = "style-common", |
| 35 | srcs = ["@bazel_website//:_sass/style.scss"], |
| 36 | outs = ["_sass/style.scss"], |
| 37 | cmd = "cp $< $@", |
| 38 | ) |
| 39 | |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 40 | filegroup( |
| 41 | name = "jekyll-srcs", |
| 42 | srcs = glob( |
| 43 | ["**/*"], |
| 44 | exclude = [ |
| 45 | "BUILD", |
| 46 | "jekyll-tree.sh", |
| 47 | "*.swp", |
Ulf Adams | 9e24ebd | 2016-06-23 09:24:57 +0000 | [diff] [blame] | 48 | "command-line-reference-prefix.html", |
| 49 | "command-line-reference-suffix.html", |
David Chen | f328fde | 2016-07-27 00:12:32 +0000 | [diff] [blame] | 50 | "site/README.md", |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 51 | ] + DOT_GRAPH_HTML_FILES, |
Jingwen Chen | 762c27d | 2020-05-14 03:07:03 -0700 | [diff] [blame] | 52 | ) + [ |
| 53 | ":style-common", |
| 54 | ], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 55 | ) |
| 56 | |
| 57 | pkg_tar( |
| 58 | name = "jekyll-files", |
John Cater | 214a7ae | 2017-08-09 17:24:53 +0200 | [diff] [blame] | 59 | srcs = [":jekyll-srcs"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 60 | strip_prefix = ".", |
| 61 | ) |
| 62 | |
| 63 | pkg_tar( |
| 64 | name = "bootstrap-css", |
John Cater | 214a7ae | 2017-08-09 17:24:53 +0200 | [diff] [blame] | 65 | srcs = ["//third_party/css/bootstrap:bootstrap_css"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 66 | package_dir = "assets", |
| 67 | strip_prefix = "/third_party/css/bootstrap", |
| 68 | ) |
| 69 | |
| 70 | pkg_tar( |
| 71 | name = "bootstrap-images", |
John Cater | 214a7ae | 2017-08-09 17:24:53 +0200 | [diff] [blame] | 72 | srcs = ["//third_party/css/bootstrap:bootstrap_images"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 73 | package_dir = "assets", |
| 74 | strip_prefix = "/third_party/css/bootstrap", |
| 75 | ) |
| 76 | |
| 77 | pkg_tar( |
| 78 | name = "font-awesome-css", |
fwe | 60c1db3 | 2020-12-15 07:01:09 -0800 | [diff] [blame] | 79 | srcs = ["//third_party/css/font_awesome:font_awesome_css"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 80 | package_dir = "assets", |
| 81 | strip_prefix = "/third_party/css/font_awesome", |
| 82 | ) |
| 83 | |
| 84 | pkg_tar( |
| 85 | name = "font-awesome-font", |
fwe | 60c1db3 | 2020-12-15 07:01:09 -0800 | [diff] [blame] | 86 | srcs = ["//third_party/css/font_awesome:font_awesome_font"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 87 | package_dir = "assets", |
| 88 | strip_prefix = "/third_party/css/font_awesome", |
| 89 | ) |
| 90 | |
| 91 | pkg_tar( |
| 92 | name = "bootstrap-js", |
John Cater | 214a7ae | 2017-08-09 17:24:53 +0200 | [diff] [blame] | 93 | srcs = ["//third_party/javascript/bootstrap:bootstrap_js"], |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 94 | package_dir = "assets", |
| 95 | strip_prefix = "/third_party/javascript/bootstrap", |
| 96 | ) |
| 97 | |
| 98 | pkg_tar( |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 99 | name = "jekyll-base", |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 100 | deps = [ |
| 101 | ":bootstrap-css", |
| 102 | ":bootstrap-images", |
| 103 | ":bootstrap-js", |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 104 | ":dot-graphs", |
David Chen | 8a142fe | 2016-05-06 07:57:17 +0000 | [diff] [blame] | 105 | ":font-awesome-css", |
| 106 | ":font-awesome-font", |
| 107 | ":jekyll-files", |
| 108 | ], |
| 109 | ) |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 110 | |
| 111 | pkg_tar( |
| 112 | name = "skylark-rule-docs", |
John Cater | 214a7ae | 2017-08-09 17:24:53 +0200 | [diff] [blame] | 113 | srcs = [ |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 114 | "//tools/build_defs/pkg:README.md", |
| 115 | ], |
| 116 | strip_prefix = "/tools/build_defs", |
| 117 | ) |
| 118 | |
| 119 | genrule( |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 120 | name = "dot-graphs", |
| 121 | srcs = DOT_GRAPH_HTML_FILES, |
| 122 | outs = ["dot.tar"], |
| 123 | cmd = """ |
| 124 | origdir=$$PWD |
| 125 | tmpdir=$$(mktemp -d) |
| 126 | for f in $(SRCS); do |
| 127 | mkdir -p $$tmpdir/$$(dirname $$f) |
Klaus Aehlig | 7ed28be | 2017-03-02 15:26:38 +0000 | [diff] [blame] | 128 | if which dot > /dev/null; then |
Kristina Chodorow | fc9750c | 2017-02-09 21:13:13 +0000 | [diff] [blame] | 129 | $(location //scripts/docs:generate_dot_graphs) < $$f > $$tmpdir/$$f |
| 130 | else |
Kristina Chodorow | 762576e | 2017-02-10 17:16:28 +0000 | [diff] [blame] | 131 | cp $$f $$tmpdir/$$f |
Kristina Chodorow | fc9750c | 2017-02-09 21:13:13 +0000 | [diff] [blame] | 132 | fi |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 133 | done |
| 134 | cd $$tmpdir/site |
| 135 | tar cf $$origdir/$@ * |
| 136 | """, |
| 137 | tools = ["//scripts/docs:generate_dot_graphs"], |
| 138 | ) |
| 139 | |
Jingwen Chen | 186bdcd | 2018-12-14 10:27:23 -0800 | [diff] [blame] | 140 | # Generate the documentation tree in the current git worktree |
Kristina Chodorow | a028ae2 | 2016-12-13 18:59:51 +0000 | [diff] [blame] | 141 | genrule( |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 142 | name = "jekyll-tree", |
| 143 | srcs = [ |
| 144 | ":jekyll-base", |
| 145 | ":skylark-rule-docs", |
| 146 | "//src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia", |
| 147 | "//src/main/java/com/google/devtools/build/lib:gen_skylarklibrary", |
Ulf Adams | 9e24ebd | 2016-06-23 09:24:57 +0000 | [diff] [blame] | 148 | "//src/main/java/com/google/devtools/build/lib:gen_command-line-reference", |
Klaus Aehlig | 6f52fca | 2019-03-18 03:43:40 -0700 | [diff] [blame] | 149 | "//tools/build_defs/repo:doc", |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 150 | ], |
| 151 | outs = ["jekyll-tree.tar"], |
| 152 | cmd = ("$(location jekyll-tree.sh) $@ " + |
wyv | 565f774 | 2020-05-29 00:41:43 -0700 | [diff] [blame] | 153 | DOC_VERSIONS[0]["version"].split("-")[0] + " " + |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 154 | "$(location :jekyll-base) " + |
| 155 | "$(location :skylark-rule-docs) " + |
| 156 | "$(location //src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia) " + |
Ulf Adams | 9e24ebd | 2016-06-23 09:24:57 +0000 | [diff] [blame] | 157 | "$(location //src/main/java/com/google/devtools/build/lib:gen_skylarklibrary) " + |
Klaus Aehlig | 6f52fca | 2019-03-18 03:43:40 -0700 | [diff] [blame] | 158 | "$(location //src/main/java/com/google/devtools/build/lib:gen_command-line-reference) " + |
| 159 | "$(location //tools/build_defs/repo:doc)"), |
David Chen | 3f69751 | 2016-05-09 08:46:21 +0000 | [diff] [blame] | 160 | tools = [ |
| 161 | "jekyll-tree.sh", |
| 162 | ], |
| 163 | ) |
Damien Martin-Guillerez | 49a3e4b | 2017-11-03 15:30:52 +0100 | [diff] [blame] | 164 | |
| 165 | jekyll_build( |
| 166 | name = "site", |
Jingwen Chen | 186bdcd | 2018-12-14 10:27:23 -0800 | [diff] [blame] | 167 | srcs = [ |
Jingwen Chen | d3a5fd6 | 2020-05-05 14:43:23 -0700 | [diff] [blame] | 168 | "@jekyll_tree_%s//file" % DOC_VERSION["version"].split("-")[0].replace(".", "_") |
Jingwen Chen | 186bdcd | 2018-12-14 10:27:23 -0800 | [diff] [blame] | 169 | for DOC_VERSION in DOC_VERSIONS |
Tony Aiuto | b2dd6fb | 2021-06-09 10:29:29 -0700 | [diff] [blame] | 170 | ] + [":jekyll-tree"], # jekyll-tree *must* come last to use layouts and includes at head |
Damien Martin-Guillerez | 49a3e4b | 2017-11-03 15:30:52 +0100 | [diff] [blame] | 171 | bucket = "docs.bazel.build", |
| 172 | ) |
Jingwen Chen | 2b23759 | 2020-04-08 11:16:00 -0700 | [diff] [blame] | 173 | |
Tony Aiuto | b2dd6fb | 2021-06-09 10:29:29 -0700 | [diff] [blame] | 174 | # A smaller site build target. Contains just the docs for latest released version and head. |
Jingwen Chen | 2b23759 | 2020-04-08 11:16:00 -0700 | [diff] [blame] | 175 | jekyll_build( |
| 176 | name = "site_latest", |
| 177 | srcs = [ |
Jingwen Chen | d3a5fd6 | 2020-05-05 14:43:23 -0700 | [diff] [blame] | 178 | "@jekyll_tree_%s//file" % DOC_VERSIONS[0]["version"].split("-")[0].replace(".", "_"), |
Tony Aiuto | b2dd6fb | 2021-06-09 10:29:29 -0700 | [diff] [blame] | 179 | ":jekyll-tree", # jekyll-tree *must* come last to use layouts and includes at head |
Jingwen Chen | 2b23759 | 2020-04-08 11:16:00 -0700 | [diff] [blame] | 180 | ], |
| 181 | ) |