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