.. | .. |
---|
3 | 3 | |
---|
4 | 4 | import os |
---|
5 | 5 | import sys |
---|
6 | | -from sphinx.util.pycompat import execfile_ |
---|
| 6 | +from sphinx.util.osutil import fs_encoding |
---|
7 | 7 | |
---|
8 | 8 | # ------------------------------------------------------------------------------ |
---|
9 | 9 | def loadConfig(namespace): |
---|
.. | .. |
---|
21 | 21 | and os.path.normpath(namespace["__file__"]) != os.path.normpath(config_file) ): |
---|
22 | 22 | config_file = os.path.abspath(config_file) |
---|
23 | 23 | |
---|
| 24 | + # Let's avoid one conf.py file just due to latex_documents |
---|
| 25 | + start = config_file.find('Documentation/') |
---|
| 26 | + if start >= 0: |
---|
| 27 | + start = config_file.find('/', start + 1) |
---|
| 28 | + |
---|
| 29 | + end = config_file.rfind('/') |
---|
| 30 | + if start >= 0 and end > 0: |
---|
| 31 | + dir = config_file[start + 1:end] |
---|
| 32 | + |
---|
| 33 | + print("source directory: %s" % dir) |
---|
| 34 | + new_latex_docs = [] |
---|
| 35 | + latex_documents = namespace['latex_documents'] |
---|
| 36 | + |
---|
| 37 | + for l in latex_documents: |
---|
| 38 | + if l[0].find(dir + '/') == 0: |
---|
| 39 | + has = True |
---|
| 40 | + fn = l[0][len(dir) + 1:] |
---|
| 41 | + new_latex_docs.append((fn, l[1], l[2], l[3], l[4])) |
---|
| 42 | + break |
---|
| 43 | + |
---|
| 44 | + namespace['latex_documents'] = new_latex_docs |
---|
| 45 | + |
---|
| 46 | + # If there is an extra conf.py file, load it |
---|
24 | 47 | if os.path.isfile(config_file): |
---|
25 | 48 | sys.stdout.write("load additional sphinx-config: %s\n" % config_file) |
---|
26 | 49 | config = namespace.copy() |
---|
27 | 50 | config['__file__'] = config_file |
---|
28 | | - execfile_(config_file, config) |
---|
| 51 | + with open(config_file, 'rb') as f: |
---|
| 52 | + code = compile(f.read(), fs_encoding, 'exec') |
---|
| 53 | + exec(code, config) |
---|
29 | 54 | del config['__file__'] |
---|
30 | 55 | namespace.update(config) |
---|
31 | 56 | else: |
---|
32 | | - sys.stderr.write("WARNING: additional sphinx-config not found: %s\n" % config_file) |
---|
| 57 | + config = namespace.copy() |
---|
| 58 | + config['tags'].add("subproject") |
---|
| 59 | + namespace.update(config) |
---|