diff options
author | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-02-20 10:11:44 +0100 |
---|---|---|
committer | Arnaud Charlet <charlet@gcc.gnu.org> | 2015-02-20 10:11:44 +0100 |
commit | cb2d884d7d2b5fe83aba42f1387542b50d5f06b1 (patch) | |
tree | 8595086bf6f09398ca79a336e320d885e52b2c66 /gcc/ada/doc/share/conf.py | |
parent | 07a64c021a8fbd6df4d411b9852cfa95afb1cf08 (diff) | |
download | gcc-cb2d884d7d2b5fe83aba42f1387542b50d5f06b1.zip gcc-cb2d884d7d2b5fe83aba42f1387542b50d5f06b1.tar.gz gcc-cb2d884d7d2b5fe83aba42f1387542b50d5f06b1.tar.bz2 |
gnat_rm.texi, [...]: Now automatically generated from sphinx in the doc directory.
2015-02-20 Arnaud Charlet <charlet@adacore.com>
* gnat_rm.texi, gnat_ugn.texi: Now automatically generated from
sphinx in the doc directory.
* doc: New directory containing sphinx versions of gnat_rm and gnat_ugn
From-SVN: r220837
Diffstat (limited to 'gcc/ada/doc/share/conf.py')
-rw-r--r-- | gcc/ada/doc/share/conf.py | 134 |
1 files changed, 134 insertions, 0 deletions
diff --git a/gcc/ada/doc/share/conf.py b/gcc/ada/doc/share/conf.py new file mode 100644 index 0000000..c6c45b0 --- /dev/null +++ b/gcc/ada/doc/share/conf.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +# +# GNAT build configuration file + +import sys +import os +import time +import re + +sys.path.append('.') + +import ada_pygments +import latex_elements + +# Some configuration values for the various documentation handled by +# this conf.py + +DOCS = { + 'gnat_rm': { + 'title': u'GNAT Reference Manual'}, + 'gnat_ugn': { + 'title': u'GNAT User\'s Guide for Native Platforms'}} + +# Then retrieve the source directory +root_source_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +gnatvsn_spec = os.path.join(root_source_dir, '..', 'gnatvsn.ads') +basever = os.path.join(root_source_dir, '..', '..', 'BASE-VER') +texi_fsf = True # Set to False when FSF doc is switched to sphinx by default + +with open(gnatvsn_spec, 'rb') as fd: + gnatvsn_content = fd.read() + + +def get_copyright(): + return u'2008-%s, Free Software Foundation' % time.strftime('%Y') + + +def get_gnat_version(): + m = re.search(r'Gnat_Static_Version_String : ' + + r'constant String := "([^\(\)]+)\(.*\)?";', + gnatvsn_content) + if m: + return m.group(1).strip() + else: + if texi_fsf and os.path.exists(basever): + return '' + + try: + with open(basever, 'rb') as fd: + return fd.read() + except: + pass + + print 'cannot find GNAT version in gnatvsn.ads or in ' + basever + sys.exit(1) + + +def get_gnat_build_type(): + m = re.search(r'Build_Type : constant Gnat_Build_Type := (.+);', + gnatvsn_content) + if m: + return {'Gnatpro': 'PRO', + 'FSF': 'FSF', + 'GPL': 'GPL'}[m.group(1).strip()] + else: + print 'cannot compute GNAT build type' + sys.exit(1) + + +# First retrieve the name of the documentation we are building +doc_name = os.environ.get('DOC_NAME', None) +if doc_name is None: + print 'DOC_NAME environment variable should be set' + sys.exit(1) + +if doc_name not in DOCS: + print '%s is not a valid documentation name' % doc_name + sys.exit(1) + + +# Exclude sources that are not part of the current documentation +exclude_patterns = [] +for d in os.listdir(root_source_dir): + if d not in ('share', doc_name, doc_name + '.rst'): + exclude_patterns.append(d) + print 'ignoring %s' % d + +if doc_name == 'gnat_rm': + exclude_patterns.append('share/gnat_project_manager.rst') + print 'ignoring share/gnat_project_manager.rst' + +extensions = [] +templates_path = ['_templates'] +source_suffix = '.rst' +master_doc = doc_name + +# General information about the project. +project = DOCS[doc_name]['title'] + +copyright = get_copyright() + +version = get_gnat_version() +release = get_gnat_version() + +pygments_style = 'sphinx' +tags.add(get_gnat_build_type()) +html_theme = 'sphinxdoc' +if os.path.isfile('adacore_transparent.png'): + html_logo = 'adacore_transparent.png' +if os.path.isfile('favicon.ico'): + html_favicon = 'favicon.ico' + +html_static_path = ['_static'] + +latex_elements = { + 'preamble': latex_elements.TOC_DEPTH + + latex_elements.PAGE_BLANK + + latex_elements.TOC_CMD + + latex_elements.LATEX_HYPHEN + + latex_elements.doc_settings(DOCS[doc_name]['title'], + get_gnat_version()), + 'tableofcontents': latex_elements.TOC} + +latex_documents = [ + (master_doc, '%s.tex' % doc_name, project, u'AdaCore', 'manual')] + +texinfo_documents = [ + (master_doc, doc_name, project, + u'AdaCore', doc_name, doc_name, '')] + + +def setup(app): + app.add_lexer('ada', ada_pygments.AdaLexer()) + app.add_lexer('gpr', ada_pygments.GNATProjectLexer()) |