setup.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #!/usr/bin/python
  2. # Setup file for bzr-git
  3. # Copyright (C) 2008-2009 Jelmer Vernooij <jelmer@samba.org>
  4. try:
  5. from setuptools import setup, Extension
  6. except ImportError:
  7. from distutils.core import setup, Extension
  8. from distutils.core import Distribution
  9. dulwich_version_string = '0.5.0'
  10. include_dirs = []
  11. # Windows MSVC support
  12. import sys
  13. if sys.platform == 'win32':
  14. include_dirs.append('dulwich')
  15. ext_modules = [
  16. Extension('dulwich._objects', ['dulwich/_objects.c'],
  17. include_dirs=include_dirs),
  18. Extension('dulwich._pack', ['dulwich/_pack.c'],
  19. include_dirs=include_dirs),
  20. ]
  21. try:
  22. from setuptools import Feature
  23. except ImportError:
  24. speedups = None
  25. mandatory_ext_modules = ext_modules
  26. else:
  27. mandatory_ext_modules = []
  28. speedups = Feature(
  29. "optional C speed-enhancements",
  30. standard = True,
  31. ext_modules=ext_modules,
  32. )
  33. class dulwichDistribution(Distribution):
  34. def is_pure(self):
  35. if self.pure:
  36. return True
  37. def has_ext_modules(self):
  38. if self.pure:
  39. return False
  40. dulwichDistribution.pure = 0
  41. dulwichDistribution.global_options.append(('pure', None, "use pure (slow) Python "
  42. "code instead of C extensions"))
  43. setup(name='dulwich',
  44. description='Pure-Python Git Library',
  45. keywords='git',
  46. version=dulwich_version_string,
  47. url='http://samba.org/~jelmer/dulwich',
  48. download_url='http://samba.org/~jelmer/dulwich/dulwich-%s.tar.gz' % dulwich_version_string,
  49. license='GPLv2 or later',
  50. author='Jelmer Vernooij',
  51. author_email='jelmer@samba.org',
  52. long_description="""
  53. Simple Pure-Python implementation of the Git file formats and
  54. protocols. Dulwich is the place where Mr. and Mrs. Git live
  55. in one of the Monty Python sketches.
  56. """,
  57. packages=['dulwich', 'dulwich.tests'],
  58. scripts=['bin/dulwich', 'bin/dul-daemon', 'bin/dul-web'],
  59. features = {'speedups': speedups},
  60. ext_modules = mandatory_ext_modules,
  61. distclass=dulwichDistribution,
  62. )