use some structured code to decide which backends to build (should have cherry picked...
[ardour.git] / libs / backends / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 from waflib import Options
4 import os
5 import sys
6 import re
7
8 # Mandatory variables
9 top = '.'
10 out = 'build'
11
12 def backend_list():
13     if Options.options.program_name == 'Ardour':
14         # Ardour
15         backends = [ 'jack' ]
16
17         # These will come over from Ardour at some point soon (PD)
18         #if Options.options.build_dummy: 
19         #    backends += [ 'dummy' ]
20
21         #if Options.options.build_alsabackend:
22         #        if re.search ("linux", sys.platform) != None:
23         #            backends += [ 'alsa' ]
24
25     else:
26         # Not Ardour
27         if re.search ("linux", sys.platform) != None:
28             # Can't build this till the ALSA backend is merged because of a dependency (on Linux) on a shared utility library
29             # created for the ALSA backend and JACK.
30             # backends = [ 'jack' ]
31             backends = [ ]
32         else:
33             backends = [ ]
34
35     if sys.platform == 'darwin' or sys.platform == 'mingw' or sys.platform == 'msvc':
36         backends += [ 'wavesaudio' ]
37
38     return backends
39
40 def options(opt):
41     autowaf.set_options(opt)
42
43 def sub_config_and_use(conf, name, has_objects = True):
44     conf.recurse(name)
45     autowaf.set_local_lib(conf, name, has_objects)
46
47 def configure(conf):
48     autowaf.set_recursive()
49     autowaf.configure(conf)
50
51     backends = backend_list()
52
53     for i in backends:
54         sub_config_and_use(conf, i)
55
56 def build(bld):
57     backends = backend_list()
58
59     for i in backends:
60         bld.recurse(i)