c1ff717d1094d2e98de86f2df4455b576a494ddf
[ardour.git] / libs / backends / wavesaudio / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 import os
4 import sys
5 import re
6
7 # Library version (UNIX style major, minor, micro)
8 # major increment <=> incompatible changes
9 # minor increment <=> compatible changes (additions)
10 # micro increment <=> no interface changes
11 WAVESAUDIOBACKEND_VERSION = '0.0.1'
12 I18N_PACKAGE = 'wavesaudio-backend'
13
14 # Mandatory variables
15 top = '.'
16 out = 'build'
17
18 def options(opt):
19     autowaf.set_options(opt)
20
21 def configure(conf):
22     if conf.options.dist_target == 'mingw':
23         autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO',
24                           atleast_version='19')
25     autowaf.configure(conf)
26
27 def build(bld):
28
29     if bld.env['build_target'] == 'mingw':
30         obj = bld(features = 'cxx cxxshlib')
31     else:
32         obj = bld(features = 'c cxx cxxshlib')
33     
34     if sys.platform == 'darwin':
35         if bld.env['build_target'] not in [ 'lion' ]:
36             obj.framework = 'CoreMidi'
37         else:
38             obj.framework = 'CoreMIDI'
39
40     obj.source = [
41             'waves_audiobackend.cc',
42             'waves_audiobackend.latency.cc',
43             'waves_audiobackend.midi.cc',
44             'waves_audiobackend.port_engine.cc',
45             'waves_dataport.cc',
46             'waves_audioport.cc',
47             'waves_midiport.cc',
48             'waves_midi_device_manager.cc',
49             'waves_midi_device.cc',
50             'waves_midi_event.cc',
51             'waves_midi_buffer.cc',
52             'wavesapi/refmanager/WCRefManager.cpp',
53             'wavesapi/devicemanager/WCMRAudioDeviceManager.cpp',
54             'wavesapi/devicemanager/WCMRNativeAudio.cpp',
55             'wavesapi/threads/WCThreadSafe.cpp',
56             'portmidi/src/pm_common/pmutil.c',
57             'portmidi/src/pm_common/portmidi.c'
58             ]
59
60     if bld.env['build_target'] == 'mingw':
61         platform_dependent = [
62                         'wavesapi/miscutils/UMicroseconds.cpp',
63                         'wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp',
64                         'portmidi/src/pm_win/pmwin.c',
65                         'portmidi/src/pm_win/pmwinmm.c',
66                         'portmidi/src/porttime/ptwinmm.c'
67                         ]
68     else:
69             platform_dependent = [
70                 'wavesapi/devicemanager/WCMRCoreAudioDeviceManager.cpp',
71                 'portmidi/src/pm_mac/pmmac.c',
72                 'portmidi/src/pm_mac/pmmacosxcm.c',
73                 'portmidi/src/pm_mac/finddefault.c',
74                 'portmidi/src/pm_mac/readbinaryplist.c',
75                 'portmidi/src/porttime/ptmacosx_mach.c'
76             ]
77
78     obj.source.extend(platform_dependent)
79
80     obj.includes = ['.',
81            'wavesapi',
82            'wavesapi/refmanager',
83            'wavesapi/wavespublicapi',
84            'wavesapi/devicemanager',
85            'wavesapi/miscutils',
86            'wavesapi/threads',
87            'portmidi',
88            'portmidi/src/pm_common'
89             ]
90
91     obj.cxxflags = [ '-fPIC' ]
92     obj.cflags   = [ '-fPIC', '-fms-extensions' ]
93     obj.name     = 'waves_audiobackend'
94     obj.target   = 'waves_audiobackend'
95     obj.use      = 'libardour libpbd'
96     if bld.env['build_target'] == 'mingw':
97             obj.uselib   = ['PORTAUDIO']
98     obj.vnum     = WAVESAUDIOBACKEND_VERSION
99     obj.install_path  = os.path.join(bld.env['LIBDIR'], 'backends')
100
101     if bld.env['build_target']== 'mingw':
102         obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
103                 'ARDOURBACKEND_DLL_EXPORTS'
104                 ]
105     else:
106         obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
107                 'ARDOURBACKEND_DLL_EXPORTS'
108                 ]