docs: load_config.py: avoid needing a conf.py just due to LaTeX docs

Right now, for every directory that we need to have LaTeX output,
a conf.py file is required.

That causes an extra overhead and it is actually a hack, as
the latex_documents line there are usually a copy of the ones
that are there already at the main conf.py.

So, instead, re-use the global latex_documents var, just
adjusting the path to be relative ones.

Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
This commit is contained in:
Mauro Carvalho Chehab 2019-07-14 11:18:13 -03:00
parent 27eed923f7
commit a84d9e8996
1 changed files with 26 additions and 1 deletions

View File

@ -21,6 +21,29 @@ def loadConfig(namespace):
and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ): and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ):
config_file = os.path.abspath(config_file) config_file = os.path.abspath(config_file)
# Let's avoid one conf.py file just due to latex_documents
start = config_file.find('Documentation/')
if start >= 0:
start = config_file.find('/', start + 1)
end = config_file.rfind('/')
if start >= 0 and end > 0:
dir = config_file[start + 1:end]
print("source directory: %s" % dir)
new_latex_docs = []
latex_documents = namespace['latex_documents']
for l in latex_documents:
if l[0].find(dir) == 0:
has = True
fn = l[0][len(dir) + 1:]
new_latex_docs.append((fn, l[1], l[2], l[3], l[4]))
break
namespace['latex_documents'] = new_latex_docs
# If there is an extra conf.py file, load it
if os.path.isfile(config_file): if os.path.isfile(config_file):
sys.stdout.write("load additional sphinx-config: %s\n" % config_file) sys.stdout.write("load additional sphinx-config: %s\n" % config_file)
config = namespace.copy() config = namespace.copy()
@ -29,4 +52,6 @@ def loadConfig(namespace):
del config['__file__'] del config['__file__']
namespace.update(config) namespace.update(config)
else: else:
sys.stderr.write("WARNING: additional sphinx-config not found: %s\n" % config_file) config = namespace.copy()
config['tags'].add("subproject")
namespace.update(config)