diff options
author | Rafael H. Schloming <rhs@apache.org> | 2010-02-15 14:50:07 +0000 |
---|---|---|
committer | Rafael H. Schloming <rhs@apache.org> | 2010-02-15 14:50:07 +0000 |
commit | 67d6c3d02681c43559d280a4731754fbbe5767d1 (patch) | |
tree | 839516f797cd2a5c18d814bd92b383ceaaecc303 | |
parent | d92c23f24b1c3609ed006f31281b1358a8b8d4a6 (diff) | |
download | qpid-python-67d6c3d02681c43559d280a4731754fbbe5767d1.tar.gz |
added build_doc to setup.py
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@910226 13f79535-47bb-0310-9956-ffa450edef68
-rwxr-xr-x | qpid/python/setup.py | 66 |
1 files changed, 65 insertions, 1 deletions
diff --git a/qpid/python/setup.py b/qpid/python/setup.py index 445ba704e5..9d7c51a859 100755 --- a/qpid/python/setup.py +++ b/qpid/python/setup.py @@ -19,9 +19,12 @@ # import os, re, sys from distutils.core import setup, Command +from distutils.command.build import build as _build from distutils.command.build_py import build_py as _build_py +from distutils.command.clean import clean as _clean from distutils.command.install_lib import install_lib as _install_lib from distutils.dep_util import newer +from distutils.dir_util import remove_tree from distutils.errors import DistutilsFileError from distutils import log from stat import ST_ATIME, ST_MTIME, ST_MODE, S_IMODE @@ -91,6 +94,64 @@ class preprocessor: return Command.copy_file(self, src, dst, preserve_mode, preserve_times, link, level) +doc_option = [('build-doc', None, 'build directory for documentation')] + +class build(_build): + + user_options = _build.user_options + doc_option + + def initialize_options(self): + _build.initialize_options(self) + self.build_doc = None + + def finalize_options(self): + _build.finalize_options(self) + if self.build_doc is None: + self.build_doc = "%s/doc" % self.build_base + + def get_sub_commands(self): + return _build.get_sub_commands(self) + ["build_doc"] + +class build_doc(Command): + + user_options = doc_option + + def initialize_options(self): + self.build_doc = None + + def finalize_options(self): + self.set_undefined_options('build', ('build_doc', 'build_doc')) + + def run(self): + from epydoc.docbuilder import build_doc_index + from epydoc.docwriter.html import HTMLWriter + + names = ["qpid.messaging"] + doc_index = build_doc_index(names, True, True) + html_writer = HTMLWriter(doc_index) + self.mkpath(self.build_doc) + log.info('epydoc %s to %s' % (", ".join(names), self.build_doc)) + html_writer.write(self.build_doc) + +class clean(_clean): + + user_options = _clean.user_options + doc_option + + def initialize_options(self): + _clean.initialize_options(self) + self.build_doc = None + + def finalize_options(self): + _clean.finalize_options(self) + self.set_undefined_options('build', ('build_doc', 'build_doc')) + + def run(self): + if self.all: + if os.path.exists(self.build_doc): + remove_tree(self.build_doc, dry_run=self.dry_run) + else: + log.debug("%s doesn't exist -- can't clean it", self.build_doc) + _clean.run(self) ann = re.compile(r"([ \t]*)@([_a-zA-Z][_a-zA-Z0-9]*)([ \t\n\r]+def[ \t]+)([_a-zA-Z][_a-zA-Z0-9]*)") line = re.compile(r"\n([ \t]*)[^ \t\n#]+") @@ -169,5 +230,8 @@ setup(name="qpid-python", url="http://qpid.apache.org/", license="Apache Software License", description="Python client implementation for Apache Qpid", - cmdclass={"build_py": build_py, + cmdclass={"build": build, + "build_py": build_py, + "build_doc": build_doc, + "clean": clean, "install_lib": install_lib}) |