blob: 1a05db0ea35516744a6c745b24ca16aaa322b688 [file] [log] [blame]
load("@bazel_skylib//rules:build_test.bzl", "build_test")
load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER") # buildifier: disable=bzl-visibility
load("//sphinxdocs:sphinx.bzl", "sphinx_build_binary", "sphinx_docs")
load(":defs.bzl", "gen_directory")
# We only build for Linux and Mac because:
# 1. The actual doc process only runs on Linux
# 2. Mac is a common development platform, and is close enough to Linux
# it's feasible to make work.
# Making CI happy under Windows is too much of a headache, though, so we don't
# bother with that.
_TARGET_COMPATIBLE_WITH = select({
"@platforms//os:linux": [],
"@platforms//os:macos": [],
"//conditions:default": ["@platforms//:incompatible"],
}) if IS_BAZEL_7_OR_HIGHER else ["@platforms//:incompatible"]
sphinx_docs(
name = "docs",
srcs = glob(["*.md"]) + [
":generated_directory",
],
config = "conf.py",
formats = ["html"],
sphinx = ":sphinx-build",
target_compatible_with = _TARGET_COMPATIBLE_WITH,
)
gen_directory(
name = "generated_directory",
)
sphinx_build_binary(
name = "sphinx-build",
tags = ["manual"], # Only needed as part of sphinx doc building
deps = [
"@dev_pip//myst_parser",
"@dev_pip//sphinx",
],
)
build_test(
name = "build_tests",
targets = [":docs"],
)