net/virtio-user: fix advertising of protocol features
[dpdk.git] / buildtools / call-sphinx-build.py
1 #! /usr/bin/env python3
2 # SPDX-License-Identifier: BSD-3-Clause
3 # Copyright(c) 2019 Intel Corporation
4 #
5
6 import sys
7 import os
8 from os.path import join
9 from subprocess import run, PIPE, STDOUT
10 from distutils.version import StrictVersion
11
12 # assign parameters to variables
13 (sphinx, version, src, dst, *extra_args) = sys.argv[1:]
14
15 # set the version in environment for sphinx to pick up
16 os.environ['DPDK_VERSION'] = version
17
18 # for sphinx version >= 1.7 add parallelism using "-j auto"
19 ver = run([sphinx, '--version'], stdout=PIPE,
20           stderr=STDOUT).stdout.decode().split()[-1]
21 sphinx_cmd = [sphinx] + extra_args
22 if StrictVersion(ver) >= StrictVersion('1.7'):
23     sphinx_cmd += ['-j', 'auto']
24
25 # find all the files sphinx will process so we can write them as dependencies
26 srcfiles = []
27 for root, dirs, files in os.walk(src):
28     srcfiles.extend([join(root, f) for f in files])
29
30 # run sphinx, putting the html output in a "html" directory
31 with open(join(dst, 'sphinx_html.out'), 'w') as out:
32     process = run(sphinx_cmd + ['-b', 'html', src, join(dst, 'html')],
33                   stdout=out)
34
35 # create a gcc format .d file giving all the dependencies of this doc build
36 with open(join(dst, '.html.d'), 'w') as d:
37     d.write('html: ' + ' '.join(srcfiles) + '\n')
38
39 sys.exit(process.returncode)