1#!/usr/bin/env python
2# -*- coding: utf-8 -*-
3
4import os
5import sys
6
7from distutils.command.build_scripts import build_scripts
8from distutils import util, log
9
10try:
11    from setuptools import setup, Extension
12    args = {
13        'test_suite': 'test',
14        'zip_safe': False,
15    }
16except ImportError:
17    from distutils.core import setup, Extension
18    args = {}
19
20from Cython.Distutils import build_ext
21
22
23class build_scripts_rename(build_scripts):
24    def copy_scripts(self):
25        build_scripts.copy_scripts(self)
26        # remove the .py extension from scripts
27        for s in self.scripts:
28            f = util.convert_path(s)
29            before = os.path.join(self.build_dir, os.path.basename(f))
30            after = os.path.splitext(before)[0]
31            log.info("renaming %s -> %s" % (before, after))
32            os.rename(before, after)
33
34
35cmdclass = {
36    'build_scripts': build_scripts_rename,
37    'build_ext': build_ext,
38}
39
40ext_modules = [
41    Extension(
42        'liblo',
43        ['src/liblo.pyx'],
44        extra_compile_args = [
45            '-fno-strict-aliasing',
46            '-Werror-implicit-function-declaration',
47            '-Wfatal-errors',
48        ],
49        libraries = ['lo'],
50    )
51]
52
53
54setup(
55    name = 'pyliblo',
56    version = '0.10.0',
57    author = 'Dominic Sacré',
58    author_email = 'dominic.sacre@gmx.de',
59    url = 'http://das.nasophon.de/pyliblo/',
60    description = 'Python bindings for the liblo OSC library',
61    license = 'LGPL',
62    scripts = [
63        'scripts/send_osc.py',
64        'scripts/dump_osc.py',
65    ],
66    data_files = [
67        ('share/man/man1', [
68            'scripts/send_osc.1',
69            'scripts/dump_osc.1',
70        ]),
71    ],
72    cmdclass = cmdclass,
73    ext_modules = ext_modules,
74    **args
75)
76