aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/doc/share/conf.py
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2015-02-20 10:11:44 +0100
committerArnaud Charlet <charlet@gcc.gnu.org>2015-02-20 10:11:44 +0100
commitcb2d884d7d2b5fe83aba42f1387542b50d5f06b1 (patch)
tree8595086bf6f09398ca79a336e320d885e52b2c66 /gcc/ada/doc/share/conf.py
parent07a64c021a8fbd6df4d411b9852cfa95afb1cf08 (diff)
downloadgcc-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.py134
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())