update/include Queen Mary Vamp plugin set
[ardour.git] / libs / qm-dsp / wscript
1 #!/usr/bin/env python
2 from waflib.extras import autowaf as autowaf
3 import os
4
5 # Version of this package (even if built as a child)
6 QM_DSP_VERSION = '0.0.0'
7
8 # Library version (UNIX style major, minor, micro)
9 # major increment <=> incompatible changes
10 # minor increment <=> compatible changes (additions)
11 # micro increment <=> no interface changes
12 QM_DSP_LIB_VERSION = '0.0.0'
13
14 # Variables for 'waf dist'
15 APPNAME = 'qm-dsp'
16 VERSION = QM_DSP_VERSION
17
18 # Mandatory variables
19 top = '.'
20 out = 'build'
21
22 def options(opt):
23     autowaf.set_options(opt)
24
25 def configure(conf):
26     if conf.is_defined('USE_EXTERNAL_LIBS'):
27         conf.check_cxx(header_name="base/Pitch.h", mandatory=True)
28         conf.check_cxx(lib="qm-dsp", uselib_store="QMDSP", mandatory=True)
29     else:
30         conf.load('compiler_cxx')
31         autowaf.configure(conf)
32
33 def build(bld):
34     if bld.is_defined('USE_EXTERNAL_LIBS'):
35         return
36
37     # Host Library
38     obj = bld(features = 'c cxx cxxshlib')
39     obj.source = '''
40             base/Pitch.cpp
41             base/KaiserWindow.cpp
42             base/SincWindow.cpp
43             dsp/chromagram/Chromagram.cpp
44             dsp/chromagram/ConstantQ.cpp
45             dsp/keydetection/GetKeyMode.cpp
46             dsp/mfcc/MFCC.cpp
47             dsp/onsets/DetectionFunction.cpp
48             dsp/onsets/PeakPicking.cpp
49             dsp/phasevocoder/PhaseVocoder.cpp
50             dsp/rateconversion/Decimator.cpp
51             dsp/rateconversion/DecimatorB.cpp
52             dsp/rateconversion/Resampler.cpp
53             dsp/rhythm/BeatSpectrum.cpp
54             dsp/segmentation/cluster_melt.c
55             dsp/segmentation/ClusterMeltSegmenter.cpp
56             dsp/segmentation/cluster_segmenter.c
57             dsp/segmentation/Segmenter.cpp
58             dsp/signalconditioning/DFProcess.cpp
59             dsp/signalconditioning/Filter.cpp
60             dsp/signalconditioning/FiltFilt.cpp
61             dsp/signalconditioning/Framer.cpp
62             dsp/tempotracking/DownBeat.cpp
63             dsp/tempotracking/TempoTrack.cpp
64             dsp/tempotracking/TempoTrackV2.cpp
65             dsp/tonal/ChangeDetectionFunction.cpp
66             dsp/tonal/TCSgram.cpp
67             dsp/tonal/TonalEstimator.cpp
68             dsp/transforms/FFT.cpp
69             dsp/wavelet/Wavelet.cpp
70             hmm/hmm.c
71             maths/Correlation.cpp
72             maths/CosineDistance.cpp
73             maths/KLDivergence.cpp
74             maths/MathUtilities.cpp
75             maths/pca/pca.c
76             thread/Thread.cpp
77             ext/kissfft/kiss_fft.c
78             ext/kissfft/tools/kiss_fftr.c
79     '''
80     autowaf.ensure_visible_symbols (obj, True)
81     obj.export_includes = ['.']
82     obj.includes     = ['.', 'include/', 'ext/kissfft', 'ext/kissfft/tools/']
83     obj.defines      = ['kiss_fft_scalar=double']
84     obj.name         = 'libqm-dsp'
85     obj.target       = 'qm-dsp'
86     obj.vnum         = QM_DSP_VERSION
87     obj.install_path = bld.env['LIBDIR']
88     if bld.env['build_target'] != 'mingw':
89         obj.cxxflags = [ '-fPIC' ]
90         obj.cflags   = [ '-fPIC' ]
91
92 def shutdown():
93     autowaf.shutdown()