#include "ardour/stretch.h"
#ifdef USE_RUBBERBAND
-#include "rubberband/RubberBandStretcher.h"
+#include <rubberband/RubberBandStretcher.h>
using namespace RubberBand;
#endif
#include "region_selection.h"
#ifdef USE_RUBBERBAND
-#include "rubberband/RubberBandStretcher.h"
+#include <rubberband/RubberBandStretcher.h>
using namespace RubberBand;
#endif
obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
obj.use = [ 'libpbd',
'libmidipp',
- 'libtaglib',
'ardour',
'libardour_cp',
- 'libgtkmm2ext',
- 'libtaglib' ]
+ 'libgtkmm2ext']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ obj.uselib += ' TAGLIB'
+ else:
+ obj.use.append('libtaglib')
if sys.platform == 'darwin':
obj.use += ' libappleutility'
obj.defines = [
#include <ostream>
#include <fstream>
#include <boost/utility.hpp>
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
#include "ardour/types.h"
namespace ARDOUR {
#include <string>
-#include "taglib/tag.h"
-#include "taglib/taglib.h"
-#include "taglib/xiphcomment.h"
+#include <taglib/tag.h>
+#include <taglib/taglib.h>
+#include <taglib/xiphcomment.h>
namespace ARDOUR
{
#include <glibmm/threads.h>
+#include <ltc.h>
+
#include "pbd/error.h"
#include "pbd/event_loop.h"
#include "pbd/rcu.h"
#include "midi++/types.h"
#include "timecode/time.h"
-#include "ltc/ltc.h"
#include "ardour/ardour.h"
#include "ardour/chan_count.h"
#include <glibmm/threads.h>
#include <jack/jack.h>
+#include <ltc.h>
#include "pbd/signals.h"
#include "timecode/time.h"
-#include "ltc/ltc.h"
#include "ardour/types.h"
#include "midi++/parser.h"
#include <cstring>
-#include "vamp-hostsdk/PluginLoader.h"
+#include <vamp-hostsdk/PluginLoader.h>
#include <glibmm/miscutils.h>
#include <glibmm/fileutils.h>
#include "pbd/convert.h"
-#include "taglib/fileref.h"
-#include "taglib/flacfile.h"
-#include "taglib/oggfile.h"
-#include "taglib/tag.h"
-#include "taglib/taglib.h"
-#include "taglib/xiphcomment.h"
+#include <taglib/fileref.h>
+#include <taglib/flacfile.h>
+#include <taglib/oggfile.h>
+#include <taglib/tag.h>
+#include <taglib/taglib.h>
+#include <taglib/xiphcomment.h>
/* Convert string to TagLib::String */
#define TL_STR(string) TagLib::String ((string).c_str(), TagLib::String::UTF8)
#include <algorithm>
#include <cmath>
+#include <rubberband/RubberBandStretcher.h>
+
#include "pbd/error.h"
-#include "rubberband/RubberBandStretcher.h"
#include "ardour/audioregion.h"
#include "ardour/audiosource.h"
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID',
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS',
'OSX','BOOST','CURL','DL']
- obj.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
+ obj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
'libaudiographer','libltc','libtimecode']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ obj.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
+ 'VAMPHOSTSDK'])
+ else:
+ obj.use.extend(['libltc', 'librubberband', 'libtaglib', 'libvamphost'])
+
obj.vnum = LIBARDOUR_LIB_VERSION
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
obj.defines = [
'test/test_common.cc', 'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc']
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO']
- testcommon.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer','libltc','ardour']
+ testcommon.use = ['libpbd','libmidipp','libevoral',
+ 'libvampplugin','libaudiographer','ardour']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ testcommon.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
+ 'VAMPHOSTSDK'])
+ else:
+ testcommon.use.extend(['libltc', 'librubberband', 'libtaglib', 'libvamphost'])
testcommon.defines = [
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
testobj.source = sources
testobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO']
- testobj.use = ['libpbd','libmidipp','libevoral','libvamphost',
- 'libvampplugin','libtaglib','librubberband',
- 'libaudiographer','libltc','ardour','testcommon']
+ testobj.use = ['libpbd','libmidipp','libevoral','libvampplugin',
+ 'libaudiographer','ardour','testcommon']
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ testcommon.uselib.extend(['RUBBERBAND', 'TAGLIB', 'LIBLTC', 'VAMPSDK',
+ 'VAMPHOSTSDK'])
+ else:
+ testcommon.use.extend(['libltc', 'librubberband', 'libtaglib',
+ 'libvamphost'])
+
testobj.name = name
testobj.target = target
# not sure about install path
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_c')
- autowaf.configure(conf)
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'ltc', uselib_store='LIBLTC', atleast_version=LIBLTC_LIB_VERSION, mandatory=True)
+ else:
+ conf.load('compiler_c')
+ autowaf.configure(conf)
def build(bld):
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
obj = bld(features = 'c cshlib')
obj.source = '''
ltc.c
decoder.c
'''
- obj.export_includes = ['.']
+ obj.export_includes = ['./ltc']
obj.includes = ['.']
obj.name = 'libltc'
obj.target = 'ltc'
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'rubberband', uselib_store='RUBBERBAND', atleast_version='1.0', mandatory=True)
+ else:
+ conf.load('compiler_cxx')
+ autowaf.configure(conf)
def build(bld):
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
+
# Library
obj = bld(features = 'cxx cxxshlib')
prefix = 'libs/rubberband/'
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'taglib', uselib_store='TAGLIB', atleast_version="1.4", mandatory=True)
+ else:
+ conf.load('compiler_cxx')
+ autowaf.configure(conf)
def build(bld):
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
+
# Library
obj = bld(features = 'cxx cxxshlib')
sources = bld.path.ant_glob('taglib/*.cpp')
#ifndef _AMPLITUDE_FOLLOWER_PLUGIN_H_
#define _AMPLITUDE_FOLLOWER_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin implementing the SuperCollider amplitude follower
#ifndef _ONSET_PLUGIN_H_
#define _ONSET_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
#include <aubio/aubio.h>
class Onset : public Vamp::Plugin
#ifndef _ONSET_DETECT_PLUGIN_H_
#define _ONSET_DETECT_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
class OnsetDetectorData;
#ifndef _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
#define _PERCUSSION_ONSET_DETECTOR_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that detects percussive events.
#ifndef _SPECTRAL_CENTROID_PLUGIN_H_
#define _SPECTRAL_CENTROID_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that calculates the centre of gravity of the
#ifndef _ZERO_CROSSING_PLUGIN_H_
#define _ZERO_CROSSING_PLUGIN_H_
-#include "vamp-sdk/Plugin.h"
+#include <vamp-sdk/Plugin.h>
/**
* Example plugin that calculates the positions and density of
#include "libvampplugins-config.h"
#endif
-#include "vamp/vamp.h"
-#include "vamp-sdk/PluginAdapter.h"
+#include <vamp/vamp.h>
+#include <vamp-sdk/PluginAdapter.h>
#include "ZeroCrossing.h"
#include "SpectralCentroid.h"
autowaf.set_options(opt)
def configure(conf):
- conf.load('compiler_cxx')
- autowaf.configure(conf)
- autowaf.check_pkg(conf, 'fftw3', uselib_store='FFTW3', mandatory=True)
- autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
- conf.env.append_value('CXXFLAGS', '-DHAVE_FFTW3')
+ if conf.is_defined('USE_EXTERNAL_LIBS'):
+ autowaf.check_pkg(conf, 'vamp-sdk', uselib_store='VAMPSDK', mandatory=True)
+ autowaf.check_pkg(conf, 'vamp-hostsdk', uselib_store='VAMPHOSTSDK', mandatory=True)
+ else:
+ conf.load('compiler_cxx')
+ autowaf.configure(conf)
+ autowaf.check_pkg(conf, 'fftw3', uselib_store='FFTW3', mandatory=True)
+ autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True)
+ conf.env.append_value('CXXFLAGS', '-DHAVE_FFTW3')
def build(bld):
+ if bld.is_defined('USE_EXTERNAL_LIBS'):
+ return
# Host Library
obj = bld(features = 'cxx cxxshlib')
obj.source = '''
help='Build internal libs as shared libraries')
opt.add_option('--internal-static-libs', action='store_false', dest='internal_shared_libs',
help='Build internal libs as static libraries')
+ opt.add_option('--use-external-libs', action='store_true', default=False, dest='use_external_libs',
+ help='Use external/system versions of some bundled libraries')
opt.add_option('--lv2', action='store_true', default=True, dest='lv2',
help='Compile with support for LV2 (if Lilv+Suil is available)')
opt.add_option('--no-lv2', action='store_false', dest='lv2',
if Options.options.internal_shared_libs:
conf.define('INTERNAL_SHARED_LIBS', 1)
+ if Options.options.use_external_libs:
+ conf.define('USE_EXTERNAL_LIBS', 1)
+
if Options.options.boost_include != '':
conf.env.append_value('CXXFLAGS', '-I' + Options.options.boost_include)
write_config_text('Install prefix', conf.env['PREFIX'])
write_config_text('Strict compiler flags', conf.env['STRICT'])
write_config_text('Internal Shared Libraries', conf.is_defined('INTERNAL_SHARED_LIBS'))
+ write_config_text('Use External Libraries', conf.is_defined('USE_EXTERNAL_LIBS'))
write_config_text('Architecture flags', opts.arch)
write_config_text('Aubio', conf.is_defined('HAVE_AUBIO'))
# add directories that contain only headers, to workaround an issue with waf
bld.path.find_dir ('libs/evoral/evoral')
- bld.path.find_dir ('libs/vamp-sdk/vamp-sdk')
+ if not bld.is_defined('USE_EXTERNAL_LIBS'):
+ bld.path.find_dir ('libs/vamp-sdk/vamp-sdk')
bld.path.find_dir ('libs/surfaces/control_protocol/control_protocol')
bld.path.find_dir ('libs/timecode/timecode')
- bld.path.find_dir ('libs/libltc/ltc')
- bld.path.find_dir ('libs/rubberband/rubberband')
+ if not bld.is_defined('USE_EXTERNAL_LIBS'):
+ bld.path.find_dir ('libs/libltc/ltc')
+ bld.path.find_dir ('libs/rubberband/rubberband')
bld.path.find_dir ('libs/gtkmm2ext/gtkmm2ext')
bld.path.find_dir ('libs/ardour/ardour')
- bld.path.find_dir ('libs/taglib/taglib')
+ if not bld.is_defined('USE_EXTERNAL_LIBS'):
+ bld.path.find_dir ('libs/taglib/taglib')
bld.path.find_dir ('libs/pbd/pbd')
autowaf.set_recursive()