| load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER") # buildifier: disable=bzl-visibility |
| load("//sphinxdocs:sphinx_docs_library.bzl", "sphinx_docs_library") |
| load("//sphinxdocs:sphinx_stardoc.bzl", "sphinx_stardocs") |
| |
| package(default_visibility = ["//:__subpackages__"]) |
| |
| # 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_library( |
| name = "docs_lib", |
| deps = [ |
| ":artisian_api_docs", |
| ":bzl_docs", |
| ":py_api_srcs", |
| ":regular_docs", |
| ], |
| ) |
| |
| sphinx_docs_library( |
| name = "regular_docs", |
| srcs = glob( |
| ["**/*.md"], |
| exclude = ["api/**"], |
| ), |
| prefix = "sphinxdocs/", |
| ) |
| |
| sphinx_docs_library( |
| name = "artisian_api_docs", |
| srcs = glob( |
| ["api/**/*.md"], |
| ), |
| prefix = "api/sphinxdocs/", |
| strip_prefix = "sphinxdocs/docs/api/", |
| ) |
| |
| sphinx_stardocs( |
| name = "bzl_docs", |
| srcs = [ |
| "//sphinxdocs:readthedocs_bzl", |
| "//sphinxdocs:sphinx_bzl", |
| "//sphinxdocs:sphinx_docs_library_bzl", |
| "//sphinxdocs:sphinx_stardoc_bzl", |
| "//sphinxdocs/private:sphinx_docs_library_bzl", |
| ], |
| prefix = "api/sphinxdocs/", |
| target_compatible_with = _TARGET_COMPATIBLE_WITH, |
| ) |
| |
| sphinx_docs_library( |
| name = "py_api_srcs", |
| srcs = ["//sphinxdocs/src/sphinx_bzl"], |
| strip_prefix = "sphinxdocs/src/", |
| ) |