xref: /aosp_15_r20/external/bazelbuild-rules_python/sphinxdocs/sphinx.bzl (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1*60517a1eSAndroid Build Coastguard Worker# Copyright 2023 The Bazel Authors. All rights reserved.
2*60517a1eSAndroid Build Coastguard Worker#
3*60517a1eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*60517a1eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*60517a1eSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*60517a1eSAndroid Build Coastguard Worker#
7*60517a1eSAndroid Build Coastguard Worker#     http://www.apache.org/licenses/LICENSE-2.0
8*60517a1eSAndroid Build Coastguard Worker#
9*60517a1eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*60517a1eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*60517a1eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*60517a1eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*60517a1eSAndroid Build Coastguard Worker# limitations under the License.
14*60517a1eSAndroid Build Coastguard Worker
15*60517a1eSAndroid Build Coastguard Worker"""Rules to generate Sphinx documentation.
16*60517a1eSAndroid Build Coastguard Worker
17*60517a1eSAndroid Build Coastguard WorkerThe general usage of the Sphinx rules requires two pieces:
18*60517a1eSAndroid Build Coastguard Worker
19*60517a1eSAndroid Build Coastguard Worker1. Using `sphinx_docs` to define the docs to build and options for building.
20*60517a1eSAndroid Build Coastguard Worker2. Defining a `sphinx-build` binary to run Sphinx with the necessary
21*60517a1eSAndroid Build Coastguard Worker   dependencies to be used by (1); the `sphinx_build_binary` rule helps with
22*60517a1eSAndroid Build Coastguard Worker   this.
23*60517a1eSAndroid Build Coastguard Worker
24*60517a1eSAndroid Build Coastguard WorkerDefining your own `sphinx-build` binary is necessary because Sphinx uses
25*60517a1eSAndroid Build Coastguard Workera plugin model to support extensibility.
26*60517a1eSAndroid Build Coastguard Worker
27*60517a1eSAndroid Build Coastguard WorkerThe Sphinx integration is still experimental.
28*60517a1eSAndroid Build Coastguard Worker"""
29*60517a1eSAndroid Build Coastguard Worker
30*60517a1eSAndroid Build Coastguard Workerload(
31*60517a1eSAndroid Build Coastguard Worker    "//sphinxdocs/private:sphinx.bzl",
32*60517a1eSAndroid Build Coastguard Worker    _sphinx_build_binary = "sphinx_build_binary",
33*60517a1eSAndroid Build Coastguard Worker    _sphinx_docs = "sphinx_docs",
34*60517a1eSAndroid Build Coastguard Worker    _sphinx_inventory = "sphinx_inventory",
35*60517a1eSAndroid Build Coastguard Worker    _sphinx_run = "sphinx_run",
36*60517a1eSAndroid Build Coastguard Worker)
37*60517a1eSAndroid Build Coastguard Worker
38*60517a1eSAndroid Build Coastguard Workersphinx_build_binary = _sphinx_build_binary
39*60517a1eSAndroid Build Coastguard Workersphinx_docs = _sphinx_docs
40*60517a1eSAndroid Build Coastguard Workersphinx_inventory = _sphinx_inventory
41*60517a1eSAndroid Build Coastguard Workersphinx_run = _sphinx_run
42