|
|
|
#!/usr/bin/env python
|
|
|
|
|
|
|
|
def build(bld):
|
|
|
|
dox_to_sphinx = bld.path.find_node("../../scripts/dox_to_sphinx.py")
|
|
|
|
index_xml = bld.path.get_bld().make_node("xml/index.xml")
|
|
|
|
|
|
|
|
files = [
|
|
|
|
("../../resources/serd.svg", "sphinx/_static/serd.svg"),
|
|
|
|
("../summary.rst", "sphinx/summary.rst"),
|
|
|
|
("index.rst", "sphinx/index.rst"),
|
|
|
|
("overview.rst", "sphinx/overview.rst"),
|
|
|
|
]
|
|
|
|
|
|
|
|
# Run Doxygen to generate XML documentation
|
|
|
|
bld(features="doxygen", doxyfile="Doxyfile")
|
|
|
|
|
|
|
|
# Substitute variables to make Sphinx configuration file
|
|
|
|
bld(features="subst",
|
|
|
|
source="../conf.py.in",
|
|
|
|
target="sphinx/conf.py",
|
|
|
|
SERD_VERSION=bld.env.SERD_VERSION)
|
|
|
|
|
|
|
|
# Copy static documentation files to Sphinx build directory
|
|
|
|
for f in files:
|
|
|
|
bld(features="subst", is_copy=True, source=f[0], target=f[1])
|
|
|
|
|
|
|
|
# Generate Sphinx markup from Doxygen XML
|
|
|
|
bld.add_group()
|
|
|
|
bld(rule="${PYTHON} " + dox_to_sphinx.abspath() + " -f ${SRC} ${TGT}",
|
|
|
|
source=index_xml,
|
|
|
|
target="sphinx/api/")
|
|
|
|
|
|
|
|
doc_dir = bld.env.DOCDIR + "/serd-%s/" % bld.env.SERD_MAJOR_VERSION
|
|
|
|
|
|
|
|
# Run Sphinx to generate HTML documentation
|
|
|
|
for builder in ["html", "singlehtml"]:
|
|
|
|
bld(features="sphinx",
|
|
|
|
sphinx_source=bld.path.get_bld().make_node("sphinx"),
|
|
|
|
sphinx_output_format=builder,
|
|
|
|
sphinx_options=["-E", "-q", "-t", builder],
|
|
|
|
install_path=doc_dir + "c/%s/" % builder)
|