3bf634163ae67036acfb5d1902db2e34ababbc94
[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         backends = [ 'jack' ]
15
16     elif Options.options.program_name == 'Mixbus':
17         backends = [ 'jack' ]
18
19     elif Options.options.program_name == 'Tracks':
20         if re.search ("linux", sys.platform) != None:
21             backends = [ 'jack' ]
22         else:
23             backends = [ ]
24
25     else:
26         print ('Unknown product name; backends will not include JACK ', Options.options.program_name)
27
28     if Options.options.build_dummy: 
29         backends += [ 'dummy' ]
30
31     if re.search ("linux", sys.platform) != None:
32         if Options.options.build_alsabackend:
33             backends += [ 'alsa' ]
34
35     if sys.platform == 'darwin' or sys.platform == 'mingw' or sys.platform == 'msvc' or Options.options.dist_target == 'mingw':
36         if Options.options.build_wavesbackend:
37             backends += [ 'wavesaudio' ]
38
39     return backends
40
41 def options(opt):
42     autowaf.set_options(opt)
43
44 def sub_config_and_use(conf, name, has_objects = True):
45     conf.recurse(name)
46     autowaf.set_local_lib(conf, name, has_objects)
47
48 def configure(conf):
49     autowaf.set_recursive()
50     autowaf.configure(conf)
51
52     backends = backend_list()
53     conf.env['BACKENDS'] = backends
54     
55     for i in backends:
56         sub_config_and_use(conf, i)
57
58 def build(bld):
59     backends = bld.env['BACKENDS']
60
61     for i in backends:
62         bld.recurse(i)