mirror of
https://git.rtems.org/rtems-docs/
synced 2025-10-17 20:49:01 +08:00
@@ -1,4 +1,4 @@
|
|||||||
import version as rtems_version
|
import datetime
|
||||||
|
|
||||||
extensions = [
|
extensions = [
|
||||||
"sphinx.ext.autodoc",
|
"sphinx.ext.autodoc",
|
||||||
@@ -12,6 +12,8 @@ extensions = [
|
|||||||
"rtemsdomain",
|
"rtemsdomain",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
bibtex_bibfiles = ['../common/refs.bib']
|
||||||
|
|
||||||
extlinks = {'release_path': ('https://ftp.rtems.org/pub/rtems/releases', None) }
|
extlinks = {'release_path': ('https://ftp.rtems.org/pub/rtems/releases', None) }
|
||||||
|
|
||||||
# Add any paths that contain templates here, relative to this directory.
|
# Add any paths that contain templates here, relative to this directory.
|
||||||
@@ -28,21 +30,17 @@ master_doc = 'index'
|
|||||||
|
|
||||||
# General information about the project.
|
# General information about the project.
|
||||||
project = u'RTEMS Documentation Project'
|
project = u'RTEMS Documentation Project'
|
||||||
copyright = u'1988, 2020 RTEMS Project and contributors'
|
copyright = u'1988, ' + str(datetime.datetime.now().year) + ' RTEMS Project and contributors'
|
||||||
|
|
||||||
# The version info for the project you're documenting, acts as replacement for
|
# The version info for the project you're documenting, acts as replacement for
|
||||||
# |version| and |release|, also used in various other places throughout the
|
# |version| and |release|, also used in various other places throughout the
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = rtems_version.version()
|
#version = rtems_version.version()
|
||||||
|
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
release = rtems_version.string()
|
#release = rtems_version.string()
|
||||||
|
|
||||||
major = rtems_version.major()
|
|
||||||
minor = rtems_version.minor()
|
|
||||||
revision = rtems_version.revision()
|
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
# for a list of supported languages.
|
# for a list of supported languages.
|
||||||
@@ -75,6 +73,9 @@ exclude_patterns = []
|
|||||||
# The name of the Pygments (syntax highlighting) style to use.
|
# The name of the Pygments (syntax highlighting) style to use.
|
||||||
pygments_style = 'sphinx'
|
pygments_style = 'sphinx'
|
||||||
|
|
||||||
|
# http://www.sphinx-doc.org/en/master/usage/configuration.html#confval-numfig
|
||||||
|
numfig = True
|
||||||
|
|
||||||
# A list of ignored prefixes for module index sorting.
|
# A list of ignored prefixes for module index sorting.
|
||||||
#modindex_common_prefix = []
|
#modindex_common_prefix = []
|
||||||
|
|
||||||
|
@@ -3,7 +3,6 @@
|
|||||||
#
|
#
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import platform
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
package_test_preamble = ['\\newif\\ifsphinxKeepOldNames \\sphinxKeepOldNamestrue',
|
package_test_preamble = ['\\newif\\ifsphinxKeepOldNames \\sphinxKeepOldNamestrue',
|
||||||
@@ -82,7 +81,11 @@ def tex_test(test):
|
|||||||
def host_name():
|
def host_name():
|
||||||
uname = os.uname()
|
uname = os.uname()
|
||||||
if uname[0] == 'Linux':
|
if uname[0] == 'Linux':
|
||||||
distro = platform.dist()
|
try:
|
||||||
|
from distro import linux_distribution
|
||||||
|
except:
|
||||||
|
from platform import linux_distribution
|
||||||
|
distro = linux_distribution()
|
||||||
name = '%s/%s' % (uname[0], distro[0])
|
name = '%s/%s' % (uname[0], distro[0])
|
||||||
version = distro[1]
|
version = distro[1]
|
||||||
else:
|
else:
|
||||||
|
@@ -8,6 +8,8 @@ from sphinx.domains import Domain, ObjType, Index
|
|||||||
from sphinx.util.nodes import make_refnode
|
from sphinx.util.nodes import make_refnode
|
||||||
from sphinx.util.docfields import Field, TypedField
|
from sphinx.util.docfields import Field, TypedField
|
||||||
|
|
||||||
|
import version as rtems_version
|
||||||
|
|
||||||
"""
|
"""
|
||||||
:r:bsp:`sparc/sis`
|
:r:bsp:`sparc/sis`
|
||||||
|
|
||||||
@@ -30,28 +32,28 @@ role_name = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
role_url = {
|
role_url = {
|
||||||
"trac": ("Trac", "https://devel.rtems.org"),
|
"trac": ("Trac", "https://devel.rtems.org"),
|
||||||
"devel": ("Developer Site", "https://devel.rtems.org"),
|
"devel": ("Developer Site", "https://devel.rtems.org"),
|
||||||
"www": ("RTEMS Home", "https://www.rtems.org/"),
|
"www": ("RTEMS Home", "https://www.rtems.org/"),
|
||||||
"buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
|
"buildbot": ("Buildbot Instance", "https://buildbot.rtems.org/"),
|
||||||
"builder": ("Builder Site", "https://builder.rtems.org/"),
|
"builder": ("Builder Site", "https://builder.rtems.org/"),
|
||||||
"docs": ("Documentation Site", "https://docs.rtems.org/"),
|
"docs": ("Documentation Site", "https://docs.rtems.org/"),
|
||||||
"lists": ("Mailing Lists", "https://lists.rtems.org/"),
|
"lists": ("Mailing Lists", "https://lists.rtems.org/"),
|
||||||
"git": ("Git Repositories", "https://git.rtems.org/"),
|
"git": ("Git Repositories", "https://git.rtems.org/"),
|
||||||
"ftp": ("FTP File Server", "https://ftp.rtems.org/"),
|
"ftp": ("FTP File Server", "https://ftp.rtems.org/"),
|
||||||
"review": ("Gerrit Code Review", "https://review.rtems.org/"),
|
"review": ("Gerrit Code Review", "https://review.rtems.org/"),
|
||||||
"bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
|
"bugs": ("Bugs Database", "https://devel.rtems.org/wiki/Bugs/"),
|
||||||
"gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
|
"gsoc": ("Google Summer of Code", "https://devel.rtems.org/wiki/GSoC/"),
|
||||||
"socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
|
"socis": ("ESA SOCIS", "https://devel.rtems.org/wiki/SOCIS/")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
role_list = {
|
role_list = {
|
||||||
"announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
|
"announce": ("Announce Mailing List", "https://lists.rtems.org/mailman/listinfo/announce/"),
|
||||||
"bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
|
"bugs": ("Bugs Mailing List", "https://lists.rtems.org/mailman/listinfo/bugs/"),
|
||||||
"devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
|
"devel": ("Developers Mailing List", "https://lists.rtems.org/mailman/listinfo/devel/"),
|
||||||
"build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
|
"build": ("Build Logs", "https://lists.rtems.org/mailman/listinfo/build"),
|
||||||
"users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
|
"users": ("Users Mailing List", "https://lists.rtems.org/mailman/listinfo/users/"),
|
||||||
"vc": ("Version Control Mailing List", "https://lists.rtems.org/mailman/listinfo/vc/"),
|
"vc": ("Version Control Mailing List", "https://lists.rtems.org/mailman/listinfo/vc/"),
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -119,7 +121,33 @@ class RTEMSDomain(Domain):
|
|||||||
pass # XXX is this needed?
|
pass # XXX is this needed?
|
||||||
|
|
||||||
|
|
||||||
|
def rtems_replace(app, docname, source):
|
||||||
|
dump = False
|
||||||
|
line = source[0]
|
||||||
|
for key in app.config.replacements:
|
||||||
|
line = line.replace(key, app.config.replacements[key])
|
||||||
|
source[0] = line
|
||||||
|
|
||||||
|
replacements = {
|
||||||
|
}
|
||||||
|
|
||||||
def setup(app):
|
def setup(app):
|
||||||
|
app.add_config_value('rtems_major', str(app.config.overrides['rtems_major']), True)
|
||||||
|
app.add_config_value('rtems_minor', str(app.config.overrides['rtems_minor']), True)
|
||||||
|
app.add_config_value('rtems_revision', str(app.config.overrides['rtems_revision']), True)
|
||||||
|
major = str(app.config.overrides['rtems_major'])
|
||||||
|
minor = str(app.config.overrides['rtems_minor'])
|
||||||
|
revision = str(app.config.overrides['rtems_revision'])
|
||||||
|
if revision.isdigit():
|
||||||
|
majminrev = major + '.' + minor + '.' + revision
|
||||||
|
else:
|
||||||
|
majminrev = major + '.' + revision
|
||||||
|
replacements["@rtems-version@"] = str(app.config.overrides['version'])
|
||||||
|
replacements["@rtems-ver-major@"] = major
|
||||||
|
replacements["@rtems-ver-minor@"] = minor
|
||||||
|
replacements["@rtems-ver-revision@"] = revision
|
||||||
|
replacements["@rtems-ver-majminrev@"] = majminrev
|
||||||
|
app.add_config_value('replacements', replacements, True)
|
||||||
|
app.connect('source-read', rtems_replace)
|
||||||
app.add_domain(RTEMSDomain)
|
app.add_domain(RTEMSDomain)
|
||||||
return {'version': "1.0", 'parallel_read_safe': True}
|
return {'version': "1.0", 'parallel_read_safe': True}
|
||||||
|
@@ -111,6 +111,9 @@ def _pretty_day(ctx, date):
|
|||||||
|
|
||||||
def get(ctx, rtems_major_version):
|
def get(ctx, rtems_major_version):
|
||||||
global _version
|
global _version
|
||||||
|
global _major
|
||||||
|
global _minor
|
||||||
|
global _revision
|
||||||
global _date
|
global _date
|
||||||
global _released
|
global _released
|
||||||
version = _version
|
version = _version
|
||||||
@@ -184,7 +187,7 @@ def minor():
|
|||||||
return _minor
|
return _minor
|
||||||
|
|
||||||
def revision():
|
def revision():
|
||||||
return revision
|
return _revision
|
||||||
|
|
||||||
def date():
|
def date():
|
||||||
return _date
|
return _date
|
||||||
|
@@ -181,13 +181,18 @@ def check_sphinx_extension(ctx, extension):
|
|||||||
def run_sphinx(bld):
|
def run_sphinx(bld):
|
||||||
rst_node = bld.srcnode.make_node('testbuild/contents.rst')
|
rst_node = bld.srcnode.make_node('testbuild/contents.rst')
|
||||||
rst_node.parent.mkdir()
|
rst_node.parent.mkdir()
|
||||||
rst_node.write('.. COMMENT test sphinx\n')
|
rst_node.write('.. COMMENT test sphinx' + os.linesep)
|
||||||
|
bib_node = bld.srcnode.make_node('testbuild/refs.bib')
|
||||||
|
bib_node.write(os.linesep)
|
||||||
|
conf_node = bld.srcnode.make_node('testbuild/conf.py')
|
||||||
|
conf_node.write(os.linesep.join(["master_doc='contents'",
|
||||||
|
"bibtex_bibfiles = ['refs.bib']"]))
|
||||||
bld(rule = bld.kw['rule'], source = rst_node)
|
bld(rule = bld.kw['rule'], source = rst_node)
|
||||||
|
|
||||||
ctx.start_msg("Checking for '%s'" % (extension))
|
ctx.start_msg("Checking for '%s'" % (extension))
|
||||||
try:
|
try:
|
||||||
ctx.run_build(fragment = 'xx',
|
ctx.run_build(fragment = 'xx',
|
||||||
rule = "${BIN_SPHINX_BUILD} -b html -D extensions=%s -C . out" % (extension),
|
rule = "${BIN_SPHINX_BUILD} -b html -D extensions=%s -c . . out" % (extension),
|
||||||
build_fun = run_sphinx,
|
build_fun = run_sphinx,
|
||||||
env = ctx.env)
|
env = ctx.env)
|
||||||
except ctx.errors.ConfigurationError:
|
except ctx.errors.ConfigurationError:
|
||||||
@@ -266,7 +271,7 @@ def cmd_configure(ctx):
|
|||||||
ctx.fatal('Unsupported latex engine: %s' % (conf.latex_engine))
|
ctx.fatal('Unsupported latex engine: %s' % (conf.latex_engine))
|
||||||
ctx.env.BUILD_PDF = 'yes'
|
ctx.env.BUILD_PDF = 'yes'
|
||||||
|
|
||||||
ctx.envBUILD_SINGLEHTML = 'no'
|
ctx.env.BUILD_SINGLEHTML = 'no'
|
||||||
if ctx.options.singlehtml:
|
if ctx.options.singlehtml:
|
||||||
check_inliner = not ctx.env.BIN_INLINER
|
check_inliner = not ctx.env.BIN_INLINER
|
||||||
if check_inliner:
|
if check_inliner:
|
||||||
@@ -276,7 +281,7 @@ def cmd_configure(ctx):
|
|||||||
ctx.fatal("Node.js inliner is required install with 'npm install -g inliner' " +
|
ctx.fatal("Node.js inliner is required install with 'npm install -g inliner' " +
|
||||||
"(https://github.com/remy/inliner)")
|
"(https://github.com/remy/inliner)")
|
||||||
|
|
||||||
ctx.envBUILD_PLANTUML = 'no'
|
ctx.env.BUILD_PLANTUML = 'no'
|
||||||
if ctx.options.plantuml:
|
if ctx.options.plantuml:
|
||||||
check_plantuml = not ctx.env.BIN_PUML
|
check_plantuml = not ctx.env.BIN_PUML
|
||||||
if check_plantuml:
|
if check_plantuml:
|
||||||
@@ -286,7 +291,7 @@ def cmd_configure(ctx):
|
|||||||
ctx.fatal("Node.js puml is required install with 'npm install -g node-plantuml' " +
|
ctx.fatal("Node.js puml is required install with 'npm install -g node-plantuml' " +
|
||||||
"(https://www.npmjs.com/package/node-plantuml)")
|
"(https://www.npmjs.com/package/node-plantuml)")
|
||||||
|
|
||||||
ctx.envBUILD_DITAA = 'no'
|
ctx.env.BUILD_DITAA = 'no'
|
||||||
if ctx.options.ditaa:
|
if ctx.options.ditaa:
|
||||||
#
|
#
|
||||||
# We use DITAA via PlantUML
|
# We use DITAA via PlantUML
|
||||||
@@ -335,12 +340,15 @@ def doc_pdf(ctx, source_dir, conf_dir, sources):
|
|||||||
target = ctx.path.find_or_declare("%s/%s.tex" % (buildtype,
|
target = ctx.path.find_or_declare("%s/%s.tex" % (buildtype,
|
||||||
ctx.path.name))
|
ctx.path.name))
|
||||||
)
|
)
|
||||||
|
env_latex = ctx.env.derive()
|
||||||
|
env_latex.TEXINPUTS = output_dir + ':'
|
||||||
ctx(
|
ctx(
|
||||||
features = 'tex',
|
features = 'tex',
|
||||||
cwd = output_dir,
|
cwd = output_dir,
|
||||||
type = ctx.env.LATEX_CMD,
|
type = ctx.env.LATEX_CMD,
|
||||||
source = "%s/%s.tex" % (buildtype, ctx.path.name),
|
source = "%s/%s.tex" % (buildtype, ctx.path.name),
|
||||||
prompt = 0
|
prompt = 0,
|
||||||
|
env = env_latex
|
||||||
)
|
)
|
||||||
ctx.install_files('${PREFIX}',
|
ctx.install_files('${PREFIX}',
|
||||||
'%s/%s.pdf' % (buildtype, ctx.path.name),
|
'%s/%s.pdf' % (buildtype, ctx.path.name),
|
||||||
|
Reference in New Issue
Block a user