|  | load("//tools/build_defs/pkg:pkg.bzl", "pkg_tar") | 
|  | load("//scripts/docs:jekyll.bzl", "jekyll_build") | 
|  | load("//scripts/docs:doc_versions.bzl", "DOC_VERSIONS") | 
|  |  | 
|  | exports_files( | 
|  | [ | 
|  | "docs/user-manual.html", | 
|  | "command-line-reference-prefix.html", | 
|  | "command-line-reference-suffix.html", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | exports_files( | 
|  | [ | 
|  | "images/favicon.ico", | 
|  | ], | 
|  | visibility = ["//src/main/native/windows:__pkg__"], | 
|  | ) | 
|  |  | 
|  | DOT_GRAPH_HTML_FILES = [ | 
|  | "docs/query.html", | 
|  | "docs/build-ref.html", | 
|  | ] | 
|  |  | 
|  | filegroup( | 
|  | name = "srcs", | 
|  | srcs = glob(["**"]), | 
|  | visibility = ["//:__pkg__"], | 
|  | ) | 
|  |  | 
|  | filegroup( | 
|  | name = "jekyll-srcs", | 
|  | srcs = glob( | 
|  | ["**/*"], | 
|  | exclude = [ | 
|  | "BUILD", | 
|  | "jekyll-tree.sh", | 
|  | "*.swp", | 
|  | "command-line-reference-prefix.html", | 
|  | "command-line-reference-suffix.html", | 
|  | "site/README.md", | 
|  | ] + DOT_GRAPH_HTML_FILES, | 
|  | ), | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "jekyll-files", | 
|  | srcs = [":jekyll-srcs"], | 
|  | strip_prefix = ".", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "bootstrap-css", | 
|  | srcs = ["//third_party/css/bootstrap:bootstrap_css"], | 
|  | package_dir = "assets", | 
|  | strip_prefix = "/third_party/css/bootstrap", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "bootstrap-images", | 
|  | srcs = ["//third_party/css/bootstrap:bootstrap_images"], | 
|  | package_dir = "assets", | 
|  | strip_prefix = "/third_party/css/bootstrap", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "font-awesome-css", | 
|  | srcs = ["//third_party/css/font_awesome:font_awesome_css"], | 
|  | package_dir = "assets", | 
|  | strip_prefix = "/third_party/css/font_awesome", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "font-awesome-font", | 
|  | srcs = ["//third_party/css/font_awesome:font_awesome_font"], | 
|  | package_dir = "assets", | 
|  | strip_prefix = "/third_party/css/font_awesome", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "bootstrap-js", | 
|  | srcs = ["//third_party/javascript/bootstrap:bootstrap_js"], | 
|  | package_dir = "assets", | 
|  | strip_prefix = "/third_party/javascript/bootstrap", | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "jekyll-base", | 
|  | deps = [ | 
|  | ":bootstrap-css", | 
|  | ":bootstrap-images", | 
|  | ":bootstrap-js", | 
|  | ":dot-graphs", | 
|  | ":font-awesome-css", | 
|  | ":font-awesome-font", | 
|  | ":jekyll-files", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | pkg_tar( | 
|  | name = "skylark-rule-docs", | 
|  | srcs = [ | 
|  | "//tools/build_defs/pkg:README.md", | 
|  | ], | 
|  | strip_prefix = "/tools/build_defs", | 
|  | ) | 
|  |  | 
|  | genrule( | 
|  | name = "dot-graphs", | 
|  | srcs = DOT_GRAPH_HTML_FILES, | 
|  | outs = ["dot.tar"], | 
|  | cmd = """ | 
|  | origdir=$$PWD | 
|  | tmpdir=$$(mktemp -d) | 
|  | for f in $(SRCS); do | 
|  | mkdir -p $$tmpdir/$$(dirname $$f) | 
|  | if which dot > /dev/null; then | 
|  | $(location //scripts/docs:generate_dot_graphs) < $$f > $$tmpdir/$$f | 
|  | else | 
|  | cp $$f $$tmpdir/$$f | 
|  | fi | 
|  | done | 
|  | cd $$tmpdir/site | 
|  | tar cf $$origdir/$@ * | 
|  | """, | 
|  | tools = ["//scripts/docs:generate_dot_graphs"], | 
|  | ) | 
|  |  | 
|  | # Generate the documentation tree in the current git worktree | 
|  | genrule( | 
|  | name = "jekyll-tree", | 
|  | srcs = [ | 
|  | ":jekyll-base", | 
|  | ":skylark-rule-docs", | 
|  | "//src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia", | 
|  | "//src/main/java/com/google/devtools/build/lib:gen_skylarklibrary", | 
|  | "//src/main/java/com/google/devtools/build/lib:gen_command-line-reference", | 
|  | "//tools/build_defs/repo:doc", | 
|  | ], | 
|  | outs = ["jekyll-tree.tar"], | 
|  | cmd = ("$(location jekyll-tree.sh) $@ " + | 
|  | "$(location :jekyll-base) " + | 
|  | "$(location :skylark-rule-docs) " + | 
|  | "$(location //src/main/java/com/google/devtools/build/lib:gen_buildencyclopedia) " + | 
|  | "$(location //src/main/java/com/google/devtools/build/lib:gen_skylarklibrary) " + | 
|  | "$(location //src/main/java/com/google/devtools/build/lib:gen_command-line-reference) " + | 
|  | "$(location //tools/build_defs/repo:doc)"), | 
|  | tools = [ | 
|  | "jekyll-tree.sh", | 
|  | ], | 
|  | ) | 
|  |  | 
|  | jekyll_build( | 
|  | name = "site", | 
|  | srcs = [ | 
|  | "@jekyll_tree_%s//file" % DOC_VERSION["version"].replace(".", "_") | 
|  | for DOC_VERSION in DOC_VERSIONS | 
|  | ] + [":jekyll-tree"],  # jekyll-tree *must* come last to be the default. | 
|  | bucket = "docs.bazel.build", | 
|  | ) |