summaryrefslogtreecommitdiff
path: root/setup.py
diff options
context:
space:
mode:
Diffstat (limited to 'setup.py')
-rw-r--r--setup.py42
1 files changed, 40 insertions, 2 deletions
diff --git a/setup.py b/setup.py
index 660054e..44aa32a 100644
--- a/setup.py
+++ b/setup.py
@@ -1,10 +1,47 @@
-from setuptools import setup, find_packages
+from setuptools import setup, find_packages, Extension, Command
+from distutils.command.build_clib import build_clib as _build_clib
+from distutils import log
+
+from setuptools.command.develop import develop as _develop
+
+class develop(_develop):
+ def install_for_development(self):
+ self.run_command('build_clib')
+ super().install_for_development()
+
+class build_sqlite_ext(_build_clib):
+ def build_libraries(self, libraries):
+ for (lib_name, build_info) in libraries:
+ sources = build_info.get('sources')
+ if sources is None or not isinstance(sources, (list, tuple)):
+ raise DistutilsSetupError(
+ "in 'libraries' option (library '%s'), "
+ "'sources' must be present and must be "
+ "a list of source filenames" % lib_name)
+ sources = list(sources)
+
+ log.info("building '%s' library", lib_name)
+
+ macros = build_info.get('macros')
+ include_dirs = build_info.get('include_dirs')
+ objects = self.compiler.compile(sources,
+ output_dir=self.build_temp,
+ macros=macros,
+ include_dirs=include_dirs,
+ debug=self.debug)
+
+ self.compiler.link_shared_object(objects, lib_name,
+ output_dir=self.build_clib,
+ debug=self.debug)
setup(
name='archivist',
version='0.1',
- py_modules=find_packages(),
+ packages=find_packages(),
include_package_data=True,
+ cmdclass={'build_clib': build_sqlite_ext, 'develop': develop},
+ libraries=[('closure', {'sources': ['closure.c']})],
+ package_data={'archivist' : ['sqlext/*']},
install_requires=[
'Click',
'peewee'
@@ -13,4 +50,5 @@ setup(
[console_scripts]
archivist=archivist.cli:cli
''',
+ zip_safe = False
)