Salome HOME
bos #23972 [CEA 19980] sphinxcontrib_napoleon is not needed with Sphinx >= 1.3
authorvsr <vsr@opencascade.com>
Fri, 19 Feb 2021 06:52:32 +0000 (09:52 +0300)
committervsr <vsr@opencascade.com>
Fri, 19 Feb 2021 06:52:32 +0000 (09:52 +0300)
CMakeLists.txt
doc/salome/gui/SMESH/conf.py.in

index 6796fcfe9254599b1154d524b9f4ad4187fcf3e0..feff178cddbc77acd1354406c3de510d015839ca 100644 (file)
@@ -130,8 +130,12 @@ IF(SALOME_BUILD_TESTS)
 ENDIF()
 IF(SALOME_BUILD_DOC)
   FIND_PACKAGE(SalomeDoxygen)
 ENDIF()
 IF(SALOME_BUILD_DOC)
   FIND_PACKAGE(SalomeDoxygen)
-  SET(Sphinx_EXTENSIONS sphinxcontrib.napoleon)
   FIND_PACKAGE(SalomeSphinx)
   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()
   SALOME_LOG_OPTIONAL_PACKAGE(Doxygen SALOME_BUILD_DOC)
   SALOME_LOG_OPTIONAL_PACKAGE(Sphinx SALOME_BUILD_DOC)
 ENDIF()
index 66efe32d3c7318abd5d6c5c736683895d4b1e8e6..be0975ff7cd9159d19b0519dbb70f7cf50a432f5 100644 (file)
@@ -11,6 +11,7 @@
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 
+import importlib
 import sys, os
 import sphinx
 
 import sys, os
 import sphinx
 
@@ -25,17 +26,20 @@ 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']
 # 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']
 
 #add pdfbuilder to build a pdf with rst2pdf
 #extensions = ['rst2pdf.pdfbuilder']
 
@@ -111,7 +115,7 @@ pygments_style = 'sphinx'
 
 # The theme to use for HTML and HTML Help pages.  Major themes that come with
 # Sphinx are currently 'default' and 'sphinxdoc'.
 
 # 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'
   html_theme = 'sphinx_rtd_theme'
 else:
   html_theme = 'default' if sphinx.version_info[:2] < (1,3) else 'classic'