summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorWilliam Deegan <bill@baddogconsulting.com>2020-06-09 16:53:15 (GMT)
committerGitHub <noreply@github.com>2020-06-09 16:53:15 (GMT)
commit07ba4716ef08158da819ec98b4533d06c84c12dc (patch)
treef96d4db207544ac1b4cac6d0cbb1beb3b62acc0e
parentce32ce782301716a52aabc757178860bd3a04af5 (diff)
parent261f1d187b92adfbe262e0fad394743c8c0f80be (diff)
downloadSCons-07ba4716ef08158da819ec98b4533d06c84c12dc.zip
SCons-07ba4716ef08158da819ec98b4533d06c84c12dc.tar.gz
SCons-07ba4716ef08158da819ec98b4533d06c84c12dc.tar.bz2
Merge pull request #3641 from mwichmann/wip-sphinx-apidocs
Initial logic for Sphinx build of API docs - replacing epydoc
-rwxr-xr-xbin/scons_dev_master.py20
-rw-r--r--doc/Makefile20
-rw-r--r--doc/sphinx/SCons.Node.rst38
-rw-r--r--doc/sphinx/SCons.Platform.rst102
-rw-r--r--doc/sphinx/SCons.Scanner.rst86
-rw-r--r--doc/sphinx/SCons.Script.rst46
-rw-r--r--doc/sphinx/SCons.Tool.rst10
-rw-r--r--doc/sphinx/SCons.Variables.rst54
-rw-r--r--doc/sphinx/SCons.compat.rst10
-rw-r--r--doc/sphinx/SCons.rst194
-rw-r--r--doc/sphinx/conf.py199
-rw-r--r--doc/sphinx/index.rst37
12 files changed, 806 insertions, 10 deletions
diff --git a/bin/scons_dev_master.py b/bin/scons_dev_master.py
index 5ed7d49..26beb62 100755
--- a/bin/scons_dev_master.py
+++ b/bin/scons_dev_master.py
@@ -33,14 +33,12 @@ PYTHON_PACKAGES = [
]
BUILDING_PACKAGES = [
- 'python-libxml2',
- 'python-libxslt1',
+ 'python3-lxml',
'fop',
- 'python-dev',
- 'python-epydoc',
+ 'python3-dev',
'rpm',
'tar',
- 'lynx'
+ 'lynx',
# additional packages that Bill Deegan's web page suggests
#'docbook-to-man',
@@ -51,15 +49,17 @@ BUILDING_PACKAGES = [
# for ubuntu 9.10
# 'texlive-lang-french'
+ 'python3-sphinx',
+ 'sphinx-rtd-theme-common',
]
DOCUMENTATION_PACKAGES = [
'docbook-doc',
- 'epydoc-doc',
+ 'sphinx-doc',
'gcc-doc',
'pkg-config',
- 'python-doc',
+ 'python3-doc',
'openjdk-8-doc',
'swig-doc',
'texlive-doc',
@@ -79,10 +79,10 @@ TESTING_PACKAGES = [
'm4',
'openssh-client',
'openssh-server',
- 'python-profiler',
- 'python-all-dev',
+ 'python3-profiler',
+ 'python3-line-profiler',
'python3-all-dev',
- 'pypy-dev',
+ 'pypy3-dev',
'rcs',
'rpm',
'openjdk-8-jdk',
diff --git a/doc/Makefile b/doc/Makefile
new file mode 100644
index 0000000..4da19e3
--- /dev/null
+++ b/doc/Makefile
@@ -0,0 +1,20 @@
+# Minimal makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS =
+SPHINXBUILD = sphinx-build
+SPHINXPROJ = SCons
+SOURCEDIR = sphinx
+BUILDDIR = ../build/doc/api
+
+# Put it first so that "make" without argument is like "make help".
+help:
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
+
+.PHONY: help Makefile
+
+# Catch-all target: route all unknown targets to Sphinx using the new
+# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
+%: Makefile
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
diff --git a/doc/sphinx/SCons.Node.rst b/doc/sphinx/SCons.Node.rst
new file mode 100644
index 0000000..b6d5c8f
--- /dev/null
+++ b/doc/sphinx/SCons.Node.rst
@@ -0,0 +1,38 @@
+SCons.Node package
+==================
+
+Submodules
+----------
+
+SCons.Node.Alias module
+-----------------------
+
+.. automodule:: SCons.Node.Alias
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Node.FS module
+--------------------
+
+.. automodule:: SCons.Node.FS
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Node.Python module
+------------------------
+
+.. automodule:: SCons.Node.Python
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: SCons.Node
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.Platform.rst b/doc/sphinx/SCons.Platform.rst
new file mode 100644
index 0000000..8a55744
--- /dev/null
+++ b/doc/sphinx/SCons.Platform.rst
@@ -0,0 +1,102 @@
+SCons.Platform package
+======================
+
+Submodules
+----------
+
+SCons.Platform.aix module
+-------------------------
+
+.. automodule:: SCons.Platform.aix
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.cygwin module
+----------------------------
+
+.. automodule:: SCons.Platform.cygwin
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.darwin module
+----------------------------
+
+.. automodule:: SCons.Platform.darwin
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.hpux module
+--------------------------
+
+.. automodule:: SCons.Platform.hpux
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.irix module
+--------------------------
+
+.. automodule:: SCons.Platform.irix
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.mingw module
+---------------------------
+
+.. automodule:: SCons.Platform.mingw
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.os2 module
+-------------------------
+
+.. automodule:: SCons.Platform.os2
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.posix module
+---------------------------
+
+.. automodule:: SCons.Platform.posix
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.sunos module
+---------------------------
+
+.. automodule:: SCons.Platform.sunos
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.virtualenv module
+--------------------------------
+
+.. automodule:: SCons.Platform.virtualenv
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Platform.win32 module
+---------------------------
+
+.. automodule:: SCons.Platform.win32
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: SCons.Platform
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.Scanner.rst b/doc/sphinx/SCons.Scanner.rst
new file mode 100644
index 0000000..181dbde
--- /dev/null
+++ b/doc/sphinx/SCons.Scanner.rst
@@ -0,0 +1,86 @@
+SCons.Scanner package
+=====================
+
+Submodules
+----------
+
+SCons.Scanner.C module
+----------------------
+
+.. automodule:: SCons.Scanner.C
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.D module
+----------------------
+
+.. automodule:: SCons.Scanner.D
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.Dir module
+------------------------
+
+.. automodule:: SCons.Scanner.Dir
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.Fortran module
+----------------------------
+
+.. automodule:: SCons.Scanner.Fortran
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.IDL module
+------------------------
+
+.. automodule:: SCons.Scanner.IDL
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.LaTeX module
+--------------------------
+
+.. automodule:: SCons.Scanner.LaTeX
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.Prog module
+-------------------------
+
+.. automodule:: SCons.Scanner.Prog
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.RC module
+-----------------------
+
+.. automodule:: SCons.Scanner.RC
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Scanner.SWIG module
+-------------------------
+
+.. automodule:: SCons.Scanner.SWIG
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: SCons.Scanner
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.Script.rst b/doc/sphinx/SCons.Script.rst
new file mode 100644
index 0000000..704b8fa
--- /dev/null
+++ b/doc/sphinx/SCons.Script.rst
@@ -0,0 +1,46 @@
+SCons.Script package
+====================
+
+Submodules
+----------
+
+SCons.Script.Interactive module
+-------------------------------
+
+.. automodule:: SCons.Script.Interactive
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Script.Main module
+------------------------
+
+.. automodule:: SCons.Script.Main
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Script.SConsOptions module
+--------------------------------
+
+.. automodule:: SCons.Script.SConsOptions
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Script.SConscript module
+------------------------------
+
+.. automodule:: SCons.Script.SConscript
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: SCons.Script
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.Tool.rst b/doc/sphinx/SCons.Tool.rst
new file mode 100644
index 0000000..151e6fa
--- /dev/null
+++ b/doc/sphinx/SCons.Tool.rst
@@ -0,0 +1,10 @@
+SCons.Tool package
+==================
+
+Module contents
+---------------
+
+.. automodule:: SCons.Tool
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.Variables.rst b/doc/sphinx/SCons.Variables.rst
new file mode 100644
index 0000000..dc2388a
--- /dev/null
+++ b/doc/sphinx/SCons.Variables.rst
@@ -0,0 +1,54 @@
+SCons.Variables package
+=======================
+
+Submodules
+----------
+
+SCons.Variables.BoolVariable module
+-----------------------------------
+
+.. automodule:: SCons.Variables.BoolVariable
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Variables.EnumVariable module
+-----------------------------------
+
+.. automodule:: SCons.Variables.EnumVariable
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Variables.ListVariable module
+-----------------------------------
+
+.. automodule:: SCons.Variables.ListVariable
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Variables.PackageVariable module
+--------------------------------------
+
+.. automodule:: SCons.Variables.PackageVariable
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Variables.PathVariable module
+-----------------------------------
+
+.. automodule:: SCons.Variables.PathVariable
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+
+Module contents
+---------------
+
+.. automodule:: SCons.Variables
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.compat.rst b/doc/sphinx/SCons.compat.rst
new file mode 100644
index 0000000..d80b555
--- /dev/null
+++ b/doc/sphinx/SCons.compat.rst
@@ -0,0 +1,10 @@
+SCons.compat package
+====================
+
+Module contents
+---------------
+
+.. automodule:: SCons.compat
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/SCons.rst b/doc/sphinx/SCons.rst
new file mode 100644
index 0000000..b9959e3
--- /dev/null
+++ b/doc/sphinx/SCons.rst
@@ -0,0 +1,194 @@
+SCons package
+=============
+
+Module contents
+---------------
+
+.. automodule:: SCons
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+Subpackages
+-----------
+
+.. toctree::
+
+ SCons.Node
+ SCons.Platform
+ SCons.Scanner
+ SCons.Script
+ SCons.Tool
+ SCons.Variables
+ SCons.compat
+
+Submodules
+----------
+
+SCons.Action module
+-------------------
+
+.. automodule:: SCons.Action
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Builder module
+--------------------
+
+.. automodule:: SCons.Builder
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.CacheDir module
+---------------------
+
+.. automodule:: SCons.CacheDir
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Conftest module
+---------------------
+
+.. automodule:: SCons.Conftest
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Debug module
+------------------
+
+.. automodule:: SCons.Debug
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Defaults module
+---------------------
+
+.. automodule:: SCons.Defaults
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Environment module
+------------------------
+
+.. automodule:: SCons.Environment
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Errors module
+-------------------
+
+.. automodule:: SCons.Errors
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Executor module
+---------------------
+
+.. automodule:: SCons.Executor
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Job module
+----------------
+
+.. automodule:: SCons.Job
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Memoize module
+--------------------
+
+.. automodule:: SCons.Memoize
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.PathList module
+---------------------
+
+.. automodule:: SCons.PathList
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.SConf module
+------------------
+
+.. automodule:: SCons.SConf
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.SConsign module
+---------------------
+
+.. automodule:: SCons.SConsign
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Subst module
+------------------
+
+.. automodule:: SCons.Subst
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Taskmaster module
+-----------------------
+
+.. automodule:: SCons.Taskmaster
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Util module
+-----------------
+
+.. automodule:: SCons.Util
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.Warnings module
+---------------------
+
+.. automodule:: SCons.Warnings
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.cpp module
+----------------
+
+.. automodule:: SCons.cpp
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.dblite module
+-------------------
+
+.. automodule:: SCons.dblite
+ :members:
+ :undoc-members:
+ :show-inheritance:
+
+SCons.exitfuncs module
+----------------------
+
+.. automodule:: SCons.exitfuncs
+ :members:
+ :undoc-members:
+ :show-inheritance:
diff --git a/doc/sphinx/conf.py b/doc/sphinx/conf.py
new file mode 100644
index 0000000..21a982f
--- /dev/null
+++ b/doc/sphinx/conf.py
@@ -0,0 +1,199 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# SCons documentation build configuration file, created by
+# sphinx-quickstart on Mon Apr 30 09:36:53 2018.
+#
+# This file is execfile()d with the current directory set to its
+# containing dir.
+#
+# Note that not all possible configuration values are present in this
+# autogenerated file.
+#
+# All configuration values have a default; values that are commented out
+# serve to show the default.
+
+# If extensions (or modules to document with autodoc) are in another directory,
+# add these directories to sys.path here. If the directory is relative to the
+# documentation root, use os.path.abspath to make it absolute, like shown here.
+#
+import os
+import sys
+sys.path.insert(0, os.path.abspath('../../'))
+
+# -- General configuration ------------------------------------------------
+
+# If your documentation needs a minimal Sphinx version, state it here.
+#
+needs_sphinx = '1.3'
+
+# Add any Sphinx extension module names here, as strings. They can be
+# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
+# ones.
+extensions = [
+ 'autoclasstoc',
+ 'sphinx.ext.autodoc',
+ 'sphinx.ext.autosummary',
+ #'sphinx.ext.githubpages'
+ 'sphinx.ext.napoleon',
+ 'sphinx.ext.todo',
+ 'sphinx.ext.viewcode',
+]
+
+autosummary_generate = True
+
+autodoc_default_options = {
+ "members": True,
+ #"special-members": True,
+ "private-members": True,
+ "inherited-members": True,
+ "undoc-members": True,
+ "exclude-members": '__weakref__',
+}
+autodoc_exclude_members = ['*Tests']
+napoleon_include_special_with_doc = False
+napoleon_include_private_with_doc = True
+
+# Add any paths that contain templates here, relative to this directory.
+templates_path = ['_templates']
+
+# The suffix(es) of source filenames.
+# You can specify multiple suffix as a list of string:
+#
+source_suffix = '.rst'
+
+# The master toctree document.
+master_doc = 'index'
+
+# General information about the project.
+project = 'SCons'
+copyright = '2020, SCons Project'
+author = 'SCons Project Team'
+
+# The version info for the project you're documenting, acts as replacement for
+# |version| and |release|, also used in various other places throughout the
+# built documents.
+#
+# The short X.Y version.
+version = '4.0'
+# The full version, including alpha/beta/rc tags.
+release = '4.0.0a1'
+
+# The language for content autogenerated by Sphinx. Refer to documentation
+# for a list of supported languages.
+#
+# This is also used if you do content translation via gettext catalogs.
+# Usually you set "language" from the command line for these cases.
+language = None
+
+# List of patterns, relative to source directory, that match files and
+# directories to ignore when looking for source files.
+# This pattern also affects html_static_path and html_extra_path .
+exclude_patterns = ["*Tests.py"]
+
+# The name of the Pygments (syntax highlighting) style to use.
+pygments_style = 'sphinx'
+
+# If true, `todo` and `todoList` produce output, else they produce nothing.
+todo_include_todos = False
+
+
+# -- Options for HTML output ----------------------------------------------
+
+# The theme to use for HTML and HTML Help pages. See the documentation for
+# a list of builtin themes.
+#
+#html_theme = 'alabaster'
+html_theme = 'classic'
+
+# Theme options are theme-specific and customize the look and feel of a theme
+# further. For a list of options available for each theme, see the
+# documentation.
+#
+# html_theme_options = {}
+
+# Add any paths that contain custom static files (such as style sheets) here,
+# relative to this directory. They are copied after the builtin static files,
+# so a file named "default.css" will overwrite the builtin "default.css".
+html_static_path = ['_static']
+
+# Custom sidebar templates, must be a dictionary that maps document names
+# to template names.
+#
+# The default sidebars (for documents that don't match any pattern) are
+# defined by theme itself. Builtin themes are using these templates by
+# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
+# 'searchbox.html']``.
+#
+# html_sidebars = {}
+
+# -- Options for HTMLHelp output ------------------------------------------
+
+# Output file base name for HTML help builder.
+htmlhelp_basename = 'SConsAPIDocs'
+
+
+# -- Options for LaTeX output ---------------------------------------------
+
+latex_elements = {
+ # The paper size ('letterpaper' or 'a4paper').
+ #
+ # 'papersize': 'letterpaper',
+
+ # The font size ('10pt', '11pt' or '12pt').
+ #
+ # 'pointsize': '10pt',
+
+ # Additional stuff for the LaTeX preamble.
+ #
+ # 'preamble': '',
+
+ # Latex figure (float) alignment
+ #
+ # 'figure_align': 'htbp',
+}
+
+
+# Grouping the document tree into LaTeX files. List of tuples
+# (source start file, target name, title,
+# author, documentclass [howto, manual, or own class]).
+latex_documents = [
+ (
+ master_doc,
+ "SConsAPIDocs.tex",
+ "SCons API Documentation",
+ "SCons Project",
+ "manual",
+ )
+]
+
+
+# -- Options for manual page output ---------------------------------------
+
+# One entry per manual page. List of tuples
+# (source start file, name, description, authors, manual section).
+man_pages = [
+ (master_doc, 'sconsapidocs', 'SCons API Documentation', [author], 1)
+]
+
+
+# -- Options for Texinfo output -------------------------------------------
+
+# Grouping the document tree into Texinfo files. List of tuples
+# (source start file, target name, title, author,
+# dir menu entry, description, category)
+texinfo_documents = [
+ (
+ master_doc,
+ "SConsAPIDocs",
+ "SCons API Documentation",
+ author,
+ "SConsAPIDocs",
+ "One line description of project.",
+ "Miscellaneous",
+ )
+]
+
+
+# -- Options for Epub output -------------------------------------------------
+
diff --git a/doc/sphinx/index.rst b/doc/sphinx/index.rst
new file mode 100644
index 0000000..6828154
--- /dev/null
+++ b/doc/sphinx/index.rst
@@ -0,0 +1,37 @@
+.. SCons documentation master file, created by
+ sphinx-quickstart on Mon Apr 30 09:36:53 2018.
+ You can adapt this file completely to your liking, but it should at least
+ contain the root `toctree` directive.
+
+SCons Project API Documentation
+===============================
+
+This is the internal API Documentation for SCons.
+The Documentation is generated using the Sphinx tool.
+The target audience is developers working on SCons itself,
+so it does not clearly delineate what is "Public API" -
+interfaces for use in your SCons configuration scripts
+which have a consistency guarantee, and what is internal,
+so always keep the SCons manual page around for helping
+with such determinations.
+
+.. toctree::
+ :maxdepth: 2
+ :caption: Contents:
+
+ SCons
+ SCons.compat
+ SCons.Node
+ SCons.Platform
+ SCons.Scanner
+ SCons.Script
+ SCons.Tool
+ SCons.Variables
+
+
+Indices and Tables
+==================
+
+* :ref:`genindex`
+* :ref:`modindex`
+* :ref:`search`