user-guide: Allow build with sphinx < 1.8
authorBen Gamari <ben@smart-cactus.org>
Thu, 20 Sep 2018 21:35:05 +0000 (17:35 -0400)
committerBen Gamari <ben@smart-cactus.org>
Thu, 20 Sep 2018 22:18:05 +0000 (18:18 -0400)
Apparently the override argument to add_directive_to_domain was added in sphinx
1.8.

docs/users_guide/flags.py

index 0e56bdf..c95b9aa 100644 (file)
 
 from docutils import nodes
 from docutils.parsers.rst import Directive, directives
+import sphinx
 from sphinx import addnodes
 from sphinx.domains.std import GenericObject
 from sphinx.errors import SphinxError
+from distutils.version import LooseVersion
 from utils import build_table_from_list
 
 ### Settings
@@ -599,15 +601,18 @@ def purge_flags(app, env, docname):
 ### Initialization
 
 def setup(app):
+    # The override argument to add_directive_to_domain is only supported by >= 1.8
+    sphinx_version = LooseVersion(sphinx.__version__)
+    override_arg = {'override': True} if sphinx_version >= LooseVersion('1.8') else {}
 
     # Add ghc-flag directive, and override the class with our own
     app.add_object_type('ghc-flag', 'ghc-flag')
-    app.add_directive_to_domain('std', 'ghc-flag', Flag, override=True)
+    app.add_directive_to_domain('std', 'ghc-flag', Flag, **override_arg)
 
     # Add extension directive, and override the class with our own
     app.add_object_type('extension', 'extension')
     app.add_directive_to_domain('std', 'extension', LanguageExtension,
-            override=True)
+                                **override_arg)
     # NB: language-extension would be misinterpreted by sphinx, and produce
     # lang="extensions" XML attributes