import os import subprocess from documenteer.sphinxconfig.utils import form_ltd_edition_name def configureDoxyfile(input_dir, output_dir): with open('Doxyfile.in', 'r') as file: filedata = file.read() filedata = filedata.replace('@DOXYGEN_INPUT_DIR@', input_dir) filedata = filedata.replace('@DOXYGEN_OUTPUT_DIR@', output_dir) with open('Doxyfile', 'w') as file: file.write(filedata) # Check if we're running on Read the Docs' servers read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True' if read_the_docs_build: input_dir = '../include/kami' output_dir = 'build' configureDoxyfile(input_dir, output_dir) subprocess.call('doxygen', shell=True) breathe_projects = { "kami": output_dir + 'docs/xml' } # -- Project information ----------------------------------------------------- project = 'Kami' copyright = '2020-2023 The Johns Hopkins University Applied Physics Laboratory LLC' author = 'James P. Howard, II ' # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. #... # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'sphinx.ext.todo', 'sphinx.ext.githubpages', 'breathe', 'exhale', 'myst_parser', 'releases'] # 'releases' (changelog) settings releases_github_path = "JHUAPL/kami" releases_unstable_prehistory = True # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # 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 = ['_build', 'Thumbs.db', '.DS_Store'] # 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'] # Breathe Configuration # Setup the breathe extension breathe_default_project = "kami" # Setup the exhale extension exhale_args = { # These arguments are required "containmentFolder": "./api", "rootFileName": "library_root.rst", "rootFileTitle": "Library API", "doxygenStripFromPath": "..", # Suggested optional arguments "createTreeView": True, "exhaleExecutesDoxygen": True, "exhaleDoxygenStdin": "INPUT = ../include" } # Tell sphinx what the primary language being documented is. primary_domain = 'cpp' # Tell sphinx what the pygments highlight language should be. highlight_language = 'cpp' # 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. github_ref = os.getenv("GITHUB_REF", "") if github_ref == "": git_ref = "master" else: match = re.match(r"refs/(heads|tags|pull)/(?P.+)", github_ref) if not match: git_ref = "master" else: git_ref = match.group("ref") version = form_ltd_edition_name(git_ref) # The full version, including alpha/beta/rc tags. release = version # -- General configuration --------------------------------------------------- # The suffix(es) of source filenames. # You can specify multiple suffix as a list of string: source_suffix = { '.rst': 'restructuredtext', '.md': 'markdown', } # The master toctree document. master_doc = 'index' # 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 # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # # 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 = {} #---sphinx-themes----- html_theme = 'sphinx_rtd_theme' # Theme options are theme-specific and customize the look and feel of a # theme further. html_theme_options = { # Include hidden TOCs in Site navbar? # # Note: If this is "false", you cannot have mixed ``:hidden:`` and # non-hidden ``toctree`` directives in the same page, or else the build # will break. # # Values: "true" (default) or "false" 'globaltoc_includehidden': "true", 'display_version': True, } # -- 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, 'kami', u'Kami: Agent-Based Modeling in Modern C++', [author], '3kami') ] # If true, show URL addresses after external links. # man_show_urls = False html_show_sphinx = False