mirror of
https://github.com/NVIDIA/nvbench.git
synced 2026-04-20 06:48:53 +00:00
Add sphinx-combined folder that builds combined C++ & Python docs
This commit is contained in:
16
docs/build_combined_docs.sh
Executable file
16
docs/build_combined_docs.sh
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
BUILD_DIR="${SCRIPT_DIR}/sphinx-combined/_build"
|
||||
DOXYGEN_DIR="${SCRIPT_DIR}/sphinx-combined/_doxygen"
|
||||
|
||||
mkdir -p "${BUILD_DIR}" "${DOXYGEN_DIR}"
|
||||
|
||||
echo "Running Doxygen for combined C++ API..."
|
||||
(cd "${SCRIPT_DIR}/sphinx-combined" && doxygen Doxyfile)
|
||||
|
||||
echo "Building combined Sphinx docs..."
|
||||
sphinx-build -b html "${SCRIPT_DIR}/sphinx-combined" "${BUILD_DIR}"
|
||||
|
||||
echo "Combined docs available at ${BUILD_DIR}/index.html"
|
||||
43
docs/sphinx-combined/Doxyfile
Normal file
43
docs/sphinx-combined/Doxyfile
Normal file
@@ -0,0 +1,43 @@
|
||||
PROJECT_NAME = "NVBench"
|
||||
PROJECT_BRIEF = "C++ NVBench Library"
|
||||
OUTPUT_DIRECTORY = _doxygen
|
||||
GENERATE_XML = YES
|
||||
GENERATE_HTML = NO
|
||||
GENERATE_LATEX = NO
|
||||
QUIET = YES
|
||||
WARN_IF_UNDOCUMENTED = NO
|
||||
WARN_IF_DOC_ERROR = YES
|
||||
WARN_LOGFILE = _doxygen/warnings.log
|
||||
INPUT = ../../nvbench
|
||||
EXCLUDE = ../../nvbench/cupti_profiler.cxx
|
||||
EXCLUDE_SYMBOLS = type_strings \
|
||||
nvbench::detail \
|
||||
nvbench::internal \
|
||||
nvbench::tl \
|
||||
UNUSED \
|
||||
M_PI \
|
||||
NVBENCH_UNIQUE_IDENTIFIER_IMPL1 \
|
||||
NVBENCH_UNIQUE_IDENTIFIER_IMPL2 \
|
||||
main
|
||||
FILE_PATTERNS = *.cuh *.cxx *.cu *.h *.hpp
|
||||
EXTENSION_MAPPING = cuh=C++ cu=C++
|
||||
RECURSIVE = YES
|
||||
EXTRACT_ALL = YES
|
||||
EXTRACT_PRIVATE = YES
|
||||
EXTRACT_STATIC = YES
|
||||
JAVADOC_AUTOBRIEF = YES
|
||||
MULTILINE_CPP_IS_BRIEF = YES
|
||||
STRIP_FROM_PATH = ../../
|
||||
ENABLE_PREPROCESSING = YES
|
||||
MACRO_EXPANSION = YES
|
||||
EXPAND_ONLY_PREDEF = NO
|
||||
GENERATE_TAGFILE =
|
||||
XML_PROGRAMLISTING = NO
|
||||
PREDEFINED = __device__= \
|
||||
__host__= \
|
||||
__global__= \
|
||||
__forceinline__= \
|
||||
__shared__= \
|
||||
__align__(x)= \
|
||||
__launch_bounds__(x)= \
|
||||
NVBENCH_HAS_CUDA=1
|
||||
BIN
docs/sphinx-combined/_static/nvidia-logo.png
Normal file
BIN
docs/sphinx-combined/_static/nvidia-logo.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 126 KiB |
105
docs/sphinx-combined/conf.py
Normal file
105
docs/sphinx-combined/conf.py
Normal file
@@ -0,0 +1,105 @@
|
||||
import os
|
||||
|
||||
project = "NVBench API"
|
||||
author = "NVIDIA Corporation"
|
||||
|
||||
extensions = [
|
||||
"breathe",
|
||||
"sphinx.ext.autodoc",
|
||||
"sphinx.ext.napoleon",
|
||||
"sphinx.ext.autosummary",
|
||||
]
|
||||
|
||||
templates_path = ["_templates"]
|
||||
exclude_patterns = ["_build", "_doxygen"]
|
||||
|
||||
autosummary_generate = True
|
||||
autodoc_default_options = {"members": True, "undoc-members": True}
|
||||
|
||||
napoleon_custom_sections = ["Note", "Parameters"]
|
||||
|
||||
release = "0.2.0"
|
||||
|
||||
_here = os.path.abspath(os.path.dirname(__file__))
|
||||
_doxygen_xml = os.path.join(_here, "_doxygen", "xml")
|
||||
|
||||
breathe_projects = {"nvbench": _doxygen_xml}
|
||||
breathe_default_project = "nvbench"
|
||||
breathe_domain_by_extension = {"cuh": "cpp", "cxx": "cpp", "cu": "cpp"}
|
||||
|
||||
|
||||
def _patch_breathe_namespace_declarations() -> None:
|
||||
try:
|
||||
import breathe.renderer.sphinxrenderer as sphinxrenderer
|
||||
from docutils import nodes
|
||||
from sphinx import addnodes
|
||||
except Exception:
|
||||
return
|
||||
|
||||
original = sphinxrenderer.SphinxRenderer.handle_declaration
|
||||
|
||||
def handle_declaration(self, nodeDef, declaration, *args, **kwargs):
|
||||
is_namespace = getattr(nodeDef, "kind", None) == "namespace"
|
||||
if not is_namespace:
|
||||
return original(self, nodeDef, declaration, *args, **kwargs)
|
||||
|
||||
name = (declaration or "").strip()
|
||||
if name.startswith("namespace "):
|
||||
name = name[len("namespace ") :].strip()
|
||||
if not name:
|
||||
name = "<anonymous>"
|
||||
|
||||
keyword = addnodes.desc_sig_keyword("namespace", "namespace")
|
||||
sig_name = addnodes.desc_sig_name(name, name)
|
||||
return [keyword, nodes.Text(" "), sig_name]
|
||||
|
||||
sphinxrenderer.SphinxRenderer.handle_declaration = handle_declaration
|
||||
|
||||
|
||||
def setup(app):
|
||||
_patch_breathe_namespace_declarations()
|
||||
|
||||
|
||||
######################################################
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
html_theme = "nvidia_sphinx_theme"
|
||||
|
||||
html_logo = "_static/nvidia-logo.png"
|
||||
|
||||
html_baseurl = (
|
||||
os.environ.get("NVBENCH_DOCS_BASE_URL", "https://nvidia.github.io/nvbench/").rstrip(
|
||||
"/"
|
||||
)
|
||||
+ "/"
|
||||
)
|
||||
|
||||
html_theme_options = {
|
||||
"icon_links": [
|
||||
{
|
||||
"name": "GitHub",
|
||||
"url": "https://github.com/NVIDIA/nvbench",
|
||||
"icon": "fa-brands fa-github",
|
||||
"type": "fontawesome",
|
||||
}
|
||||
],
|
||||
"navigation_depth": 4,
|
||||
"show_toc_level": 2,
|
||||
"navbar_start": ["navbar-logo"],
|
||||
"navbar_end": ["theme-switcher", "navbar-icon-links"],
|
||||
"footer_start": ["copyright"],
|
||||
"footer_end": ["sphinx-version"],
|
||||
"sidebar_includehidden": True,
|
||||
"collapse_navigation": False,
|
||||
# "switcher": {
|
||||
# "json_url": f"{html_baseurl}nv-versions.json",
|
||||
# "version_match": release,
|
||||
# },
|
||||
}
|
||||
|
||||
html_static_path = ["_static"] if os.path.exists("_static") else []
|
||||
|
||||
# Images directory
|
||||
if os.path.exists("img"):
|
||||
html_static_path.append("img")
|
||||
5
docs/sphinx-combined/cpp_api.rst
Normal file
5
docs/sphinx-combined/cpp_api.rst
Normal file
@@ -0,0 +1,5 @@
|
||||
NVBench C++ API Reference
|
||||
=========================
|
||||
|
||||
.. doxygenindex::
|
||||
:project: nvbench
|
||||
10
docs/sphinx-combined/index.rst
Normal file
10
docs/sphinx-combined/index.rst
Normal file
@@ -0,0 +1,10 @@
|
||||
NVBench API
|
||||
===========
|
||||
|
||||
Combined C++ and Python API documentation.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
|
||||
cpp_api
|
||||
python_api
|
||||
8
docs/sphinx-combined/python_api.rst
Normal file
8
docs/sphinx-combined/python_api.rst
Normal file
@@ -0,0 +1,8 @@
|
||||
cuda.bench Python API Reference
|
||||
===============================
|
||||
|
||||
.. automodule:: cuda.bench
|
||||
:members:
|
||||
:imported-members:
|
||||
:undoc-members:
|
||||
:show-inheritance:
|
||||
Reference in New Issue
Block a user