89fe65b7a015616809de37ebff1579ca59cc4f98
[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 I18N_PACKAGE = 'wavesaudio-backend'
8
9 # Mandatory variables
10 top = '.'
11 out = 'build'
12
13 def options(opt):
14     autowaf.set_options(opt)
15
16 def configure(conf):
17     if conf.options.dist_target == 'mingw':
18         autowaf.check_pkg(conf, 'portaudio-2.0', uselib_store='PORTAUDIO',
19                           atleast_version='19')
20     autowaf.configure(conf)
21
22 def build(bld):
23
24     if bld.env['build_target'] == 'mingw':
25         obj = bld(features = 'cxx cxxshlib')
26     else:
27         obj = bld(features = 'c cxx cxxshlib')
28
29     if sys.platform == 'darwin':
30         if bld.env['build_target'] not in [ 'lion' ]:
31             obj.framework = 'CoreMidi'
32         else:
33             obj.framework = 'CoreMIDI'
34
35     obj.source = [
36             'waves_audiobackend.cc',
37             'waves_audiobackend.latency.cc',
38             'waves_audiobackend.midi.cc',
39             'waves_audiobackend.port_engine.cc',
40             'waves_dataport.cc',
41             'waves_audioport.cc',
42             'waves_midiport.cc',
43             'waves_midi_device_manager.cc',
44             'waves_midi_device.cc',
45             'waves_midi_event.cc',
46             'waves_midi_buffer.cc',
47             'wavesapi/refmanager/WCRefManager.cpp',
48             'wavesapi/devicemanager/WCMRAudioDeviceManager.cpp',
49             'wavesapi/devicemanager/WCMRNativeAudio.cpp',
50             'wavesapi/Threads/WCThreadSafe.cpp',
51             'portmidi/src/pm_common/pmutil.c',
52             'portmidi/src/pm_common/portmidi.c'
53             ]
54
55     if bld.env['build_target'] == 'mingw':
56         platform_dependent = [
57                         'wavesapi/MiscUtils/UMicroseconds.cpp',
58                         'wavesapi/devicemanager/WCMRPortAudioDeviceManager.cpp',
59                         'portmidi/src/pm_win/pmwin.c',
60                         'portmidi/src/pm_win/pmwinmm.c',
61                         'portmidi/src/porttime/ptwinmm.c'
62                         ]
63     else:
64             platform_dependent = [
65                 'wavesapi/devicemanager/WCMRCoreAudioDeviceManager.cpp',
66                 'portmidi/src/pm_mac/pmmac.c',
67                 'portmidi/src/pm_mac/pmmacosxcm.c',
68                 'portmidi/src/pm_mac/finddefault.c',
69                 'portmidi/src/pm_mac/readbinaryplist.c',
70                 'portmidi/src/porttime/ptmacosx_mach.c'
71             ]
72
73     obj.source.extend(platform_dependent)
74
75     obj.includes = ['.',
76            'wavesapi',
77            'wavesapi/refmanager',
78            'wavesapi/WavesPublicAPI',
79            'wavesapi/devicemanager',
80            'wavesapi/MiscUtils',
81            'wavesapi/Threads',
82            'portmidi',
83            'portmidi/src/pm_common'
84             ]
85
86     obj.name     = 'waves_audiobackend'
87     obj.target   = 'waves_audiobackend'
88     obj.use      = 'libardour libpbd'
89     if bld.env['build_target'] == 'mingw':
90         obj.uselib   = ['PORTAUDIO']
91         obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ]
92         obj.cflags   = [ bld.env['compiler_flags_dict']['pic'], bld.env['compiler_flags_dict']['c-anonymous-union'] ]
93     else:
94         obj.cflags   = [ bld.env['compiler_flags_dict']['c-anonymous-union'] ]
95     obj.install_path  = os.path.join(bld.env['LIBDIR'], 'backends')
96
97     if bld.env['build_target']== 'mingw':
98         obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
99                 'ARDOURBACKEND_DLL_EXPORTS'
100                 ]
101     else:
102         obj.defines = ['PACKAGE="' + I18N_PACKAGE + '"',
103                 'ARDOURBACKEND_DLL_EXPORTS'
104                 ]