ENDIF()
IF(SALOME_BUILD_DOC)
FIND_PACKAGE(SalomeDoxygen)
- SET(Sphinx_EXTENSIONS sphinxcontrib.napoleon)
FIND_PACKAGE(SalomeSphinx)
+ INCLUDE(UseSphinx)
+ SPHINX_CHECK_EXTENSIONS(sphinx_rtd_theme)
+ IF(SPHINX_VERSION VERSION_LESS "1.3")
+ SPHINX_CHECK_EXTENSIONS(sphinxcontrib.napoleon)
+ ENDIF()
SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC)
SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC)
ENDIF()
# All configuration values have a default; values that are commented out
# serve to show the default.
+import importlib
import sys, os
import sphinx
# 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.autodoc','sphinx.ext.autosummary']
-try:
- import sphinxcontrib.napoleon
- extensions += ['sphinxcontrib.napoleon']
-except:
- pass
-try:
- import sphinx_rtd_theme
- extensions += ['sphinx_rtd_theme']
- use_rtd_theme = True
-except:
- use_rtd_theme = False
+# Optional extensions
+extra_extensions = ['sphinx_rtd_theme']
+if sphinx.version_info[:2] < (1,3):
+ extra_extensions += ['sphinxcontrib.napoleon']
+else:
+ extra_extensions += ['sphinx.ext.napoleon']
+for ext in extra_extensions:
+ try:
+ importlib.import_module(ext)
+ extensions.append(ext)
+ globals().update({'use_{}'.format(ext):True})
+ except:
+ globals().update({'use_{}'.format(ext):False})
+
#add pdfbuilder to build a pdf with rst2pdf
#extensions = ['rst2pdf.pdfbuilder']
# The theme to use for HTML and HTML Help pages. Major themes that come with
# Sphinx are currently 'default' and 'sphinxdoc'.
-if use_rtd_theme:
+if use_sphinx_rtd_theme:
html_theme = 'sphinx_rtd_theme'
else:
html_theme = 'default' if sphinx.version_info[:2] < (1,3) else 'classic'