summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMauro Carvalho Chehab <mchehab+huawei@kernel.org>2025-09-22 13:27:40 +0200
committerJonathan Corbet <corbet@lwn.net>2025-09-25 11:07:18 -0600
commit4c6ece918022f52e0fec036e972d029b34cd7bb7 (patch)
tree9a7f03c22f5c8090c32d675f48a4feb7cbda6831
parent683dd3f79a3140e11d2e6f4a5320f3ea42e63878 (diff)
tools/docs/sphinx-build-wrapper: allow skipping sphinx-build step
Most targets have two steps: - step 1: run sphinx-build; - step 2: run a post-build logic. The second step can be as simple as copying static files like CSS, but may may also envolve running make. allowing to skip the first step helps debugging what's broken, and also allows using make command line arguments like --ignore-errors. Add an option to skip step 1. Requested-by: Akira Yokosawa <akiyks@gmail.com> Link: https://lore.kernel.org/linux-doc/5031e0c4-f17e-41b8-8955-959989e797f2@gmail.com/ Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> Signed-off-by: Jonathan Corbet <corbet@lwn.net> Message-ID: <30dae295606ae1735f3bbeef4ca041a76dcd4540.1758539031.git.mchehab+huawei@kernel.org>
-rwxr-xr-xtools/docs/sphinx-build-wrapper18
1 files changed, 12 insertions, 6 deletions
diff --git a/tools/docs/sphinx-build-wrapper b/tools/docs/sphinx-build-wrapper
index 98c4db5b7c47..cce985dced00 100755
--- a/tools/docs/sphinx-build-wrapper
+++ b/tools/docs/sphinx-build-wrapper
@@ -622,7 +622,8 @@ class SphinxBuilder:
shutil.rmtree(self.builddir, ignore_errors=True)
def build(self, target, sphinxdirs=None,
- theme=None, css=None, paper=None, deny_vf=None, rustdoc=False):
+ theme=None, css=None, paper=None, deny_vf=None, rustdoc=False,
+ skip_sphinx=False):
"""
Build documentation using Sphinx. This is the core function of this
module. It prepares all arguments required by sphinx-build.
@@ -644,9 +645,10 @@ class SphinxBuilder:
#
# Other targets require sphinx-build, so check if it exists
#
- sphinxbuild = shutil.which(self.sphinxbuild, path=self.env["PATH"])
- if not sphinxbuild and target != "mandocs":
- sys.exit(f"Error: {self.sphinxbuild} not found in PATH.\n")
+ if not skip_sphinx:
+ sphinxbuild = shutil.which(self.sphinxbuild, path=self.env["PATH"])
+ if not sphinxbuild and target != "mandocs":
+ sys.exit(f"Error: {self.sphinxbuild} not found in PATH.\n")
if builder == "latex":
if not self.pdflatex_cmd and not self.latexmk_cmd:
@@ -732,7 +734,7 @@ class SphinxBuilder:
if target == "mandocs":
self.handle_man(kerneldoc, docs_dir, src_dir, output_dir)
- else:
+ elif not skip_sphinx:
try:
result = self.run_sphinx(sphinxbuild, build_args,
env=self.env)
@@ -814,6 +816,9 @@ def main():
parser.add_argument('-i', '--interactive', action='store_true',
help="Change latex default to run in interactive mode")
+ parser.add_argument('-s', '--skip-sphinx-build', action='store_true',
+ help="Skip sphinx-build step")
+
parser.add_argument("-V", "--venv", nargs='?', const=f'{VENV_DEFAULT}',
default=None,
help=f'If used, run Sphinx from a venv dir (default dir: {VENV_DEFAULT})')
@@ -829,7 +834,8 @@ def main():
builder.build(args.target, sphinxdirs=args.sphinxdirs,
theme=args.theme, css=args.css, paper=args.paper,
- rustdoc=args.rustdoc, deny_vf=args.deny_vf)
+ rustdoc=args.rustdoc, deny_vf=args.deny_vf,
+ skip_sphinx=args.skip_sphinx_build)
if __name__ == "__main__":
main()