summaryrefslogtreecommitdiff
path: root/libs/fluidsynth/wscript
blob: 849c31f301f1b942f8bb9f8240c847b0035e61ed (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
from waflib import TaskGen
import os
import sys

# Version of this package (even if built as a child)
MAJOR = '1'
MINOR = '1'
MICRO = '6'
LIBFLUIDSYNTH_VERSION = "%s.%s.%s" % (MAJOR, MINOR, MICRO)

# Variables for 'waf dist'
APPNAME = 'libltc'
VERSION = LIBFLUIDSYNTH_VERSION
I18N_PACKAGE = 'libfluidsynth'

# Mandatory variables
top = '.'
out = 'build'

def options(opt):
    autowaf.set_options(opt)

def configure(conf):
    if conf.is_defined('USE_EXTERNAL_LIBS'):
        autowaf.check_pkg(conf, 'fluidsynth', uselib_store='LIBFLUIDSYNTH', atleast_version=LIBFLUIDSYNTH_VERSION, mandatory=True)
    else:
        conf.load('compiler_c')
        autowaf.configure(conf)

def build(bld):
    if bld.is_defined('USE_EXTERNAL_LIBS'):
        return
    bld (export_includes = ['fluidsynth'],
         name = 'libfluidsynth_includes'
         )
    obj = bld.stlib (source = [
        'src/fluid_midi.c',
        'src/fluid_adsr_env.c',
        'src/fluid_chorus.c',
        'src/fluid_iir_filter.c',
        'src/fluid_lfo.c',
        'src/fluid_rev.c',
        'src/fluid_rvoice.c',
        'src/fluid_rvoice_dsp.c',
        'src/fluid_rvoice_event.c',
        'src/fluid_rvoice_mixer.c',
        'src/fluid_defsfont.c',
        'src/fluid_chan.c',
        'src/fluid_event.c',
        'src/fluid_gen.c',
        'src/fluid_mod.c',
        'src/fluid_synth.c',
        'src/fluid_tuning.c',
        'src/fluid_voice.c',
        'src/fluid_conv.c',
        'src/fluid_hash.c',
        'src/fluid_list.c',
        'src/fluid_ringbuffer.c',
        'src/fluid_settings.c',
        'src/fluid_sys.c'
        ],
        cflags = [ '-fPIC', '-fvisibility=hidden' ],
        includes = ['.', 'src/' ],
               target = 'libfluidsynth',
               use    = 'libfluidsynth_includes',
               uselib = 'GLIB',
               defines = [ 'HAVE_CONFIG_H', 'DEFAULT_SOUNDFONT=""' ]
               )

    # wine-gcc hacks:
    # defining __MINGW32__ for wine-gcc is a workaround for fluidsynth's include
    # strategy (which is made for mingw or windows) without it
    # winsock2.h will complain about undeclared "u_short"
    # we also need to explicitly define  _WIN32
    if bld.is_defined('WINDOWS_VST_SUPPORT') and not bld.env['build_target'] == 'mingw':
        obj.defines += [ '_WIN32', '__MINGW32__' ]

def shutdown():
    autowaf.shutdown()