import argparse
import glob
import itertools
+import os
import subprocess
import sys
import venv
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."""
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,
install_dir: get_option('sysconfdir'),
)
-run_target(
+html_docs = custom_target(
'html-docs',
command: [
python,
'--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],
+)
+