Forbid compiling with python 2.x (it's not gonna work).
[calfbox.git] / setup.py
blob21beabb09af3fa60f98462e8e9fcc10a9ba4a902
1 #!/usr/bin/env python3
3 from distutils.core import setup, Extension
4 import glob
5 import os
6 import sys
8 if sys.version_info[0] < 3:
9 raise Exception, "Python 3 required."
11 packages = ['glib-2.0', 'libusb-1.0', 'smf', 'sndfile']
13 if '#define USE_FLUIDSYNTH 1' in open('config.h').read():
14 packages.append('fluidsynth')
15 if '#define USE_JACK 1' in open('config.h').read():
16 packages.append('jack')
18 eargs = os.popen("pkg-config --cflags %s" % (" ".join(packages)), "r").read().split()
19 eargs.append("-std=c99")
20 # Workaround for Python3.4 headers
21 eargs.append("-Wno-error=declaration-after-statement")
23 libs = os.popen("pkg-config --libs %s" % (" ".join(packages)), "r").read().split()
24 libs.append("-luuid")
26 csources = [
27 "app.c",
28 "auxbus.c",
29 "blob.c",
30 "chorus.c",
31 "cmd.c",
32 "compressor.c",
33 "config-api.c",
34 "delay.c",
35 "distortion.c",
36 "dom.c",
37 "eq.c",
38 "engine.c",
39 "errors.c",
40 "fbr.c",
41 "fifo.c",
42 "fluid.c",
43 "fuzz.c",
44 "fxchain.c",
45 "gate.c",
46 "hwcfg.c",
47 "instr.c",
48 "io.c",
49 "jackinput.c",
50 "jackio.c",
51 "layer.c",
52 "master.c",
53 "meter.c",
54 "midi.c",
55 "mididest.c",
56 "module.c",
57 "pattern.c",
58 "pattern-maker.c",
59 "phaser.c",
60 "prefetch_pipe.c",
61 "recsrc.c",
62 "reverb.c",
63 "rt.c",
64 "sampler.c",
65 "sampler_channel.c",
66 "sampler_gen.c",
67 "sampler_layer.c",
68 "sampler_prg.c",
69 "sampler_voice.c",
70 "scene.c",
71 "scripting.c",
72 "seq.c",
73 "seq-adhoc.c",
74 "sfzloader.c",
75 "sfzparser.c",
76 "song.c",
77 "streamplay.c",
78 "streamrec.c",
79 "tarfile.c",
80 "tonectl.c",
81 "tonewheel.c",
82 "track.c",
83 "usbaudio.c",
84 "usbio.c",
85 "usbmidi.c",
86 "usbprobe.c",
87 "wavebank.c"
90 if '#define USE_SSE 1' in open('config.h').read():
91 eargs.append('-msse')
92 eargs.append('-ffast-math')
93 if '#define USE_NEON 1' in open('config.h').read():
94 eargs.append('-mfloat-abi=hard')
95 eargs.append('-mfpu=neon')
96 eargs.append('-ffast-math')
98 setup(name="CalfBox",
99 version="0.04", description="Assorted music-related code",
100 author="Krzysztof Foltman", author_email="wdev@foltman.com",
101 url="http://repo.or.cz/w/calfbox.git",
102 packages=["calfbox"],
103 package_dir={'calfbox':'py'},
104 ext_modules=[
105 Extension('_cbox', csources,
106 extra_compile_args = eargs,
107 include_dirs=['.'],
108 extra_link_args=libs,
109 define_macros=[("_GNU_SOURCE","1"),("_POSIX_C_SOURCE", "199309L"),("USE_PYTHON","1"),("CALFBOX_AS_MODULE", "1")],
110 undef_macros=['NDEBUG'],
111 depends = ['setup.py']