#!/usr/bin/env python from waflib.extras import autowaf as autowaf import os # Version of this package (even if built as a child) LIBARDOURVAMPPLUGINS_VERSION = '0.0.0' # Library version (UNIX style major, minor, micro) # major increment <=> incompatible changes # minor increment <=> compatible changes (additions) # micro increment <=> no interface changes LIBARDOURVAMPPLUGINS_LIB_VERSION = '0.0.0' # Variables for 'waf dist' APPNAME = 'libardourvampplugins' VERSION = LIBARDOURVAMPPLUGINS_VERSION # Mandatory variables top = '.' out = 'build' def options(opt): autowaf.set_options(opt) def configure(conf): conf.load('compiler_cxx') autowaf.configure(conf) autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True) autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', atleast_version='0.3.2') autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO4', atleast_version='0.4.0', mandatory=False) conf.write_config_header('libvampplugins-config.h', remove=False) def build(bld): # Library obj = bld(features = 'cxx cxxshlib') obj.source = ''' plugins.cpp AmplitudeFollower.cpp BarBeatTrack.cpp BeatTrack.cpp ChromagramPlugin.cpp EBUr128.cpp ebu_r128_proc.cc KeyDetect.cpp OnsetDetect.cpp PercussionOnsetDetector.cpp SimilarityPlugin.cpp SpectralCentroid.cpp TonalChangeDetect.cpp Transcription.cpp TruePeak.cpp ZeroCrossing.cpp ''' obj.export_includes = ['.'] obj.includes = ['.'] obj.name = 'libardourvampplugins' obj.target = 'ardourvampplugins' obj.uselib = 'FFTW3F VAMPSDK QMDSP' obj.use = 'libvampplugin libqm-dsp' autowaf.ensure_visible_symbols (obj, True) if bld.is_defined('HAVE_AUBIO4'): obj.source += ' Onset.cpp ' obj.uselib += ' AUBIO4 ' elif bld.is_defined('HAVE_AUBIO'): obj.source += ' Onset.cpp ' obj.uselib += ' AUBIO ' obj.vnum = LIBARDOURVAMPPLUGINS_LIB_VERSION obj.install_path = os.path.join(bld.env['LIBDIR'], 'vamp') def shutdown(): autowaf.shutdown()