summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAntoine Beaupré <anarcat@koumbit.org>2015-10-08 10:26:02 -0400
committerAntoine Beaupré <anarcat@koumbit.org>2015-10-08 10:26:02 -0400
commit86487d192a9a5ab7ff4eedb92d793485b4c30268 (patch)
treede8a1f1149103af4c72bde6b42b08aa59a02ff14
parent824f9c72a2c6d7e09f5ddba7747d7d963b5bebdd (diff)
use build_py to fix build on RTD
it seems that our subcommands are ignored over there, for some mysterious reason.
-rw-r--r--setup.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/setup.py b/setup.py
index c3e6ad887..7376c56e2 100644
--- a/setup.py
+++ b/setup.py
@@ -7,6 +7,8 @@ from glob import glob
from distutils.command.build import build
from distutils.core import Command
from distutils.errors import DistutilsOptionError
+from distutils import log
+from setuptools.command.build_py import build_py
min_python = (3, 2)
my_python = sys.version_info
@@ -195,13 +197,38 @@ Borg Backup API documentation"
""" % mod)
# (function, predicate), see http://docs.python.org/2/distutils/apiref.html#distutils.cmd.Command.sub_commands
+# seems like this doesn't work on RTD, see below for build_py hack.
build.sub_commands.append(('build_api', None))
build.sub_commands.append(('build_usage', None))
+
+class build_py_custom(build_py):
+ """override build_py to also build our stuf
+
+ it is unclear why this is necessary, but in some environments
+ (Readthedocs.org, specifically), the above
+ ``build.sub_commands.append()`` doesn't seem to have an effect:
+ our custom build commands seem to be ignored when running
+ ``setup.py install``.
+
+ This class overrides the ``build_py`` target by forcing it to run
+ our custom steps as well.
+
+ See also the `bug report on RTD
+ <https://github.com/rtfd/readthedocs.org/issues/1740>`_.
+ """
+ def run(self):
+ super().run()
+ self.announce('calling custom build steps', level=log.INFO)
+ self.run_command('build_api')
+ self.run_command('build_usage')
+
+
cmdclass = {
'build_ext': build_ext,
'build_api': build_api,
'build_usage': build_usage,
+ 'build_py': build_py_custom,
'sdist': Sdist
}