wscript: add osx
[vamp-aubio-plugins.git] / wscript
1 #! /usr/bin/env python
2
3 # script to build vamp-aubio-plugin with waf (https://waf.io)
4
5 import sys, os
6
7 local_aubio_include  = 'contrib/aubio-dist/include'
8 local_aubio_lib      = 'contrib/aubio-dist/lib'
9 local_vamp_include   = 'contrib/vamp-plugin-sdk-2.6'
10 local_vamp_lib_i686  = 'contrib/vamp-plugin-sdk-2.6-binaries-i686-linux'
11 local_vamp_lib_amd64 = 'contrib/vamp-plugin-sdk-2.6-binaries-amd64-linux'
12 local_vamp_lib_osx = 'contrib/vamp-plugin-sdk-2.6-binaries-osx'
13
14 def options(opt):
15     opt.load('compiler_cxx')
16
17 def configure(conf):
18     conf.load('compiler_cxx')
19
20     if os.path.isdir(local_aubio_include):
21         conf.env.append_value('CXXFLAGS', '-I../'+local_aubio_include)
22         conf.env.append_value('LINKFLAGS', '-L../'+local_aubio_lib)
23         conf.env.append_value('LINKFLAGS', '-laubio')
24     else:
25         conf.check_cfg (package='aubio', uselib_store='AUBIO',
26                 args=['--cflags', '--libs'], mandatory=True)
27
28     if os.path.isdir(local_vamp_include):
29         conf.env.append_value('CXXFLAGS', '-I../'+local_vamp_include)
30         conf.env.append_value('SHLIB_MARKER', '-lvamp-sdk')
31         if sys.platform.startswith('linux'):
32             if os.path.isdir(local_vamp_lib_amd64):
33                 conf.env.append_value('LINKFLAGS', '-L../'+local_vamp_lib_amd64)
34             if os.path.isdir(local_vamp_lib_i686):
35                 conf.env.append_value('LINKFLAGS', '-L../'+local_vamp_lib_i686)
36         elif sys.platform == 'darwin':
37             if os.path.isdir(local_vamp_lib_osx):
38                 conf.env.append_value('LINKFLAGS', '-L../'+local_vamp_lib_osx)
39         conf.check(lib = 'vamp-sdk', mandatory = False)
40     else:
41         conf.check_cfg (package='vamp-sdk', uselib_store = 'VAMP',
42                 args=['--cflags','--libs'], mandatory=True)
43
44     if sys.platform.startswith('linux'):
45         conf.env['CXXFLAGS'] += ['-Wall', '-Wextra', '-O3', '-msse', '-msse2',
46                 '-mfpmath=sse', '-ftree-vectorize']
47         conf.env.append_value('LINKFLAGS', '-Wl,-z,defs')
48         # add plugin.map
49         conf.env.append_value('LINKFLAGS', '-Wl,--version-script=../vamp-plugin.map')
50
51 def build(bld):
52     # Host Library
53     plugin_sources = bld.path.ant_glob('plugins/*.cpp')
54     plugin_sources += bld.path.ant_glob('*.cpp')
55
56     # rename libvamp-aubio to vamp-plugin binary name
57     if sys.platform.startswith('linux'):
58         bld.env['cxxshlib_PATTERN'] = '%s.so'
59     elif sys.platform.startswith('darwin'):
60         bld.env['cxxshlib_PATTERN'] = '%s.dylib'
61
62     bld.program(source = plugin_sources,
63                includes = '.',
64                target = 'vamp-aubio',
65                name = 'vamp-aubio',
66                use = ['VAMP', 'AUBIO'],
67                features = 'cxx cxxshlib'
68                )
69
70     #for k in bld.env.keys():
71     #    print ("%s : %s", k, bld.env[k] )