summaryrefslogtreecommitdiff
path: root/setup.py
blob: 6f2bf1110714a81001abf95ab0cd3d6b486750a1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
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

import sys
if sys.version_info < (3,6):
    sys.exit('Sorry, Python < 3.6 is not supported')

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',
    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>=6.6',
        'peewee>=2.10.0',
        'python-magic>=0.4'
    ],
    entry_points='''
        [console_scripts]
        archivist=archivist.cli:cli
    ''',
    zip_safe = False
)