Files
ardour/libs/ardour/wscript
Paul Davis 653ae4acd6 universal change in the design of the way Route/Track controls are designed and used. The controls now own their own state, rather than proxy for state in their owners.
Massive changes all over the code to accomodate this. Many things are not finished. Consider this a backup safety commit
2016-05-31 15:30:40 -04:00

648 lines
26 KiB
Python

#!/usr/bin/env python
from waflib.extras import autowaf as autowaf
from waflib import Options
import os
import sys
import re
import subprocess
import sys
# default state file version for this build
CURRENT_SESSION_FILE_VERSION = 3001
I18N_PACKAGE = 'ardour'
# Mandatory variables
top = '.'
out = 'build'
path_prefix = 'libs/ardour/'
libardour_sources = [
'amp.cc',
'analyser.cc',
'analysis_graph.cc',
'async_midi_port.cc',
'audio_backend.cc',
'audio_buffer.cc',
'audio_diskstream.cc',
'audio_library.cc',
'audio_playlist.cc',
'audio_playlist_importer.cc',
'audio_playlist_source.cc',
'audio_port.cc',
'audio_region_importer.cc',
'audio_track.cc',
'audio_track_importer.cc',
'audioanalyser.cc',
'audioengine.cc',
'audiofile_tagger.cc',
'audiofilesource.cc',
'audioregion.cc',
'audiosource.cc',
'auditioner.cc',
'automatable.cc',
'automation.cc',
'automation_control.cc',
'automation_list.cc',
'automation_watch.cc',
'beats_frames_converter.cc',
'broadcast_info.cc',
'buffer.cc',
'buffer_manager.cc',
'buffer_set.cc',
'bundle.cc',
'butler.cc',
'capturing_processor.cc',
'chan_count.cc',
'chan_mapping.cc',
'config_text.cc',
'control_group.cc',
'control_protocol_manager.cc',
'cycle_timer.cc',
'data_type.cc',
'default_click.cc',
'debug.cc',
'delayline.cc',
'delivery.cc',
'directory_names.cc',
'diskstream.cc',
'dsp_filter.cc',
'ebur128_analysis.cc',
'element_import_handler.cc',
'element_importer.cc',
'engine_slave.cc',
'enums.cc',
'event_type_map.cc',
'export_channel.cc',
'export_channel_configuration.cc',
'export_failed.cc',
'export_filename.cc',
'export_format_base.cc',
'export_format_manager.cc',
'export_format_specification.cc',
'export_formats.cc',
'export_graph_builder.cc',
'export_handler.cc',
'export_preset.cc',
'export_profile_manager.cc',
'export_status.cc',
'export_timespan.cc',
'file_source.cc',
'filename_extensions.cc',
'filesystem_paths.cc',
'filter.cc',
'find_session.cc',
'fixed_delay.cc',
'gain_control.cc',
'globals.cc',
'graph.cc',
'graphnode.cc',
'iec1ppmdsp.cc',
'iec2ppmdsp.cc',
'import.cc',
'instrument_info.cc',
'internal_return.cc',
'internal_send.cc',
'interpolation.cc',
'io.cc',
'io_processor.cc',
'kmeterdsp.cc',
'ladspa_plugin.cc',
'legatize.cc',
'location.cc',
'location_importer.cc',
'ltc_file_reader.cc',
'ltc_slave.cc',
'lua_api.cc',
'luabindings.cc',
'luaproc.cc',
'luascripting.cc',
'meter.cc',
'midi_automation_list_binder.cc',
'midi_buffer.cc',
'midi_channel_filter.cc',
'midi_clock_slave.cc',
'midi_diskstream.cc',
'midi_model.cc',
'midi_patch_manager.cc',
'midi_playlist.cc',
'midi_playlist_source.cc',
'midi_port.cc',
'midi_region.cc',
'midi_ring_buffer.cc',
'midi_scene_change.cc',
'midi_scene_changer.cc',
'midi_source.cc',
'midi_state_tracker.cc',
'midi_stretch.cc',
'midi_track.cc',
'midi_ui.cc',
'mididm.cc',
'midiport_manager.cc',
'mix.cc',
'monitor_control.cc',
'monitor_processor.cc',
'mtc_slave.cc',
'mtdm.cc',
'muteable.cc',
'mute_control.cc',
'mute_master.cc',
'note_fixer.cc',
'onset_detector.cc',
'operations.cc',
'pan_controllable.cc',
'pannable.cc',
'panner.cc',
'panner_manager.cc',
'panner_shell.cc',
'parameter_descriptor.cc',
'pcm_utils.cc',
'phase_control.cc',
'playlist.cc',
'playlist_factory.cc',
'playlist_source.cc',
'plugin.cc',
'plugin_insert.cc',
'plugin_manager.cc',
'port.cc',
'port_insert.cc',
'port_manager.cc',
'port_set.cc',
'process_thread.cc',
'processor.cc',
'progress.cc',
'quantize.cc',
'rc_configuration.cc',
'recent_sessions.cc',
'record_enable_control.cc',
'region_factory.cc',
'resampled_source.cc',
'region.cc',
'return.cc',
'reverse.cc',
'route.cc',
'route_graph.cc',
'route_group.cc',
'route_group_member.cc',
'rb_effect.cc',
'scene_change.cc',
'search_paths.cc',
'send.cc',
'session.cc',
'session_butler.cc',
'session_click.cc',
'session_command.cc',
'session_configuration.cc',
'session_directory.cc',
'session_events.cc',
'session_export.cc',
'session_handle.cc',
'session_ltc.cc',
'session_metadata.cc',
'session_midi.cc',
'session_object.cc',
'session_playlists.cc',
'session_process.cc',
'session_rtevents.cc',
'session_state.cc',
'session_state_utils.cc',
'session_time.cc',
'session_transport.cc',
'sidechain.cc',
'slave.cc',
'slavable_automation_control.cc',
'smf_source.cc',
'sndfile_helpers.cc',
'sndfileimportable.cc',
'sndfilesource.cc',
'solo_control.cc',
'solo_isolate_control.cc',
'solo_safe_control.cc',
'soundcloud_upload.cc',
'source.cc',
'source_factory.cc',
'speakers.cc',
'srcfilesource.cc',
'strip_silence.cc',
'system_exec.cc',
'revision.cc',
'tape_file_matcher.cc',
'template_utils.cc',
'tempo.cc',
'tempo_map_importer.cc',
'thread_buffers.cc',
'ticker.cc',
'track.cc',
'transient_detector.cc',
'transform.cc',
'transpose.cc',
'unknown_processor.cc',
'user_bundle.cc',
'utils.cc',
'vca.cc',
'vca_manager.cc',
'vumeterdsp.cc',
'worker.cc'
]
def flac_supported():
cmd = subprocess.Popen ("sndfile-info testfile.flac",
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT, shell = True)
out = cmd.communicate()[0].decode('utf-8');
return re.search ('unknown format', out) == None
def ogg_supported():
cmd = subprocess.Popen ("sndfile-info testfile.ogg",
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT, shell = True)
out = cmd.communicate()[0].decode('utf-8');
return re.search ('unknown format', out) == None
def options(opt):
autowaf.set_options(opt)
def configure(conf):
conf.load('compiler_cxx')
conf.load('gas')
# we don't use hard-coded micro versions with ardour, so hard code it to zero
autowaf.configure(conf)
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)
autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML')
if Options.options.dist_target != 'mingw':
if not Options.options.no_lrdf:
autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF',
atleast_version='0.4.0')
autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO',
atleast_version='0.3.2')
autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE',
atleast_version='0.1.0')
autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP',
atleast_version='2.0')
if Options.options.lv2:
autowaf.check_pkg(conf, 'lv2', uselib_store='LV2',
atleast_version='1.0.0', mandatory=True)
autowaf.check_pkg(conf, 'lv2', uselib_store='LV2_1_2_0',
atleast_version='1.2.0', mandatory=False)
autowaf.check_pkg(conf, 'lv2', uselib_store='LV2_1_10_0',
atleast_version='1.10.0', mandatory=False)
autowaf.check_pkg(conf, 'serd-0', uselib_store='SERD',
atleast_version='0.14.0', mandatory=True)
autowaf.check_pkg(conf, 'sord-0', uselib_store='SORD',
atleast_version='0.8.0', mandatory=True)
autowaf.check_pkg(conf, 'sratom-0', uselib_store='SRATOM',
atleast_version='0.2.0', mandatory=True)
autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV',
atleast_version='0.14.0', mandatory=True)
autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV_0_16_0',
atleast_version='0.16.0', mandatory=False)
autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV_0_19_2',
atleast_version='0.19.2', mandatory=False)
autowaf.check_pkg(conf, 'lilv-0', uselib_store='LILV_0_21_3',
atleast_version='0.21.3', mandatory=False)
autowaf.check_pkg(conf, 'suil-0', uselib_store='SUIL',
atleast_version='0.6.0', mandatory=False)
conf.define ('LV2_SUPPORT', 1)
# non-standard LV2 extention -- TODO: add option to disable??
if conf.is_defined ('HAVE_LV2_1_10_0'):
conf.define ('LV2_EXTENDED', 1)
# autowaf.check_pkg(conf, 'soundtouch-1.0', uselib_store='SOUNDTOUCH',
# mandatory=False)
autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT',
atleast_version='1.12.0', mandatory=False)
autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2')
autowaf.check_pkg(conf, 'flac', uselib_store='FLAC',
atleast_version='1.2.1')
autowaf.check_pkg(conf, 'libcurl', uselib_store='CURL',
atleast_version='7.0.0')
# controls whether we actually use it in preference to soundtouch
# Note: as of 2104, soundtouch (WSOLA) has been out-of-use for years.
conf.define('USE_RUBBERBAND', 1)
conf.define('CURRENT_SESSION_FILE_VERSION', CURRENT_SESSION_FILE_VERSION)
conf.check(header_name='sys/vfs.h', define_name='HAVE_SYS_VFS_H',mandatory=False)
conf.check(header_name='sys/statvfs.h', define_name='HAVE_SYS_STATVFS_H',mandatory=False)
conf.check(header_name='unistd.h', define_name='HAVE_UNISTD',mandatory=False)
if flac_supported():
conf.define ('HAVE_FLAC', 1)
if ogg_supported():
conf.define ('HAVE_OGG', 1)
conf.write_config_header('libardour-config.h', remove=False)
# Boost headers
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/scoped_ptr.hpp')
autowaf.check_header(conf, 'cxx', 'boost/ptr_container/ptr_list.hpp')
if conf.env['WINDOWS_VST_SUPPORT'] == True and Options.options.dist_target == 'mingw':
conf.check(compiler='cxx',
lib='gdi32',
mandatory=True,
uselib_store='GDI32')
def build(bld):
# Library version (UNIX style major, minor, micro)
# major increment <=> incompatible changes
# minor increment <=> compatible changes (additions)
# micro increment <=> no interface changes
LIBARDOUR_LIB_VERSION = "3.0.0"
# operate on copy to avoid adding sources twice
sources = list(libardour_sources)
if bld.is_tracks_build():
sources += [ 'engine_state_controller.cc' ]
# Library
if bld.is_defined ('INTERNAL_SHARED_LIBS'):
obj = bld.shlib(features = 'c cxx cshlib cxxshlib', source=sources)
# macros for this shared library
obj.defines = [ 'LIBARDOUR_DLL_EXPORTS=1' ]
else:
obj = bld.stlib(features = 'c cxx cstlib cxxstlib', source=sources)
obj.cxxflags = [ bld.env['compiler_flags_dict']['pic'] ]
obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ]
obj.defines = []
obj.export_includes = ['.']
obj.includes = ['.', '../surfaces/control_protocol', '..']
obj.name = 'libardour'
obj.target = 'ardour'
obj.uselib = ['GLIBMM','GTHREAD','AUBIO','SIGCPP','XML','UUID', 'LO',
'SNDFILE','SAMPLERATE','LRDF','AUDIOUNITS', 'GIOMM',
'OSX','BOOST','CURL','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
obj.use = ['libpbd','libmidipp','libevoral',
'libaudiographer',
'libtimecode',
'liblua',
]
if bld.env['build_target'] != 'mingw':
obj.uselib += ['DL']
if bld.is_defined('USE_EXTERNAL_LIBS'):
obj.uselib.extend(['VAMPSDK', 'LIBLTC'])
else:
obj.use.extend(['librubberband', 'libltc_includes', 'libltc'])
obj.vnum = LIBARDOUR_LIB_VERSION
obj.install_path = bld.env['LIBDIR']
obj.defines += [
'PACKAGE="' + I18N_PACKAGE + str(bld.env['MAJOR']) + '"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"',
'LIBARDOUR="' + bld.env['lwrcase_dirname'] + '"',
'EVORAL_MIDI_XML=1',
]
#obj.source += ' st_stretch.cc st_pitch.cc '
#obj.uselib += ' SOUNDTOUCH '
#obj.add_objects = 'default/libs/surfaces/control_protocol/smpte_1.o'
if bld.is_defined('HAVE_LILV') :
obj.source += ['lv2_plugin.cc', 'lv2_evbuf.c', 'uri_map.cc']
obj.uselib += ['LILV']
if bld.is_defined('HAVE_SUIL'):
obj.uselib += ['SUIL']
if bld.is_defined('WINDOWS_VST_SUPPORT'):
obj.source += [ 'windows_vst_plugin.cc']
obj.includes += [ '../fst' ]
obj.defines += [ 'WINDOWS_VST_SUPPORT' ]
if bld.env['build_target'] == 'mingw':
obj.use += [ 'vstwin' ]
obj.uselib += ['GDI32']
if bld.is_defined('LXVST_SUPPORT'):
obj.source += [ 'lxvst_plugin.cc', 'linux_vst_support.cc' ]
obj.defines += [ 'LXVST_SUPPORT' ]
if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT'):
obj.source += [ 'session_vst.cc', 'vst_plugin.cc', 'vst_info_file.cc' ]
if bld.is_defined('HAVE_COREAUDIO'):
obj.source += [ 'coreaudiosource.cc', 'caimportable.cc' ]
obj.use += ['libappleutility']
if bld.is_defined('AUDIOUNIT_SUPPORT'):
obj.source += [ 'audio_unit.cc' ]
avx_sources = []
if Options.options.fpu_optimization:
if (bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686'):
obj.source += [ 'sse_functions_xmm.cc', 'sse_functions.s', ]
avx_sources = [ 'sse_functions_avx_linux.cc' ]
elif bld.env['build_target'] == 'x86_64':
obj.source += [ 'sse_functions_xmm.cc', 'sse_functions_64bit.s', ]
avx_sources = [ 'sse_functions_avx_linux.cc' ]
elif bld.env['build_target'] == 'mingw':
# usability of the 64 bit windows assembler depends on the compiler target,
# not the build host, which in turn can only be inferred from the name
# of the compiler.
if re.search ('x86_64-w64', str(bld.env['CC'])):
obj.source += [ 'sse_functions_xmm.cc' ]
obj.source += [ 'sse_functions_64bit_win.s', 'sse_avx_functions_64bit_win.s' ]
avx_sources = [ 'sse_functions_avx.cc' ]
if avx_sources:
# as long as we want to use AVX intrinsics in this file,
# compile it with -mavx flag - append avx flag to the existing
avx_cxxflags = list(bld.env['CXXFLAGS'])
avx_cxxflags.append (bld.env['compiler_flags_dict']['avx'])
avx_cxxflags.append (bld.env['compiler_flags_dict']['pic'])
bld(features = 'cxx',
source = avx_sources,
cxxflags = avx_cxxflags,
includes = [ '.' ],
use = [ 'libtimecode', 'libpbd', 'libevoral', 'liblua' ],
uselib = [ 'GLIBMM', 'XML' ],
target = 'sse_avx_functions')
obj.use += ['sse_avx_functions' ]
# i18n
if bld.is_defined('ENABLE_NLS'):
mo_files = bld.path.ant_glob('po/*.mo')
for mo in mo_files:
lang = os.path.basename(mo.srcpath()).replace('.mo', '')
bld.install_as(os.path.join(bld.env['LOCALEDIR'], lang, 'LC_MESSAGES', I18N_PACKAGE + str(bld.env['MAJOR']) + '.mo'),
mo)
if bld.env['BUILD_TESTS'] and bld.is_defined('HAVE_CPPUNIT'):
# Unit tests
# only build these common sources once
testcommon = bld(features = 'cxx')
testcommon.includes = obj.includes + ['test', '../pbd', '..']
testcommon.source = ['test/testrunner.cc', 'test/test_needing_session.cc',
'test/dummy_lxvst.cc', 'test/audio_region_test.cc', 'test/test_util.cc', 'test/test_ui.cc']
testcommon.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
testcommon.use = ['libpbd','libmidipp','libevoral',
'libaudiographer','libardour']
if bld.is_defined('USE_EXTERNAL_LIBS'):
testcommon.uselib.extend(['LIBLTC',])
else:
testcommon.use.extend(['libltc', 'librubberband'])
testcommon.defines = [
'PACKAGE="libardour' + str(bld.env['MAJOR']) + 'test"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"',
]
testcommon.name = 'testcommon'
if bld.env['SINGLE_TESTS']:
create_ardour_test_program(bld, obj.includes, 'audio_engine_test', 'test_audio_engine', ['test/audio_engine_test.cc'])
create_ardour_test_program(bld, obj.includes, 'automation_list_property_test', 'test_automation_list_property', ['test/automation_list_property_test.cc'])
create_ardour_test_program(bld, obj.includes, 'bbt', 'test_bbt', ['test/bbt_test.cc'])
create_ardour_test_program(bld, obj.includes, 'tempo', 'test_tempo', ['test/tempo_test.cc'])
create_ardour_test_program(bld, obj.includes, 'interpolation', 'test_interpolation', ['test/interpolation_test.cc'])
create_ardour_test_program(bld, obj.includes, 'midi_clock_slave', 'test_midi_clock_slave', ['test/midi_clock_slave_test.cc'])
create_ardour_test_program(bld, obj.includes, 'resampled_source', 'test_resampled_source', ['test/resampled_source_test.cc'])
create_ardour_test_program(bld, obj.includes, 'framewalk_to_beats', 'test_framewalk_to_beats', ['test/framewalk_to_beats_test.cc'])
create_ardour_test_program(bld, obj.includes, 'framepos_plus_beats', 'test_framepos_plus_beats', ['test/framepos_plus_beats_test.cc'])
create_ardour_test_program(bld, obj.includes, 'framepos_minus_beats', 'test_framepos_minus_beats', ['test/framepos_minus_beats_test.cc'])
create_ardour_test_program(bld, obj.includes, 'playlist_equivalent_regions', 'test_playlist_equivalent_regions', ['test/playlist_equivalent_regions_test.cc'])
create_ardour_test_program(bld, obj.includes, 'playlist_layering', 'test_playlist_layering', ['test/playlist_layering_test.cc'])
create_ardour_test_program(bld, obj.includes, 'plugins_test', 'test_plugins', ['test/plugins_test.cc'])
create_ardour_test_program(bld, obj.includes, 'region_naming', 'test_region_naming', ['test/region_naming_test.cc'])
create_ardour_test_program(bld, obj.includes, 'control_surface', 'test_control_surfaces', ['test/control_surfaces_test.cc'])
create_ardour_test_program(bld, obj.includes, 'mtdm_test', 'test_mtdm', ['test/mtdm_test.cc'])
create_ardour_test_program(bld, obj.includes, 'sha1_test', 'test_sha1', ['test/sha1_test.cc'])
create_ardour_test_program(bld, obj.includes, 'session_test', 'test_session', ['test/session_test.cc'])
create_ardour_test_program(bld, obj.includes, 'dsp_load_calculator_test', 'test_dsp_load_calculator', ['test/dsp_load_calculator_test.cc'])
test_sources = '''
test/audio_engine_test.cc
test/automation_list_property_test.cc
test/bbt_test.cc
test/dsp_load_calculator_test.cc
test/tempo_test.cc
test/interpolation_test.cc
test/midi_clock_slave_test.cc
test/resampled_source_test.cc
test/framewalk_to_beats_test.cc
test/framepos_plus_beats_test.cc
test/framepos_minus_beats_test.cc
test/playlist_equivalent_regions_test.cc
test/playlist_layering_test.cc
test/plugins_test.cc
test/region_naming_test.cc
test/control_surfaces_test.cc
test/mtdm_test.cc
test/sha1_test.cc
test/session_test.cc
'''.split()
# Tests that don't work
# test/playlist_read_test.cc
# test/audio_region_read_test.cc
# test/combine_regions_test.cc
# test/mantis_3356_test.cc
create_ardour_test_program(bld, obj.includes, 'libardour-tests', 'run-tests', test_sources)
# Utility to load and save a session
load_save_session = bld(features = 'cxx cxxprogram')
load_save_session.source = '''
test/test_util.cc
test/test_ui.cc
test/load_save_session.cc
test/dummy_lxvst.cc
'''.split()
load_save_session.includes = obj.includes
load_save_session.includes.append ('test')
load_save_session.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO']
load_save_session.use = ['libpbd','libmidipp','libardour']
load_save_session.name = 'libardour-load-save-session'
load_save_session.target = 'load-save-session'
load_save_session.install_path = ''
load_save_session.defines = [
'PACKAGE="libardour' + str(bld.env['MAJOR']) + 'profile"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"',
]
# Profiling
for p in ['runpc', 'lots_of_regions', 'load_session']:
profilingobj = bld(features = 'cxx cxxprogram')
profilingobj.source = '''
test/dummy_lxvst.cc
test/test_util.cc
'''.split()
profilingobj.source.append('test/profiling/%s.cc' % p)
profilingobj.includes = obj.includes
profilingobj.includes.append ('test')
profilingobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO']
profilingobj.use = ['libpbd','libmidipp','libardour']
profilingobj.name = 'libardour-profiling'
profilingobj.target = p
profilingobj.install_path = ''
profilingobj.defines = [
'PACKAGE="libardour' + str(bld.env['MAJOR']) + 'profile"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"',
]
def create_ardour_test_program(bld, includes, name, target, sources):
testobj = bld(features = 'cxx cxxprogram')
testobj.includes = includes + ['test', '../pbd', '..']
testobj.source = sources
testobj.uselib = ['CPPUNIT','SIGCPP','GLIBMM','GTHREAD',
'SAMPLERATE','XML','LRDF','COREAUDIO','TAGLIB','VAMPSDK','VAMPHOSTSDK','RUBBERBAND']
testobj.use = ['libpbd','libmidipp','libevoral',
'libaudiographer','libardour','testcommon']
if bld.is_defined('USE_EXTERNAL_LIBS'):
testobj.uselib.extend(['LIBLTC'])
else:
testobj.use.extend(['libltc'])
testobj.name = name
testobj.target = target
# not sure about install path
testobj.install_path = bld.env['LIBDIR']
testobj.defines = [
'PACKAGE="libardour' + str(bld.env['MAJOR']) + 'test"',
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"',
]
def shutdown():
autowaf.shutdown()
def i18n(bld):
autowaf.build_i18n(bld, top, 'libs/ardour', I18N_PACKAGE + str(bld.env['MAJOR']), libardour_sources,
'Paul Davis')
def i18n_pot(bld):
autowaf.build_i18n(bld, top, 'libs/ardour', I18N_PACKAGE + str(bld.env['MAJOR']), libardour_sources,
'Paul Davis')
def i18n_po(bld):
autowaf.build_i18n_po(bld, top, 'libs/ardour', I18N_PACKAGE + str(bld.env['MAJOR']), libardour_sources,
'Paul Davis')
def i18n_mo(bld):
autowaf.build_i18n_mo(bld, top, 'libs/ardour', I18N_PACKAGE + str(bld.env['MAJOR']), libardour_sources,
'Paul Davis')