From 52c02ceda3c6430a2f4bbb3f9054180699baaa93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Borgstr=C3=B6m?= Date: Sat, 20 Aug 2011 18:11:23 +0200 Subject: [PATCH] Include Cython output in sdist --- setup.py | 34 ++++++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/setup.py b/setup.py index a91cbbaee..9e3a82d8a 100644 --- a/setup.py +++ b/setup.py @@ -1,10 +1,35 @@ # -*- encoding: utf-8 *-* #!/usr/bin/env python +import os import sys +from glob import glob from setuptools import setup, Extension -from Cython.Distutils import build_ext +from setuptools.command.sdist import sdist +hashindex_sources = ['darc/hashindex.pyx', 'darc/_hashindex.c'] -dependencies = ['pycrypto', 'msgpack-python', 'pbkdf2.py', 'xattr', 'paramiko', 'Pyrex', 'Cython'] +try: + from Cython.Distutils import build_ext + import Cython.Compiler.Main as cython_compiler + class Sdist(sdist): + def __init__(self, *args, **kwargs): + for src in glob('darc/*.pyx'): + print 'src', src + cython_compiler.compile(glob('darc/*.pyx'), + cython_compiler.default_options) + sdist.__init__(self, *args, **kwargs) + + def run(self): + sdist.run(self) + self.filelist.append('darc/hashindex.c', 'darc/hashindex.h') + +except ImportError: + hashindex_sources[0] = hashindex_sources[0].replace('.pyx', '.c') + from setuptools.command.build_ext import build_ext + Sdist = sdist + if not os.path.exists('darc/hashindex.c'): + raise ImportError('The GIT version of darc needs Cython. Install Cython or use a released version') + +dependencies = ['pycrypto', 'msgpack-python', 'pbkdf2.py', 'xattr', 'paramiko'] if sys.version_info < (2, 7): dependencies.append('argparse') @@ -13,11 +38,12 @@ setup(name='darc', version='0.1', author='Jonas Borgström', author_email='jonas@borgstrom.se', + url='http://github.com/jborg/darc/', packages=['darc'], - cmdclass = {'build_ext': build_ext}, + cmdclass = {'build_ext': build_ext, 'sdist': Sdist}, ext_modules=[ Extension('darc._speedups', ['darc/_speedups.c']), - Extension('darc.hashindex', ['darc/hashindex.pyx', 'darc/_hashindex.c'])], + Extension('darc.hashindex', hashindex_sources)], install_requires=dependencies, entry_points = { 'console_scripts': [