aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/doc
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@adacore.com>2021-04-07 05:11:57 -0400
committerPierre-Marie de Rodat <derodat@adacore.com>2021-04-28 05:37:53 -0400
commit4c118453c7c6db1e24145401abf70d286133de3f (patch)
tree4e418194a4575fb22bde262c9aea30df9068679b /gcc/ada/doc
parent5b4b66291f2086f56dc3a1d7df494f901cd0b63e (diff)
downloadgcc-4c118453c7c6db1e24145401abf70d286133de3f.zip
gcc-4c118453c7c6db1e24145401abf70d286133de3f.tar.gz
gcc-4c118453c7c6db1e24145401abf70d286133de3f.tar.bz2
[Ada] Fix the Sphinx configuration and port it to Python3
gcc/ada/ * .gitignore: New. * doc/share/conf.py: Add Python 3 compatibility. * doc/share/gnat.sty: Add missing file.
Diffstat (limited to 'gcc/ada/doc')
-rw-r--r--gcc/ada/doc/share/conf.py32
-rw-r--r--gcc/ada/doc/share/gnat.sty72
2 files changed, 88 insertions, 16 deletions
diff --git a/gcc/ada/doc/share/conf.py b/gcc/ada/doc/share/conf.py
index e6fafcf..debd716 100644
--- a/gcc/ada/doc/share/conf.py
+++ b/gcc/ada/doc/share/conf.py
@@ -37,45 +37,45 @@ def get_copyright():
def get_gnat_version():
- m = re.search(r'Gnat_Static_Version_String : ' +
- r'constant String := "([^\(\)]+)\(.*\)?";',
+ m = re.search(br'Gnat_Static_Version_String : ' +
+ br'constant String := "([^\(\)]+)\(.*\)?";',
gnatvsn_content)
if m:
- return m.group(1).strip()
+ return m.group(1).strip().decode()
else:
if texi_fsf and os.path.exists(basever):
return ''
try:
- with open(basever, 'rb') as fd:
+ with open(basever) as fd:
return fd.read()
- except:
+ except Exception:
pass
- print 'cannot find GNAT version in gnatvsn.ads or in ' + basever
+ 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 := (.+);',
+ m = re.search(br'Build_Type : constant Gnat_Build_Type := (.+);',
gnatvsn_content)
if m:
- return {'Gnatpro': 'PRO',
- 'FSF': 'FSF',
- 'GPL': 'GPL'}[m.group(1).strip()]
+ return {b'Gnatpro': 'PRO',
+ b'FSF': 'FSF',
+ b'GPL': 'GPL'}[m.group(1).strip()]
else:
- print 'cannot compute GNAT build type'
+ 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'
+ 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
+ print('%s is not a valid documentation name' % doc_name)
sys.exit(1)
@@ -84,11 +84,11 @@ 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
+ print('ignoring %s' % d)
if doc_name == 'gnat_rm':
exclude_patterns.append('share/gnat_project_manager.rst')
- print 'ignoring share/gnat_project_manager.rst'
+ print('ignoring share/gnat_project_manager.rst')
extensions = []
templates_path = ['_templates']
@@ -103,7 +103,7 @@ copyright = get_copyright()
version = get_gnat_version()
release = get_gnat_version()
-pygments_style = 'sphinx'
+pygments_style = None
tags.add(get_gnat_build_type())
html_theme = 'sphinxdoc'
if os.path.isfile('adacore_transparent.png'):
diff --git a/gcc/ada/doc/share/gnat.sty b/gcc/ada/doc/share/gnat.sty
new file mode 100644
index 0000000..1a152fb
--- /dev/null
+++ b/gcc/ada/doc/share/gnat.sty
@@ -0,0 +1,72 @@
+% Needed to generate footers with total number of pages
+\RequirePackage{lastpage}
+
+% AdaCore specific maketitle
+\renewcommand{\maketitle}{%
+ \begin{titlepage}%
+ \let\footnotesize\small
+ \let\footnoterule\relax
+ \rule{\textwidth}{1pt}%
+ \ifsphinxpdfoutput
+ \begingroup
+ % These \defs are required to deal with multi-line authors; it
+ % changes \\ to ', ' (comma-space), making it pass muster for
+ % generating document info in the PDF file.
+ \def\\{, }
+ \def\and{and }
+ \pdfinfo{
+ /Author (\@author)
+ /Title (\@title)
+ }
+ \endgroup
+ \fi
+ \begin{flushright}%
+ \sphinxlogo%
+ {\rm\Huge \@title \par}%
+ {\em\LARGE\py@HeaderFamily \py@release\releaseinfo \par}
+ \vfill
+ {\LARGE\py@HeaderFamily
+ \par}
+ \vfill\vfill
+ {\large
+ \@date \par
+ \vfill
+ \py@authoraddress \par
+ }%
+ \end{flushright}%\par
+ \@thanks
+ \end{titlepage}%
+ \cleardoublepage%
+ \setcounter{footnote}{0}%
+ \let\thanks\relax\let\maketitle\relax
+}
+
+% AdaCore specific headers/footers
+% Redefine the 'normal' header/footer style when using "fancyhdr" package:
+\@ifundefined{fancyhf}{}{
+ % Use \pagestyle{normal} as the primary pagestyle for text.
+ \fancypagestyle{normal}{
+ \fancyhf{}
+ \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage\ of \pageref*{LastPage}}}
+ \fancyfoot[LO]{{\py@HeaderFamily\nouppercase{\rightmark}}}
+ \fancyfoot[RE]{{\py@HeaderFamily\nouppercase{\leftmark}}}
+ \fancyhead[LE,RO]{{\py@HeaderFamily \@title, \py@release}}
+ \renewcommand{\headrulewidth}{0.4pt}
+ \renewcommand{\footrulewidth}{0.4pt}
+ % define chaptermark with \@chappos when \@chappos is available for Japanese
+ \ifx\@chappos\undefined\else
+ \def\chaptermark##1{\markboth{\@chapapp\space\thechapter\space\@chappos\space ##1}{}}
+ \fi
+ }
+ % Update the plain style so we get the page number & footer line,
+ % but not a chapter or section title. This is to keep the first
+ % page of a chapter and the blank page between chapters `clean.'
+ \fancypagestyle{plain}{
+ \fancyhf{}
+ \fancyfoot[LE,RO]{{\py@HeaderFamily\thepage\ of \pageref*{LastPage}}}
+ \fancyfoot[LO,RE]{{\py@HeaderFamily \GNATFullDocumentName}}
+ \fancyhead[LE,RO]{{\py@HeaderFamily \@title\ \GNATVersion}}
+ \renewcommand{\headrulewidth}{0.0pt}
+ \renewcommand{\footrulewidth}{0.4pt}
+ }
+}