From: Otto Moerbeek Date: Mon, 17 Feb 2025 13:59:31 +0000 (+0100) Subject: Generate tarball and pdf and introduce all-docs target X-Git-Tag: dnsdist-2.0.0-alpha1~48^2~8 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=707a2c7c9711d516715f2670bfe606b1a3500c42;p=thirdparty%2Fpdns.git Generate tarball and pdf and introduce all-docs target --- diff --git a/docs/generate-docs.py b/docs/generate-docs.py index f820aabee0..871dd19b86 100755 --- a/docs/generate-docs.py +++ b/docs/generate-docs.py @@ -3,6 +3,7 @@ import argparse import glob import itertools +import os import subprocess import sys import venv @@ -32,24 +33,35 @@ def main(): subprocess.run([pip, "install", "-U", "pip", "setuptools", "wheel"], check=True) subprocess.run([pip, "install", "-r", requirements_file], check=True) - # Run sphinx to generate the man-pages. + # Run sphinx to generate the docs source_directory = source_root.joinpath(args.source_directory) target_directory = build_root.joinpath(args.target_directory) files = [glob.glob(str(source_root.joinpath(pat))) for pat in args.files] files = list(itertools.chain.from_iterable(files)) sphinx_build = venv_directory.joinpath("bin").joinpath("sphinx-build") - subprocess.run( - [ + + if args.latex_name: + buildargs = [ + sphinx_build, + "-M", + "latexpdf", + source_directory, + '.' + ] + else: + buildargs = [ sphinx_build, "-b", "html", source_directory, target_directory, ] - + files, # default is to do all + subprocess.run( + buildargs + files, # default is to do all check=True ) - + if args.latex_name: + os.rename(build_root.joinpath('latex').joinpath(args.latex_name), args.latex_name) def create_argument_parser(): """Create command-line argument parser.""" @@ -92,6 +104,12 @@ def create_argument_parser(): required=True, help="Target directory for man-pages relative to the build root", ) + parser.add_argument( + "--latex-name", + type=Path, + required=False, + help="Generate latex instead of html", + ) parser.add_argument( "files", type=Path, diff --git a/pdns/recursordist/meson.build b/pdns/recursordist/meson.build index 38ce7c09a7..1e0b8cb680 100644 --- a/pdns/recursordist/meson.build +++ b/pdns/recursordist/meson.build @@ -734,7 +734,7 @@ dep_conf_distfile = custom_target( install_dir: get_option('sysconfdir'), ) -run_target( +html_docs = custom_target( 'html-docs', command: [ python, @@ -745,5 +745,35 @@ run_target( '--requirements-file', docs_dir / 'requirements.txt', '--source-directory', docs_dir, '--target-directory', '@BUILD_ROOT@' / 'html-docs', - ] -) \ No newline at end of file + ], + output: 'html-docs', + console: true, +) + +docs_tarball = custom_target( + 'html-docs.tar.bz2', + command: ['tar', 'cjf', 'html-docs.tar.bz2', html_docs], + output: 'html-docs.tar.bz2', +) + +latex_docs = custom_target( + command: [ + python, + product_source_dir / docs_dir / 'generate-docs.py', + '--build-root', '@BUILD_ROOT@', + '--source-root', '@SOURCE_ROOT@', + '--venv-name', 'venv-docs', + '--requirements-file', docs_dir / 'requirements.txt', + '--source-directory', docs_dir, + '--target-directory', '@BUILD_ROOT@', + '--latex-name', 'PowerDNS-Recursor.pdf', + ], + output: 'PowerDNS-Recursor.pdf', + console: true, +) + +run_target( + 'all-docs', + command: ['echo', 'Generated', html_docs, docs_tarball, latex_docs], +) +