diff --git a/doc/make.py b/doc/make.py index 426ee602849da1ed90fd56f7b40773aadc9496c8..5d088e7981c3c5844b7e7a0fd876ece97647ab68 100644 --- a/doc/make.py +++ b/doc/make.py @@ -5,7 +5,7 @@ import shutil from ost import settings from optparse import OptionParser import subprocess -import sphinx.cmd.build +from sphinx.application import Sphinx if len(sys.argv)==2: root_dir=sys.argv[1] @@ -76,29 +76,44 @@ def ParseArgs(): parser.add_option("-q", "--quiet", action="store_true", default=False, dest="quiet", help="run all test") return parser.parse_args() +def _SelectBuilders(opts): + builders = [] + if opts.html: + builders.append('html') + + if opts.doctest: + builders.append('doctest') + + if opts.build_json: + builders.append('json') + + if opts.linkcheck: + builders.append('linkcheck') + return builders + + opts, args=ParseArgs() if not opts.html and\ not opts.linkcheck and\ not opts.doctest: opts.html=True -extra_opts=[] +extra_args = {} if opts.quiet: - extra_opts=['-Q'] + extra_args['warning'] = None + extra_args['status'] = None for sub_dir in ('modules',): for directory, dirnames, filenames in os.walk(sub_dir): _CollectRstDocs('doc/source', directory, filenames) -if opts.html: - sphinx.cmd.build.main(extra_opts + ['-b', 'html', '-c', 'doc/conf', 'doc/source', 'doc/build/html']) - -if opts.doctest: - sphinx.cmd.build.main(extra_opts + ['-b', 'doctest', '-c', 'doc/conf', 'doc/source', 'doc/build/html']) - -if opts.build_json: - sphinx.cmd.build.main(extra_opts + ['-b', 'json', '-c', 'doc/conf', 'doc/source', 'doc/build/html']) - -if opts.linkcheck: - sphinx.cmd.build.main(extra_opts + ['-b', 'linkcheck', '-c', 'doc/conf', 'doc/source', 'doc/build/html']) +builders = _SelectBuilders(opts) +for builder in builders: + Sphinx( + srcdir='doc/source', + confdir='doc/conf', + outdir='doc/build/html', + doctreedir='doc/build/html/.doctrees', + buildername=builder, + **extra_args).build(True)