except ImportError:
from distutils.core import setup, Extension
from distutils.core import Distribution
+import commands
dulwich_version_string = '0.7.0'
include_dirs.append('dulwich')
+def pkgconfig(*packages, **kw):
+ flag_map = {'-I': 'include_dirs', '-L': 'library_dirs', '-l': 'libraries'}
+ (exitstatus, text) = commands.getstatusoutput("pkg-config --libs --cflags %s" % ' '.join(packages))
+ if exitstatus != 0:
+ raise Exception("Unable to find %s" % " ".join(packages))
+ for token in text.split():
+ kw.setdefault(flag_map.get(token[:2]), []).append(token[2:])
+ assert isinstance(kw, dict)
+ return kw
+
+
class DulwichDistribution(Distribution):
def is_pure(self):
pure = False
-
+
setup(name='dulwich',
description='Pure-Python Git Library',
keywords='git',
packages=['dulwich', 'dulwich.tests'],
scripts=['bin/dulwich', 'bin/dul-daemon', 'bin/dul-web'],
ext_modules = [
+ Extension('dulwich._index', ['dulwich/_index.c'],
+ **pkgconfig("libgit2", include_dirs=include_dirs)),
Extension('dulwich._objects', ['dulwich/_objects.c'],
- include_dirs=include_dirs),
+ **pkgconfig("libgit2", include_dirs=include_dirs)),
Extension('dulwich._pack', ['dulwich/_pack.c'],
- include_dirs=include_dirs),
+ **pkgconfig("libgit2", include_dirs=include_dirs)),
],
distclass=DulwichDistribution,
)