From 9850407bd9178de794a7507ad858bcdfa227c842 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Wed, 16 Mar 2011 16:32:56 +0000 Subject: Indent python files with spaces as per style guide. git-svn-id: svn://localhost/ardour2/branches/3.0@9158 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/wscript | 836 ++++++++--------- libs/appleutility/wscript | 60 +- libs/ardour/wscript | 604 ++++++------ libs/audiographer/wscript | 166 ++-- libs/evoral/wscript | 202 ++-- libs/gnomecanvas/wscript | 30 +- libs/gtkmm2ext/wscript | 110 +-- libs/midi++2/wscript | 70 +- libs/panners/1in2out/wscript | 26 +- libs/panners/2in2out/wscript | 26 +- libs/panners/vbap/wscript | 26 +- libs/panners/wscript | 14 +- libs/pbd/wscript | 178 ++-- libs/qm-dsp/wscript | 60 +- libs/rubberband/wscript | 40 +- libs/surfaces/control_protocol/wscript | 32 +- libs/surfaces/frontier/wscript | 36 +- libs/surfaces/generic_midi/wscript | 42 +- libs/surfaces/mackie/wscript | 64 +- libs/surfaces/osc/wscript | 40 +- libs/surfaces/powermate/wscript | 32 +- libs/surfaces/tranzport/wscript | 60 +- libs/surfaces/wiimote/wscript | 32 +- libs/surfaces/wscript | 82 +- libs/taglib/wscript | 92 +- libs/timecode/wscript | 26 +- libs/vamp-plugins/wscript | 56 +- libs/vamp-sdk/wscript | 76 +- tools/session_exchange.py | 1598 ++++++++++++++++---------------- wscript | 1108 +++++++++++----------- 30 files changed, 2912 insertions(+), 2912 deletions(-) diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index fe4714ae07..84c5fe76d8 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -24,246 +24,246 @@ blddir = 'build' path_prefix = 'gtk2_ardour/' gtk2_ardour_sources = [ - 'about.cc', - 'actions.cc', - 'add_midi_cc_track_dialog.cc', - 'add_route_dialog.cc', - 'ambiguous_file_dialog.cc', - 'analysis_window.cc', - 'ardour_dialog.cc', - 'ardour_ui.cc', - 'ardour_ui2.cc', - 'ardour_ui_dependents.cc', - 'ardour_ui_dialogs.cc', - 'ardour_ui_ed.cc', - 'ardour_ui_mixer.cc', - 'ardour_ui_options.cc', - 'audio_clock.cc', - 'audio_region_editor.cc', - 'audio_region_view.cc', - 'audio_streamview.cc', - 'audio_time_axis.cc', - 'automation_controller.cc', - 'automation_line.cc', - 'automation_region_view.cc', - 'automation_streamview.cc', - 'automation_time_axis.cc', - 'axis_view.cc', - 'bundle_manager.cc', - 'cairo_widget.cc', - 'canvas-flag.cc', - 'canvas-hit.cc', - 'canvas-note-event.cc', - 'canvas-note.cc', - 'canvas_patch_change.cc', - 'canvas-simpleline.c', - 'canvas-simplerect.c', - 'canvas-sysex.cc', - 'canvas-waveview.c', + 'about.cc', + 'actions.cc', + 'add_midi_cc_track_dialog.cc', + 'add_route_dialog.cc', + 'ambiguous_file_dialog.cc', + 'analysis_window.cc', + 'ardour_dialog.cc', + 'ardour_ui.cc', + 'ardour_ui2.cc', + 'ardour_ui_dependents.cc', + 'ardour_ui_dialogs.cc', + 'ardour_ui_ed.cc', + 'ardour_ui_mixer.cc', + 'ardour_ui_options.cc', + 'audio_clock.cc', + 'audio_region_editor.cc', + 'audio_region_view.cc', + 'audio_streamview.cc', + 'audio_time_axis.cc', + 'automation_controller.cc', + 'automation_line.cc', + 'automation_region_view.cc', + 'automation_streamview.cc', + 'automation_time_axis.cc', + 'axis_view.cc', + 'bundle_manager.cc', + 'cairo_widget.cc', + 'canvas-flag.cc', + 'canvas-hit.cc', + 'canvas-note-event.cc', + 'canvas-note.cc', + 'canvas_patch_change.cc', + 'canvas-simpleline.c', + 'canvas-simplerect.c', + 'canvas-sysex.cc', + 'canvas-waveview.c', 'clock_group.cc', - 'configinfo.cc', - 'control_point.cc', - 'control_point_dialog.cc', - 'crossfade_edit.cc', - 'crossfade_view.cc', - 'curvetest.cc', - 'debug.cc', - 'diamond.cc', - 'edit_note_dialog.cc', - 'editing.cc', - 'editor.cc', - 'editor_actions.cc', - 'editor_audio_import.cc', - 'editor_audiotrack.cc', - 'editor_canvas.cc', - 'editor_canvas_events.cc', - 'editor_component.cc', - 'editor_cursors.cc', - 'editor_drag.cc', - 'editor_route_groups.cc', - 'editor_export_audio.cc', - 'editor_group_tabs.cc', - 'editor_keys.cc', - 'editor_locations.cc', - 'editor_markers.cc', - 'editor_mixer.cc', - 'editor_mouse.cc', - 'editor_nudge.cc', - 'editor_ops.cc', - 'editor_regions.cc', - 'editor_routes.cc', - 'editor_rulers.cc', - 'editor_scrub.cc', - 'editor_selection.cc', - 'editor_snapshots.cc', - 'editor_summary.cc', - 'editor_tempodisplay.cc', - 'editor_timefx.cc', - 'engine_dialog.cc', - 'enums.cc', - 'export_channel_selector.cc', - 'export_dialog.cc', - 'export_file_notebook.cc', - 'export_filename_selector.cc', - 'export_format_dialog.cc', - 'export_format_selector.cc', - 'export_preset_selector.cc', - 'export_timespan_selector.cc', - 'fft.cc', - 'fft_graph.cc', - 'fft_result.cc', - 'gain_meter.cc', - 'generic_pluginui.cc', - 'ghostregion.cc', - 'global_port_matrix.cc', - 'group_tabs.cc', - 'gtk-custom-hruler.c', - 'gtk-custom-ruler.c', + 'configinfo.cc', + 'control_point.cc', + 'control_point_dialog.cc', + 'crossfade_edit.cc', + 'crossfade_view.cc', + 'curvetest.cc', + 'debug.cc', + 'diamond.cc', + 'edit_note_dialog.cc', + 'editing.cc', + 'editor.cc', + 'editor_actions.cc', + 'editor_audio_import.cc', + 'editor_audiotrack.cc', + 'editor_canvas.cc', + 'editor_canvas_events.cc', + 'editor_component.cc', + 'editor_cursors.cc', + 'editor_drag.cc', + 'editor_route_groups.cc', + 'editor_export_audio.cc', + 'editor_group_tabs.cc', + 'editor_keys.cc', + 'editor_locations.cc', + 'editor_markers.cc', + 'editor_mixer.cc', + 'editor_mouse.cc', + 'editor_nudge.cc', + 'editor_ops.cc', + 'editor_regions.cc', + 'editor_routes.cc', + 'editor_rulers.cc', + 'editor_scrub.cc', + 'editor_selection.cc', + 'editor_snapshots.cc', + 'editor_summary.cc', + 'editor_tempodisplay.cc', + 'editor_timefx.cc', + 'engine_dialog.cc', + 'enums.cc', + 'export_channel_selector.cc', + 'export_dialog.cc', + 'export_file_notebook.cc', + 'export_filename_selector.cc', + 'export_format_dialog.cc', + 'export_format_selector.cc', + 'export_preset_selector.cc', + 'export_timespan_selector.cc', + 'fft.cc', + 'fft_graph.cc', + 'fft_result.cc', + 'gain_meter.cc', + 'generic_pluginui.cc', + 'ghostregion.cc', + 'global_port_matrix.cc', + 'group_tabs.cc', + 'gtk-custom-hruler.c', + 'gtk-custom-ruler.c', 'gtk_pianokeyboard.c', - 'insert_time_dialog.cc', - 'interthread_progress_window.cc', - 'io_selector.cc', - 'keyboard.cc', - 'keyeditor.cc', - 'latency_gui.cc', + 'insert_time_dialog.cc', + 'interthread_progress_window.cc', + 'io_selector.cc', + 'keyboard.cc', + 'keyeditor.cc', + 'latency_gui.cc', 'led.cc', - 'level_meter.cc', - 'lineset.cc', - 'location_ui.cc', - 'main.cc', - 'marker.cc', - 'midi_automation_line.cc', - 'midi_channel_selector.cc', - 'midi_cut_buffer.cc', - 'midi_list_editor.cc', - 'midi_port_dialog.cc', - 'midi_region_view.cc', - 'midi_scroomer.cc', - 'midi_streamview.cc', - 'midi_time_axis.cc', - 'midi_tracer.cc', + 'level_meter.cc', + 'lineset.cc', + 'location_ui.cc', + 'main.cc', + 'marker.cc', + 'midi_automation_line.cc', + 'midi_channel_selector.cc', + 'midi_cut_buffer.cc', + 'midi_list_editor.cc', + 'midi_port_dialog.cc', + 'midi_region_view.cc', + 'midi_scroomer.cc', + 'midi_streamview.cc', + 'midi_time_axis.cc', + 'midi_tracer.cc', 'missing_file_dialog.cc', - 'missing_plugin_dialog.cc', - 'mixer_group_tabs.cc', - 'mixer_strip.cc', - 'mixer_ui.cc', + 'missing_plugin_dialog.cc', + 'mixer_group_tabs.cc', + 'mixer_strip.cc', + 'mixer_ui.cc', 'monitor_section.cc', 'mono_panner.cc', - 'mouse_cursors.cc', - 'nag.cc', - 'new_plugin_preset_dialog.cc', - 'normalize_dialog.cc', + 'mouse_cursors.cc', + 'nag.cc', + 'new_plugin_preset_dialog.cc', + 'normalize_dialog.cc', 'note_player.cc', - 'option_editor.cc', - 'opts.cc', - 'panner2d.cc', - 'panner_ui.cc', - 'piano_roll_header.cc', - 'playlist_selector.cc', - 'plugin_eq_gui.cc', - 'plugin_selector.cc', - 'plugin_ui.cc', - 'port_group.cc', + 'option_editor.cc', + 'opts.cc', + 'panner2d.cc', + 'panner_ui.cc', + 'piano_roll_header.cc', + 'playlist_selector.cc', + 'plugin_eq_gui.cc', + 'plugin_selector.cc', + 'plugin_ui.cc', + 'port_group.cc', 'port_insert_ui.cc', - 'port_matrix.cc', - 'port_matrix_body.cc', - 'port_matrix_column_labels.cc', - 'port_matrix_component.cc', - 'port_matrix_grid.cc', - 'port_matrix_labels.cc', - 'port_matrix_row_labels.cc', - 'processor_box.cc', - 'patch_change_dialog.cc', - 'progress_reporter.cc', - 'prompter.cc', - 'public_editor.cc', - 'quantize_dialog.cc', - 'rc_option_editor.cc', - 'region_editor.cc', - 'region_gain_line.cc', - 'region_layering_order_editor.cc', - 'region_selection.cc', - 'region_view.cc', - 'return_ui.cc', - 'rhythm_ferret.cc', - 'route_group_dialog.cc', - 'route_group_menu.cc', - 'route_params_ui.cc', - 'route_processor_selection.cc', - 'route_time_axis.cc', - 'route_ui.cc', + 'port_matrix.cc', + 'port_matrix_body.cc', + 'port_matrix_column_labels.cc', + 'port_matrix_component.cc', + 'port_matrix_grid.cc', + 'port_matrix_labels.cc', + 'port_matrix_row_labels.cc', + 'processor_box.cc', + 'patch_change_dialog.cc', + 'progress_reporter.cc', + 'prompter.cc', + 'public_editor.cc', + 'quantize_dialog.cc', + 'rc_option_editor.cc', + 'region_editor.cc', + 'region_gain_line.cc', + 'region_layering_order_editor.cc', + 'region_selection.cc', + 'region_view.cc', + 'return_ui.cc', + 'rhythm_ferret.cc', + 'route_group_dialog.cc', + 'route_group_menu.cc', + 'route_params_ui.cc', + 'route_processor_selection.cc', + 'route_time_axis.cc', + 'route_ui.cc', 'search_path_option.cc', - 'selection.cc', - 'send_ui.cc', - 'session_import_dialog.cc', - 'session_metadata_dialog.cc', - 'session_option_editor.cc', - 'sfdb_ui.cc', - 'simpleline.cc', - 'simplerect.cc', - 'splash.cc', + 'selection.cc', + 'send_ui.cc', + 'session_import_dialog.cc', + 'session_metadata_dialog.cc', + 'session_option_editor.cc', + 'sfdb_ui.cc', + 'simpleline.cc', + 'simplerect.cc', + 'splash.cc', 'speaker_dialog.cc', - 'startup.cc', + 'startup.cc', 'step_editor.cc', 'step_entry.cc', 'stereo_panner.cc', - 'streamview.cc', - 'strip_silence_dialog.cc', - 'tape_region_view.cc', - 'tempo_dialog.cc', - 'tempo_lines.cc', - 'theme_manager.cc', - 'time_axis_view.cc', - 'time_axis_view_item.cc', - 'time_fx_dialog.cc', - 'time_selection.cc', - 'track_selection.cc', - 'track_view_list.cc', - 'ui_config.cc', - 'utils.cc', - 'version.cc', + 'streamview.cc', + 'strip_silence_dialog.cc', + 'tape_region_view.cc', + 'tempo_dialog.cc', + 'tempo_lines.cc', + 'theme_manager.cc', + 'time_axis_view.cc', + 'time_axis_view_item.cc', + 'time_fx_dialog.cc', + 'time_selection.cc', + 'track_selection.cc', + 'track_view_list.cc', + 'ui_config.cc', + 'utils.cc', + 'version.cc', 'volume_controller.cc', - 'waveview.cc', - 'window_proxy.cc' + 'waveview.cc', + 'window_proxy.cc' ] def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.build_version_files(path_prefix+'version.h', path_prefix+'version.cc', - 'gtk2_ardour', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - - if re.search ("linux", sys.platform) != None: - autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA') - # - # TODO: Insert a sanity check for on OS X - # to ensure that CoreAudio is present.... - # Really shouldn't these checks be in AutoWaf? - # - autowaf.check_pkg(conf, 'flac', uselib_store='FLAC', atleast_version='1.2.1') - autowaf.check_pkg(conf, 'gthread', uselib_store='GTHREAD', atleast_version='2.10.1') - autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.18') - autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.18') - autowaf.check_pkg(conf, 'libgnomecanvasmm-2.6', uselib_store='GNOMECANVASMM', atleast_version='2.16') - autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2') - - conf.check_tool('misc') # subst tool - - conf.write_config_header('gtk2ardour-config.h') - - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + autowaf.build_version_files(path_prefix+'version.h', path_prefix+'version.cc', + 'gtk2_ardour', MAJOR, MINOR, MICRO) + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + + if re.search ("linux", sys.platform) != None: + autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA') + # + # TODO: Insert a sanity check for on OS X + # to ensure that CoreAudio is present.... + # Really shouldn't these checks be in AutoWaf? + # + autowaf.check_pkg(conf, 'flac', uselib_store='FLAC', atleast_version='1.2.1') + autowaf.check_pkg(conf, 'gthread', uselib_store='GTHREAD', atleast_version='2.10.1') + autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.18') + autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.18') + autowaf.check_pkg(conf, 'libgnomecanvasmm-2.6', uselib_store='GNOMECANVASMM', atleast_version='2.16') + autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2') + + conf.check_tool('misc') # subst tool + + conf.write_config_header('gtk2ardour-config.h') + + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') # Add a waf `feature' to allow compilation of things using winegcc from TaskGen import feature @feature("wine") def set_winegcc(self): - self.env.LINK_CXX = self.env.LINK_CC = 'wineg++' - self.env.CC = 'winegcc' + self.env.LINK_CXX = self.env.LINK_CC = 'wineg++' + self.env.CC = 'winegcc' def build_color_scheme(path, prefix): f = open (path, 'r') @@ -284,218 +284,218 @@ def build_color_scheme(path, prefix): def build(bld): - # GTK front-end; if we're using VST we build this as a shared library, otherwise - # it's a normal executabale - if bld.env['VST_SUPPORT']: - obj = bld.new_task_gen(features = 'cxx cc cshlib') - else: - obj = bld.new_task_gen(features = 'cxx cc cprogram') - - obj.includes = ['.'] - obj.source = gtk2_ardour_sources - obj.name = 'gtk2_ardour' - if bld.env['VST_SUPPORT']: - obj.target = 'gtk2_ardour' - obj.includes += ['../libs/fst'] - else: - obj.target = 'ardour-3.0' - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.uselib = 'UUID FLAC GLIBMM GTHREAD GTK OGG ALSA CURL DL' - obj.uselib += ' GTKMM GNOMECANVASMM ' - obj.uselib += ' AUDIOUNITS OSX GTKOSX ' - obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp - libgtkmm2ext libtaglib libgnomecanvas-2''' + # GTK front-end; if we're using VST we build this as a shared library, otherwise + # it's a normal executabale + if bld.env['VST_SUPPORT']: + obj = bld.new_task_gen(features = 'cxx cc cshlib') + else: + obj = bld.new_task_gen(features = 'cxx cc cprogram') + + obj.includes = ['.'] + obj.source = gtk2_ardour_sources + obj.name = 'gtk2_ardour' + if bld.env['VST_SUPPORT']: + obj.target = 'gtk2_ardour' + obj.includes += ['../libs/fst'] + else: + obj.target = 'ardour-3.0' + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.uselib = 'UUID FLAC GLIBMM GTHREAD GTK OGG ALSA CURL DL' + obj.uselib += ' GTKMM GNOMECANVASMM ' + obj.uselib += ' AUDIOUNITS OSX GTKOSX ' + obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp + libgtkmm2ext libtaglib libgnomecanvas-2''' if sys.platform == 'darwin': obj.uselib_local + ' libappleutility' - obj.cflags = ['-DPACKAGE="gtk2_ardour"'] - obj.cxxflags = ['-DPACKAGE="gtk2_ardour"'] - obj.cxxflags += ['-DVERSIONSTRING="' + bld.env['VERSION'] + '"'] - obj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] - obj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] - obj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] - obj.cxxflags += ['-DLOCALEDIR="' + os.path.join( - os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] - obj.cxxflags += ['-DPROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'] - obj.cxxflags += ['-I../libs'] - - if bld.env['HAVE_SLV2']: - obj.source += [ 'lv2_plugin_ui.cc' ] - obj.uselib += ' SLV2 ' - - if bld.env['FREESOUND']: - obj.source += [ 'sfdb_freesound_mootcher.cc' ] - - if bld.env['VST_SUPPORT']: - obj.source += [ 'vst_pluginui.cc' ] - obj.cxxflags += [ '-DVST_SUPPORT' ] - - if bld.env['PHONE_HOME']: - obj.cxxflags += [ '-DPHONE_HOME' ] - - if bld.env['COREAUDIO']: - TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc'] - obj.source += [ 'cocoacarbon.mm', 'au_pluginui.mm' ] - obj.uselib_local += ' libappleutility ' - else: - obj.source += [ 'x11.cc' ] - - if bld.env['VST_SUPPORT']: - # If we require VST support we build a stub main() and the FST library here using - # winegcc, and link it to the GTK front-end library - obj = bld.new_task_gen (features = 'cxx cc cprogram wine') - obj.source = ''' - ../libs/fst/fst.c - ../libs/fst/fstinfofile.c - ../libs/fst/vsti.c - ../libs/fst/vstwin.c - ../vst/winmain.c - ''' - obj.includes = '../libs/fst' - obj.target = 'ardour-3.0-vst' - obj.linkflags = ['-mwindows', '-Wl,--export-dynamic', '-lpthread'] - obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX'] - obj.uselib = 'ALSA' - obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp libgtkmm2ext libtaglib gtk2_ardour''' - - # Wrappers - - wrapper_subst_dict = { - 'INSTALL_PREFIX' : bld.env['PREFIX'], - 'LIBDIR' : os.path.normpath(bld.env['LIBDIRNAME']), - 'LIBS' : 'build/default/libs', - 'VERSION' : '3.0', - 'EXECUTABLE' : 'build/default/gtk2_ardour/ardour-3.0' - } - - obj = bld.new_task_gen('subst') - obj.source = 'ardev_common.sh.in' - obj.target = 'ardev_common_waf.sh' - obj.chmod = 0755 - obj.dict = wrapper_subst_dict - - obj = bld.new_task_gen('subst') - obj.source = 'ardour.sh.in' - obj.target = 'ardour3' - obj.chmod = 0755 - obj.dict = wrapper_subst_dict - obj.install_path = bld.env['BINDIR'] - - # Font configuration - - dark_rc_subst_dict = {} - light_rc_subst_dict = {} - font_sizes = {} - base_font = "" - - # Set up font sizes - if bld.env['IS_OSX']: # OS X fonts - basefont = "Lucida Grande" - font_sizes = { - 'TINY' : '7', - 'SMALLER' : '9', - 'SMALL' : '10', - 'NORMAL' : '11', - 'BIG' : '12', - 'BIGGER' : '14', - 'LARGE' : '18', - 'LARGER' : '28', - 'HUGER' : '36', - 'MASSIVE' : '60' - } - else: # Linux/X11 fonts - basefont = '' # unspecified - use system defaults - font_sizes = { - 'TINY' : '6', - 'SMALLER' : '8', - 'SMALL' : '9', - 'NORMAL' : '10', - 'BIG' : '14', - 'BIGGER' : '16', - 'LARGE' : '18', - 'LARGER' : '24', - 'HUGER' : '34', - 'MASSIVE' : '60' - } - - # Set up font substitution dictionary - for style in ['', 'BOLD', 'ITALIC']: - for sizename,points in iter(font_sizes.items()): - if (len (style)): - key = "_".join (['FONT',style,sizename]) - fontstyle = " ".join ([basefont,style.lower(),points]) - else: - key = "_".join (['FONT',sizename]) - fontstyle = " ".join ([basefont,points]) - - dark_rc_subst_dict[key] = fontstyle - light_rc_subst_dict[key] = fontstyle - - # RC files - dark_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme ('gtk2_ardour/ardour3_ui_dark.rc.in', 'ARDOUR_DARK') + obj.cflags = ['-DPACKAGE="gtk2_ardour"'] + obj.cxxflags = ['-DPACKAGE="gtk2_ardour"'] + obj.cxxflags += ['-DVERSIONSTRING="' + bld.env['VERSION'] + '"'] + obj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] + obj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] + obj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] + obj.cxxflags += ['-DLOCALEDIR="' + os.path.join( + os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] + obj.cxxflags += ['-DPROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'] + obj.cxxflags += ['-I../libs'] + + if bld.env['HAVE_SLV2']: + obj.source += [ 'lv2_plugin_ui.cc' ] + obj.uselib += ' SLV2 ' + + if bld.env['FREESOUND']: + obj.source += [ 'sfdb_freesound_mootcher.cc' ] + + if bld.env['VST_SUPPORT']: + obj.source += [ 'vst_pluginui.cc' ] + obj.cxxflags += [ '-DVST_SUPPORT' ] + + if bld.env['PHONE_HOME']: + obj.cxxflags += [ '-DPHONE_HOME' ] + + if bld.env['COREAUDIO']: + TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc'] + obj.source += [ 'cocoacarbon.mm', 'au_pluginui.mm' ] + obj.uselib_local += ' libappleutility ' + else: + obj.source += [ 'x11.cc' ] + + if bld.env['VST_SUPPORT']: + # If we require VST support we build a stub main() and the FST library here using + # winegcc, and link it to the GTK front-end library + obj = bld.new_task_gen (features = 'cxx cc cprogram wine') + obj.source = ''' + ../libs/fst/fst.c + ../libs/fst/fstinfofile.c + ../libs/fst/vsti.c + ../libs/fst/vstwin.c + ../vst/winmain.c + ''' + obj.includes = '../libs/fst' + obj.target = 'ardour-3.0-vst' + obj.linkflags = ['-mwindows', '-Wl,--export-dynamic', '-lpthread'] + obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX'] + obj.uselib = 'ALSA' + obj.uselib_local = '''libpbd libmidipp libtaglib libardour libardour_cp libgtkmm2ext libtaglib gtk2_ardour''' + + # Wrappers + + wrapper_subst_dict = { + 'INSTALL_PREFIX' : bld.env['PREFIX'], + 'LIBDIR' : os.path.normpath(bld.env['LIBDIRNAME']), + 'LIBS' : 'build/default/libs', + 'VERSION' : '3.0', + 'EXECUTABLE' : 'build/default/gtk2_ardour/ardour-3.0' + } + + obj = bld.new_task_gen('subst') + obj.source = 'ardev_common.sh.in' + obj.target = 'ardev_common_waf.sh' + obj.chmod = 0755 + obj.dict = wrapper_subst_dict + + obj = bld.new_task_gen('subst') + obj.source = 'ardour.sh.in' + obj.target = 'ardour3' + obj.chmod = 0755 + obj.dict = wrapper_subst_dict + obj.install_path = bld.env['BINDIR'] + + # Font configuration + + dark_rc_subst_dict = {} + light_rc_subst_dict = {} + font_sizes = {} + base_font = "" + + # Set up font sizes + if bld.env['IS_OSX']: # OS X fonts + basefont = "Lucida Grande" + font_sizes = { + 'TINY' : '7', + 'SMALLER' : '9', + 'SMALL' : '10', + 'NORMAL' : '11', + 'BIG' : '12', + 'BIGGER' : '14', + 'LARGE' : '18', + 'LARGER' : '28', + 'HUGER' : '36', + 'MASSIVE' : '60' + } + else: # Linux/X11 fonts + basefont = '' # unspecified - use system defaults + font_sizes = { + 'TINY' : '6', + 'SMALLER' : '8', + 'SMALL' : '9', + 'NORMAL' : '10', + 'BIG' : '14', + 'BIGGER' : '16', + 'LARGE' : '18', + 'LARGER' : '24', + 'HUGER' : '34', + 'MASSIVE' : '60' + } + + # Set up font substitution dictionary + for style in ['', 'BOLD', 'ITALIC']: + for sizename,points in iter(font_sizes.items()): + if (len (style)): + key = "_".join (['FONT',style,sizename]) + fontstyle = " ".join ([basefont,style.lower(),points]) + else: + key = "_".join (['FONT',sizename]) + fontstyle = " ".join ([basefont,points]) + + dark_rc_subst_dict[key] = fontstyle + light_rc_subst_dict[key] = fontstyle + + # RC files + dark_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme ('gtk2_ardour/ardour3_ui_dark.rc.in', 'ARDOUR_DARK') dark_rc_subst_dict['COLPREFIX'] = 'ARDOUR_DARK' - light_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme ('gtk2_ardour/ardour3_ui_light.rc.in', 'ARDOUR_LIGHT') + light_rc_subst_dict['COLOR_SCHEME'] = build_color_scheme ('gtk2_ardour/ardour3_ui_light.rc.in', 'ARDOUR_LIGHT') light_rc_subst_dict['COLPREFIX'] = 'ARDOUR_LIGHT' - obj = bld.new_task_gen('subst') - obj.source = 'ardour3_ui_dark.rc.in' - obj.target = 'ardour3_ui_dark.rc' - obj.dict = dark_rc_subst_dict - obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') - - obj = bld.new_task_gen('subst') - obj.source = 'ardour3_ui_light.rc.in' - obj.target = 'ardour3_ui_light.rc' - obj.dict = light_rc_subst_dict - obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') - - # Menus - menus_argv = [] - if bld.env['GTKOSX']: - menus_argv = [ '-E', '-P', '-DGTKOSX' ] - else: - menus_argv = [ '-E', '-P' ] - obj = bld.new_task_gen('command-output') - obj.command = 'cpp' - obj.command_is_external = True - obj.no_inputs = True - obj.argv = menus_argv - obj.stdin = 'ardour.menus.in' - obj.stdout = 'ardour.menus' - bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), 'ardour.menus') - - # Keybindings + obj = bld.new_task_gen('subst') + obj.source = 'ardour3_ui_dark.rc.in' + obj.target = 'ardour3_ui_dark.rc' + obj.dict = dark_rc_subst_dict + obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') + + obj = bld.new_task_gen('subst') + obj.source = 'ardour3_ui_light.rc.in' + obj.target = 'ardour3_ui_light.rc' + obj.dict = light_rc_subst_dict + obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') + + # Menus + menus_argv = [] + if bld.env['GTKOSX']: + menus_argv = [ '-E', '-P', '-DGTKOSX' ] + else: + menus_argv = [ '-E', '-P' ] + obj = bld.new_task_gen('command-output') + obj.command = 'cpp' + obj.command_is_external = True + obj.no_inputs = True + obj.argv = menus_argv + obj.stdin = 'ardour.menus.in' + obj.stdout = 'ardour.menus' + bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), 'ardour.menus') + + # Keybindings # 'SAE-de-keypad', 'SAE-de-nokeypad', 'SAE-us-keypad', 'SAE-us-nokeypad', 'ergonomic-us' - for b in [ 'mnemonic-us' ] : - obj = bld.new_task_gen ( - target = b + '.bindings', - source = b + '.bindings.in', - rule = '../tools/fmt-bindings --winkey="%s" --accelmap <${SRC} >${TGT}' % bld.env['WINDOWS_KEY'] - ) - obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') + for b in [ 'mnemonic-us' ] : + obj = bld.new_task_gen ( + target = b + '.bindings', + source = b + '.bindings.in', + rule = '../tools/fmt-bindings --winkey="%s" --accelmap <${SRC} >${TGT}' % bld.env['WINDOWS_KEY'] + ) + obj.install_path = os.path.join(bld.env['CONFIGDIR'], 'ardour3') # not modified at present - bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), 'step_editing.bindings') - - # Icons/Images - bld.install_files('${DATADIR}/ardour3/icons', 'icons/*.png') - bld.install_files('${DATADIR}/ardour3/pixmaps', 'pixmaps/*.xpm') - bld.install_files('${DATADIR}/ardour3', 'splash.png') - - # Default UI configuration - bld.install_files('${CONFIGDIR}/ardour3', 'ardour3_ui_default.conf') - - # Default export stuff - bld.install_files('${CONFIGDIR}/ardour3/export', 'export/*.format') - - # i18n - if bld.env['ENABLE_NLS']: - mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) - for mo in mo_files: - lang = os.path.basename (mo).replace ('.mo', '') - bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo) + bld.install_files(os.path.join(bld.env['CONFIGDIR'], 'ardour3'), 'step_editing.bindings') + + # Icons/Images + bld.install_files('${DATADIR}/ardour3/icons', 'icons/*.png') + bld.install_files('${DATADIR}/ardour3/pixmaps', 'pixmaps/*.xpm') + bld.install_files('${DATADIR}/ardour3', 'splash.png') + + # Default UI configuration + bld.install_files('${CONFIGDIR}/ardour3', 'ardour3_ui_default.conf') + + # Default export stuff + bld.install_files('${CONFIGDIR}/ardour3/export', 'export/*.format') + + # i18n + if bld.env['ENABLE_NLS']: + mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) + for mo in mo_files: + lang = os.path.basename (mo).replace ('.mo', '') + bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo) def i18n(bld): - autowaf.build_i18n (bld, srcdir, 'gtk2_ardour', APPNAME, gtk2_ardour_sources) + autowaf.build_i18n (bld, srcdir, 'gtk2_ardour', APPNAME, gtk2_ardour_sources) diff --git a/libs/appleutility/wscript b/libs/appleutility/wscript index 9bcecd06df..2d164a025a 100644 --- a/libs/appleutility/wscript +++ b/libs/appleutility/wscript @@ -2,43 +2,43 @@ import autowaf import os libappleutility_sources = [ - 'AUOutputBL.cpp', - 'AUParamInfo.cpp', - 'CAAudioChannelLayout.cpp', - 'CAAudioChannelLayoutObject.cpp', - 'CAAudioFile.cpp', - 'CAAudioUnit.cpp', - 'CAAUParameter.cpp', - 'CABufferList.cpp', - 'CACFDictionary.cpp', - 'CACFNumber.cpp', - 'CACFString.cpp', - 'CAComponent.cpp', - 'CAComponentDescription.cpp', - 'CADebugMacros.cpp', - 'CAStreamBasicDescription.cpp', - 'CAXException.cpp' + 'AUOutputBL.cpp', + 'AUParamInfo.cpp', + 'CAAudioChannelLayout.cpp', + 'CAAudioChannelLayoutObject.cpp', + 'CAAudioFile.cpp', + 'CAAudioUnit.cpp', + 'CAAUParameter.cpp', + 'CABufferList.cpp', + 'CACFDictionary.cpp', + 'CACFNumber.cpp', + 'CACFString.cpp', + 'CAComponent.cpp', + 'CAComponentDescription.cpp', + 'CADebugMacros.cpp', + 'CAStreamBasicDescription.cpp', + 'CAXException.cpp' ] def set_options(opt): - autowaf.set_options(opt) - + autowaf.set_options(opt) + def configure(conf): - autowaf.configure(conf) - + autowaf.configure(conf) + def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.uselib = 'AUDIOUNITS OSX' - obj.source = libappleutility_sources - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libappleutility' - obj.target = 'appleutility' - obj.install_path = os.path.join(bld.env['LIBDIR'], 'appleutility') + obj = bld.new_task_gen('cxx', 'shlib') + obj.uselib = 'AUDIOUNITS OSX' + obj.source = libappleutility_sources + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libappleutility' + obj.target = 'appleutility' + obj.install_path = os.path.join(bld.env['LIBDIR'], 'appleutility') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() def i18n(bld): - pass + pass diff --git a/libs/ardour/wscript b/libs/ardour/wscript index 46ad56ed70..8f06330771 100644 --- a/libs/ardour/wscript +++ b/libs/ardour/wscript @@ -32,359 +32,359 @@ blddir = 'build' path_prefix = 'libs/ardour/' libardour_sources = [ - 'amp.cc', - 'analyser.cc', - 'audio_buffer.cc', - 'audio_diskstream.cc', - 'audio_library.cc', - 'audio_playlist.cc', - 'audio_playlist_importer.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', - 'beats_frames_converter.cc', - 'broadcast_info.cc', - 'buffer.cc', - 'buffer_manager.cc', - 'buffer_set.cc', - 'bundle.cc', - 'butler.cc', + 'amp.cc', + 'analyser.cc', + 'audio_buffer.cc', + 'audio_diskstream.cc', + 'audio_library.cc', + 'audio_playlist.cc', + 'audio_playlist_importer.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', + 'beats_frames_converter.cc', + 'broadcast_info.cc', + 'buffer.cc', + 'buffer_manager.cc', + 'buffer_set.cc', + 'bundle.cc', + 'butler.cc', 'callback.cc', 'capturing_processor.cc', - 'chan_count.cc', - 'chan_mapping.cc', - 'configuration.cc', - 'config_text.cc', - 'control_protocol_manager.cc', - 'control_protocol_search_path.cc', - 'crossfade.cc', - 'cycle_timer.cc', - 'default_click.cc', - 'debug.cc', - 'delivery.cc', - 'directory_names.cc', - 'diskstream.cc', - 'element_import_handler.cc', - 'element_importer.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', - 'gain.cc', - 'globals.cc', - 'graph.cc', - 'graphnode.cc', - 'import.cc', - 'internal_return.cc', - 'internal_send.cc', - 'interpolation.cc', - 'io.cc', - 'io_processor.cc', - 'jack_slave.cc', - 'ladspa_plugin.cc', - 'location.cc', - 'location_importer.cc', - 'meter.cc', - 'midi_automation_list_binder.cc', - 'midi_buffer.cc', - 'midi_clock_slave.cc', - 'midi_diskstream.cc', - 'midi_model.cc', - 'midi_patch_manager.cc', - 'midi_playlist.cc', - 'midi_port.cc', - 'midi_region.cc', - 'midi_ring_buffer.cc', - 'midi_source.cc', - 'midi_state_tracker.cc', - 'midi_stretch.cc', - 'midi_track.cc', - 'midi_ui.cc', - 'mix.cc', + 'chan_count.cc', + 'chan_mapping.cc', + 'configuration.cc', + 'config_text.cc', + 'control_protocol_manager.cc', + 'control_protocol_search_path.cc', + 'crossfade.cc', + 'cycle_timer.cc', + 'default_click.cc', + 'debug.cc', + 'delivery.cc', + 'directory_names.cc', + 'diskstream.cc', + 'element_import_handler.cc', + 'element_importer.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', + 'gain.cc', + 'globals.cc', + 'graph.cc', + 'graphnode.cc', + 'import.cc', + 'internal_return.cc', + 'internal_send.cc', + 'interpolation.cc', + 'io.cc', + 'io_processor.cc', + 'jack_slave.cc', + 'ladspa_plugin.cc', + 'location.cc', + 'location_importer.cc', + 'meter.cc', + 'midi_automation_list_binder.cc', + 'midi_buffer.cc', + 'midi_clock_slave.cc', + 'midi_diskstream.cc', + 'midi_model.cc', + 'midi_patch_manager.cc', + 'midi_playlist.cc', + 'midi_port.cc', + 'midi_region.cc', + 'midi_ring_buffer.cc', + 'midi_source.cc', + 'midi_state_tracker.cc', + 'midi_stretch.cc', + 'midi_track.cc', + 'midi_ui.cc', + 'mix.cc', 'monitor_processor.cc', - 'mtc_slave.cc', - 'mtdm.cc', - 'mute_master.cc', - 'named_selection.cc', - 'onset_detector.cc', - 'operations.cc', + 'mtc_slave.cc', + 'mtdm.cc', + 'mute_master.cc', + 'named_selection.cc', + 'onset_detector.cc', + 'operations.cc', 'pan_controllable.cc', 'pannable.cc', 'panner.cc', 'panner_manager.cc', 'panner_search_path.cc', 'panner_shell.cc', - 'pcm_utils.cc', - 'pi_controller.cc', - 'playlist.cc', - 'playlist_factory.cc', - 'plugin.cc', - 'plugin_insert.cc', - 'plugin_manager.cc', - 'port.cc', - 'port_insert.cc', - 'port_set.cc', - 'process_thread.cc', - 'processor.cc', - 'progress.cc', - 'quantize.cc', - 'rc_configuration.cc', - 'recent_sessions.cc', - 'region_factory.cc', - 'resampled_source.cc', - 'region.cc', - 'return.cc', - 'reverse.cc', - 'route.cc', - 'route_group.cc', - 'route_group_member.cc', - 'rb_effect.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_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', - 'session_utils.cc', - 'slave.cc', - 'smf_source.cc', - 'sndfile_helpers.cc', - 'sndfileimportable.cc', - 'sndfilesource.cc', - 'source.cc', - 'source_factory.cc', + 'pcm_utils.cc', + 'pi_controller.cc', + 'playlist.cc', + 'playlist_factory.cc', + 'plugin.cc', + 'plugin_insert.cc', + 'plugin_manager.cc', + 'port.cc', + 'port_insert.cc', + 'port_set.cc', + 'process_thread.cc', + 'processor.cc', + 'progress.cc', + 'quantize.cc', + 'rc_configuration.cc', + 'recent_sessions.cc', + 'region_factory.cc', + 'resampled_source.cc', + 'region.cc', + 'return.cc', + 'reverse.cc', + 'route.cc', + 'route_group.cc', + 'route_group_member.cc', + 'rb_effect.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_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', + 'session_utils.cc', + 'slave.cc', + 'smf_source.cc', + 'sndfile_helpers.cc', + 'sndfileimportable.cc', + 'sndfilesource.cc', + 'source.cc', + 'source_factory.cc', 'speakers.cc', - 'strip_silence.cc', - 'svn_revision.cc', - 'tape_file_matcher.cc', - 'template_utils.cc', - 'tempo.cc', - 'tempo_map_importer.cc', + 'strip_silence.cc', + 'svn_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', - 'unknown_processor.cc', - 'user_bundle.cc', - 'utils.cc', - 'version.cc' + 'ticker.cc', + 'track.cc', + 'transient_detector.cc', + 'unknown_processor.cc', + 'user_bundle.cc', + 'utils.cc', + 'version.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 + 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 + 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 set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.build_version_files(path_prefix+'ardour/version.h', path_prefix+'version.cc', - 'libardour3', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx gas') - autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', atleast_version='0.3.2') - autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') - autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') - autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF', atleast_version='0.4.0') - 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') - autowaf.check_pkg(conf, 'slv2', uselib_store='SLV2', atleast_version='0.6.4', mandatory=False) - autowaf.check_pkg(conf, 'slv2', uselib_store='NEW_SLV2', atleast_version='0.7.0', mandatory=False) - autowaf.check_pkg(conf, 'rasqal', uselib_store='RASQAL', atleast_version='0.9.14', mandatory=False) - 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') + autowaf.build_version_files(path_prefix+'ardour/version.h', path_prefix+'version.cc', + 'libardour3', MAJOR, MINOR, MICRO) + autowaf.configure(conf) + conf.check_tool('compiler_cxx gas') + autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', atleast_version='0.3.2') + autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') + autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') + autowaf.check_pkg(conf, 'lrdf', uselib_store='LRDF', atleast_version='0.4.0') + 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') + autowaf.check_pkg(conf, 'slv2', uselib_store='SLV2', atleast_version='0.6.4', mandatory=False) + autowaf.check_pkg(conf, 'slv2', uselib_store='NEW_SLV2', atleast_version='0.7.0', mandatory=False) + autowaf.check_pkg(conf, 'rasqal', uselib_store='RASQAL', atleast_version='0.9.14', mandatory=False) + 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') - # we don't try to detect this, since its part of our source tree + # we don't try to detect this, since its part of our source tree - conf.define('HAVE_RUBBERBAND', 1) # controls whether we think we have it - conf.define('USE_RUBBERBAND', 1) # controls whether we actually use it + conf.define('HAVE_RUBBERBAND', 1) # controls whether we think we have it + conf.define('USE_RUBBERBAND', 1) # controls whether we actually use it - conf.define('CURRENT_SESSION_FILE_VERSION', CURRENT_SESSION_FILE_VERSION) + conf.define('CURRENT_SESSION_FILE_VERSION', CURRENT_SESSION_FILE_VERSION) - conf.check(header_name='sys/vfs.h', define_name='HAVE_SYS_VFS_H') - conf.check(header_name='wordexp.h', define_name='HAVE_WORDEXP') + conf.check(header_name='sys/vfs.h', define_name='HAVE_SYS_VFS_H') + conf.check(header_name='wordexp.h', define_name='HAVE_WORDEXP') - conf.check(header_name='jack/session.h', define_name='HAVE_JACK_SESSION') + conf.check(header_name='jack/session.h', define_name='HAVE_JACK_SESSION') - conf.check(header_name='unistd.h', define_name='HAVE_UNISTD') + conf.check(header_name='unistd.h', define_name='HAVE_UNISTD') - conf.check_cc(fragment = "#include \nvoid callback (int code, const char* reason, void* arg) { return; }\nint main(int argc, char **argv) { jack_client_t* c; jack_on_info_shutdown (c, callback, (void*) 0); return 0; }\n", + conf.check_cc(fragment = "#include \nvoid callback (int code, const char* reason, void* arg) { return; }\nint main(int argc, char **argv) { jack_client_t* c; jack_on_info_shutdown (c, callback, (void*) 0); return 0; }\n", linkflags = ['-ljack'], - msg = 'Checking for jack_on_info_shutdown', + msg = 'Checking for jack_on_info_shutdown', define_name = 'HAVE_JACK_ON_INFO_SHUTDOWN', - okmsg = 'present') + okmsg = 'present') - conf.check_cc(fragment = "#include \nint main(int argc, char **argv) { jack_port_t* p; jack_latency_range_t r; jack_port_set_latency_range (p, JackCaptureLatency, &r); return 0; }\n", + conf.check_cc(fragment = "#include \nint main(int argc, char **argv) { jack_port_t* p; jack_latency_range_t r; jack_port_set_latency_range (p, JackCaptureLatency, &r); return 0; }\n", linkflags = ['-ljack'], - msg = 'Checking for new JACK latency API', - okmsg = 'present', + msg = 'Checking for new JACK latency API', + okmsg = 'present', mandatory = True, errmsg = 'missing - a version of JACK that supports jack_port_set_latency_range() is required to compile Ardour3') - conf.check_cc(fragment = '#include \nint main(int argc, char **argv) { jack_port_type_get_buffer_size ((jack_client_t*)0, ""); }\n', + conf.check_cc(fragment = '#include \nint main(int argc, char **argv) { jack_port_type_get_buffer_size ((jack_client_t*)0, ""); }\n', linkflags = ['-ljack'], - msg = 'Checking for new jack_port_type_get_buffer_size', + msg = 'Checking for new jack_port_type_get_buffer_size', okmsg = 'present', mandatory = True, - errmsg = 'missing - a version of JACK that supports jack_port_type_get_buffer_size() is required to compile Ardour3') + errmsg = 'missing - a version of JACK that supports jack_port_type_get_buffer_size() is required to compile Ardour3') - if flac_supported(): - conf.define ('HAVE_FLAC', 1) - if ogg_supported(): - conf.define ('HAVE_OGG', 1) + if flac_supported(): + conf.define ('HAVE_FLAC', 1) + if ogg_supported(): + conf.define ('HAVE_OGG', 1) - conf.write_config_header('libardour-config.h') + conf.write_config_header('libardour-config.h') - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') - autowaf.check_header(conf, 'boost/scoped_ptr.hpp') - autowaf.check_header(conf, 'boost/ptr_container/ptr_list.hpp') + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') + autowaf.check_header(conf, 'boost/scoped_ptr.hpp') + autowaf.check_header(conf, 'boost/ptr_container/ptr_list.hpp') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = libardour_sources - obj.export_incdirs = ['.'] - obj.includes = ['.', '../surfaces/control_protocol', '..'] - obj.name = 'libardour' - obj.target = 'ardour' - obj.uselib = 'GLIBMM GTHREAD AUBIO SIGCPP XML UUID JACK SNDFILE SAMPLERATE LRDF AUDIOUNIT OSX BOOST CURL DL' - obj.uselib_local = 'libpbd libmidipp libevoral libvamphost libvampplugin libtaglib librubberband libaudiographer' - obj.vnum = LIBARDOUR_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.cxxflags = ['-DPACKAGE="libardour3"'] - obj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] - obj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] - obj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] - obj.cxxflags += ['-DLOCALEDIR="' + os.path.join( - os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] - obj.cxxflags += ['-DVAMP_DIR="' + os.path.join( - os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'] - obj.cxxflags += ['-DPROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'] + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = libardour_sources + obj.export_incdirs = ['.'] + obj.includes = ['.', '../surfaces/control_protocol', '..'] + obj.name = 'libardour' + obj.target = 'ardour' + obj.uselib = 'GLIBMM GTHREAD AUBIO SIGCPP XML UUID JACK SNDFILE SAMPLERATE LRDF AUDIOUNIT OSX BOOST CURL DL' + obj.uselib_local = 'libpbd libmidipp libevoral libvamphost libvampplugin libtaglib librubberband libaudiographer' + obj.vnum = LIBARDOUR_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.cxxflags = ['-DPACKAGE="libardour3"'] + obj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] + obj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] + obj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] + obj.cxxflags += ['-DLOCALEDIR="' + os.path.join( + os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] + obj.cxxflags += ['-DVAMP_DIR="' + os.path.join( + os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'] + obj.cxxflags += ['-DPROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'] - #obj.source += ' st_stretch.cc st_pitch.cc ' - #obj.uselib += ' SOUNDTOUCH ' - #obj.add_objects = 'default/libs/surfaces/control_protocol/smpte_1.o' - - if bld.env['HAVE_SLV2']: - obj.source += [ 'lv2_plugin.cc', 'lv2_event_buffer.cc', 'uri_map.cc', 'lv2_pfile.c' ] - obj.uselib += ' SLV2 ' + ' RASQAL ' - - if bld.env['VST_SUPPORT']: - obj.source += [ 'vst_plugin.cc', 'session_vst.cc' ] - obj.includes += [ '../fst' ] - obj.cxxflags += [ '-DVST_SUPPORT' ] + #obj.source += ' st_stretch.cc st_pitch.cc ' + #obj.uselib += ' SOUNDTOUCH ' + #obj.add_objects = 'default/libs/surfaces/control_protocol/smpte_1.o' + + if bld.env['HAVE_SLV2']: + obj.source += [ 'lv2_plugin.cc', 'lv2_event_buffer.cc', 'uri_map.cc', 'lv2_pfile.c' ] + obj.uselib += ' SLV2 ' + ' RASQAL ' + + if bld.env['VST_SUPPORT']: + obj.source += [ 'vst_plugin.cc', 'session_vst.cc' ] + obj.includes += [ '../fst' ] + obj.cxxflags += [ '-DVST_SUPPORT' ] - if bld.env['COREAUDIO']: - obj.source += [ 'coreaudiosource.cc', 'caimportable.cc' ] - obj.uselib_local += ' libappleutility' - obj.source += [ 'audio_unit.cc' ] + if bld.env['COREAUDIO']: + obj.source += [ 'coreaudiosource.cc', 'caimportable.cc' ] + obj.uselib_local += ' libappleutility' + obj.source += [ 'audio_unit.cc' ] - if bld.env['FPU_OPTIMIZATION']: - if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686': + if bld.env['FPU_OPTIMIZATION']: + if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686': obj.source += [ 'sse_functions_xmm.cc', 'sse_functions.s' ] - elif bld.env['build_target'] == 'x86_64': + elif bld.env['build_target'] == 'x86_64': obj.source += [ 'sse_functions_xmm.cc', 'sse_functions_64bit.s' ] - # i18n - if bld.env['ENABLE_NLS']: - mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) - for mo in mo_files: - lang = os.path.basename (mo).replace ('.mo', '') - bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo) + # i18n + if bld.env['ENABLE_NLS']: + mo_files = glob.glob (os.path.join (bld.get_curdir(), 'po/*.mo')) + for mo in mo_files: + lang = os.path.basename (mo).replace ('.mo', '') + bld.install_as (os.path.join (bld.env['PREFIX'], 'share', 'locale', lang, 'LC_MESSAGES', APPNAME + '.mo'), mo) - if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: - # Unit tests - testobj = bld.new_task_gen('cxx', 'program') - testobj.source = ''' - test/bbt_test.cpp - test/interpolation_test.cpp - test/midi_clock_slave_test.cpp - test/resampled_source.cc - test/mantis_3356.cc - test/testrunner.cpp - '''.split() - testobj.includes = obj.includes + ['test', '../pbd'] - testobj.uselib = 'CPPUNIT SIGCPP JACK GLIBMM GTHREAD SAMPLERATE XML LRDF COREAUDIO' - testobj.uselib_local = 'libpbd libmidipp libardour' - testobj.name = 'libardour-tests' - testobj.target = 'run-tests' - testobj.install_path = '' - testobj.cxxflags = ['-DPACKAGE="libardour3test"'] - testobj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] - testobj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] - testobj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] - testobj.cxxflags += ['-DLOCALEDIR="' + os.path.join( - os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] - testobj.cxxflags += ['-DVAMP_DIR="' + os.path.join( - os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'] - if bld.env['FPU_OPTIMIZATION']: - testobj.source += [ 'sse_functions_xmm.cc' ] - if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686': - testobj.source += [ 'sse_functions.s' ] - elif bld.env['build_target'] == 'x86_64': - testobj.source += [ 'sse_functions_64bit.s' ] + if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: + # Unit tests + testobj = bld.new_task_gen('cxx', 'program') + testobj.source = ''' + test/bbt_test.cpp + test/interpolation_test.cpp + test/midi_clock_slave_test.cpp + test/resampled_source.cc + test/mantis_3356.cc + test/testrunner.cpp + '''.split() + testobj.includes = obj.includes + ['test', '../pbd'] + testobj.uselib = 'CPPUNIT SIGCPP JACK GLIBMM GTHREAD SAMPLERATE XML LRDF COREAUDIO' + testobj.uselib_local = 'libpbd libmidipp libardour' + testobj.name = 'libardour-tests' + testobj.target = 'run-tests' + testobj.install_path = '' + testobj.cxxflags = ['-DPACKAGE="libardour3test"'] + testobj.cxxflags += ['-DDATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"'] + testobj.cxxflags += ['-DCONFIG_DIR="' + os.path.normpath(bld.env['CONFIGDIR']) + '"'] + testobj.cxxflags += ['-DMODULE_DIR="' + os.path.normpath(bld.env['LIBDIR']) + '"'] + testobj.cxxflags += ['-DLOCALEDIR="' + os.path.join( + os.path.normpath(bld.env['DATADIR']), 'locale') + '"'] + testobj.cxxflags += ['-DVAMP_DIR="' + os.path.join( + os.path.normpath(bld.env['LIBDIR']), 'ardour3', 'vamp') + '"'] + if bld.env['FPU_OPTIMIZATION']: + testobj.source += [ 'sse_functions_xmm.cc' ] + if bld.env['build_target'] == 'i386' or bld.env['build_target'] == 'i686': + testobj.source += [ 'sse_functions.s' ] + elif bld.env['build_target'] == 'x86_64': + testobj.source += [ 'sse_functions_64bit.s' ] def shutdown(): - autowaf.shutdown() + autowaf.shutdown() def i18n(bld): - autowaf.build_i18n (bld, '..', 'libs/ardour', APPNAME, libardour_sources) + autowaf.build_i18n (bld, '..', 'libs/ardour', APPNAME, libardour_sources) diff --git a/libs/audiographer/wscript b/libs/audiographer/wscript index e25df5ec95..856f8be119 100644 --- a/libs/audiographer/wscript +++ b/libs/audiographer/wscript @@ -23,97 +23,97 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - - conf.check_tool('compiler_cxx') - - autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) - autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0', mandatory=False) - autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=False) - autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=False) - autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=False) - autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE', atleast_version='0.1.7', mandatory=False) - autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18', mandatory=False) - - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/format.hpp') + autowaf.configure(conf) + + conf.check_tool('compiler_cxx') + + autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) + autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0', mandatory=False) + autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2', mandatory=False) + autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0', mandatory=False) + autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0', mandatory=False) + autowaf.check_pkg(conf, 'samplerate', uselib_store='SAMPLERATE', atleast_version='0.1.7', mandatory=False) + autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18', mandatory=False) + + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/format.hpp') def build(bld): - # Headers - #bld.install_files('${INCLUDEDIR}/audiographer', 'audiographer/*.h') - #bld.install_files('${INCLUDEDIR}/audiographer/general', 'audiographer/general/*.h') - #bld.install_files('${INCLUDEDIR}/audiographer/sndfile', 'audiographer/sndfile/*.h') - #bld.install_files('${INCLUDEDIR}/audiographer/utils', 'audiographer/utils/*.h') - - #bld.env['BUILD_TESTS'] = True - bld.env['HAVE_ALL_GTHREAD'] = bld.env['HAVE_GLIB'] and bld.env['HAVE_GLIBMM'] and bld.env['HAVE_GTHREAD'] + # Headers + #bld.install_files('${INCLUDEDIR}/audiographer', 'audiographer/*.h') + #bld.install_files('${INCLUDEDIR}/audiographer/general', 'audiographer/general/*.h') + #bld.install_files('${INCLUDEDIR}/audiographer/sndfile', 'audiographer/sndfile/*.h') + #bld.install_files('${INCLUDEDIR}/audiographer/utils', 'audiographer/utils/*.h') + + #bld.env['BUILD_TESTS'] = True + bld.env['HAVE_ALL_GTHREAD'] = bld.env['HAVE_GLIB'] and bld.env['HAVE_GLIBMM'] and bld.env['HAVE_GTHREAD'] - audiographer = bld.new_task_gen('cxx', 'shlib') - audiographer.source = ''' - private/gdither/gdither.cc - src/general/sample_format_converter.cc - src/routines.cc - src/debug_utils.cc - src/general/broadcast_info.cc - ''' - - if bld.env['HAVE_SAMPLERATE']: - audiographer.source += ''' - src/general/sr_converter.cc - ''' - - audiographer.name = 'libaudiographer' - audiographer.target = 'audiographer' - audiographer.export_incdirs = ['.', './src'] - audiographer.includes = ['.', './src'] - audiographer.uselib = 'GLIB GLIBMM GTHREAD SAMPLERATE SNDFILE' - audiographer.uselib_local = 'libpbd' - audiographer.vnum = AUDIOGRAPHER_LIB_VERSION - audiographer.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - + audiographer = bld.new_task_gen('cxx', 'shlib') + audiographer.source = ''' + private/gdither/gdither.cc + src/general/sample_format_converter.cc + src/routines.cc + src/debug_utils.cc + src/general/broadcast_info.cc + ''' + + if bld.env['HAVE_SAMPLERATE']: + audiographer.source += ''' + src/general/sr_converter.cc + ''' + + audiographer.name = 'libaudiographer' + audiographer.target = 'audiographer' + audiographer.export_incdirs = ['.', './src'] + audiographer.includes = ['.', './src'] + audiographer.uselib = 'GLIB GLIBMM GTHREAD SAMPLERATE SNDFILE' + audiographer.uselib_local = 'libpbd' + audiographer.vnum = AUDIOGRAPHER_LIB_VERSION + audiographer.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + - if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: - # Unit tests - obj = bld.new_task_gen('cxx', 'program') - obj.source = ''' - tests/test_runner.cc - tests/type_utils_test.cc - tests/utils/identity_vertex_test.cc - tests/general/interleaver_test.cc - tests/general/deinterleaver_test.cc - tests/general/interleaver_deinterleaver_test.cc - tests/general/chunker_test.cc - tests/general/sample_format_converter_test.cc - tests/general/peak_reader_test.cc - tests/general/normalizer_test.cc - tests/general/silence_trimmer_test.cc - ''' - - if bld.env['HAVE_ALL_GTHREAD']: - obj.source += ''' - tests/general/threader_test.cc - ''' - - if bld.env['HAVE_SNDFILE']: - obj.source += ''' - tests/sndfile/tmp_file_test.cc - ''' + if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: + # Unit tests + obj = bld.new_task_gen('cxx', 'program') + obj.source = ''' + tests/test_runner.cc + tests/type_utils_test.cc + tests/utils/identity_vertex_test.cc + tests/general/interleaver_test.cc + tests/general/deinterleaver_test.cc + tests/general/interleaver_deinterleaver_test.cc + tests/general/chunker_test.cc + tests/general/sample_format_converter_test.cc + tests/general/peak_reader_test.cc + tests/general/normalizer_test.cc + tests/general/silence_trimmer_test.cc + ''' + + if bld.env['HAVE_ALL_GTHREAD']: + obj.source += ''' + tests/general/threader_test.cc + ''' + + if bld.env['HAVE_SNDFILE']: + obj.source += ''' + tests/sndfile/tmp_file_test.cc + ''' - if bld.env['HAVE_SAMPLERATE']: - obj.source += ''' - tests/general/sr_converter_test.cc - ''' - - obj.uselib_local = 'libaudiographer' - obj.uselib = 'CPPUNIT GLIBMM' - obj.target = 'run-tests' - obj.install_path = '' + if bld.env['HAVE_SAMPLERATE']: + obj.source += ''' + tests/general/sr_converter_test.cc + ''' + + obj.uselib_local = 'libaudiographer' + obj.uselib = 'CPPUNIT GLIBMM' + obj.target = 'run-tests' + obj.install_path = '' def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/evoral/wscript b/libs/evoral/wscript index 2c9c157bc8..a0c99029a5 100644 --- a/libs/evoral/wscript +++ b/libs/evoral/wscript @@ -23,112 +23,112 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) - opt.add_option('--test', action='store_true', default=False, dest='build_tests', - help="Build unit tests") + autowaf.set_options(opt) + opt.add_option('--test', action='store_true', default=False, dest='build_tests', + help="Build unit tests") def configure(conf): - autowaf.configure(conf) - #autowaf.display_header('Evoral Configuration') - - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) - autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2') - autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0') - autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0') - - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') - - conf.env['BUILD_TESTS'] = Options.options.build_tests - - #autowaf.display_msg(conf, "Unit tests", str(conf.env['BUILD_TESTS'])) - #print + autowaf.configure(conf) + #autowaf.display_header('Evoral Configuration') + + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) + autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2') + autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0') + autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.14.0') + + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') + + conf.env['BUILD_TESTS'] = Options.options.build_tests + + #autowaf.display_msg(conf, "Unit tests", str(conf.env['BUILD_TESTS'])) + #print def build(bld): - # Headers - #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.h') - #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.hpp') - - # Pkgconfig file - #autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD') - - libsmf = bld.new_task_gen('cc', 'shlib') - libsmf.source = ''' - src/libsmf/smf.c - src/libsmf/smf_decode.c - src/libsmf/smf_load.c - src/libsmf/smf_save.c - src/libsmf/smf_tempo.c - ''' - libsmf.export_incdirs = ['./src/libsmf'] - libsmf.defines = 'SMF_VERSION="1.2"' - libsmf.includes = ['./src'] - libsmf.name = 'libsmf' - libsmf.target = 'smf' - libsmf.uselib = 'GLIB' - libsmf.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - - lib_source = ''' - src/Control.cpp - src/ControlList.cpp - src/ControlSet.cpp - src/Curve.cpp - src/Event.cpp - src/midi_util.cpp - src/MIDIEvent.cpp - src/Note.cpp - src/SMF.cpp - src/Sequence.cpp + # Headers + #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.h') + #bld.install_files('${INCLUDEDIR}/evoral', 'evoral/*.hpp') + + # Pkgconfig file + #autowaf.build_pc(bld, 'EVORAL', EVORAL_VERSION, 'GLIBMM GTHREAD') + + libsmf = bld.new_task_gen('cc', 'shlib') + libsmf.source = ''' + src/libsmf/smf.c + src/libsmf/smf_decode.c + src/libsmf/smf_load.c + src/libsmf/smf_save.c + src/libsmf/smf_tempo.c + ''' + libsmf.export_incdirs = ['./src/libsmf'] + libsmf.defines = 'SMF_VERSION="1.2"' + libsmf.includes = ['./src'] + libsmf.name = 'libsmf' + libsmf.target = 'smf' + libsmf.uselib = 'GLIB' + libsmf.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + + lib_source = ''' + src/Control.cpp + src/ControlList.cpp + src/ControlSet.cpp + src/Curve.cpp + src/Event.cpp + src/midi_util.cpp + src/MIDIEvent.cpp + src/Note.cpp + src/SMF.cpp + src/Sequence.cpp src/debug.cpp - ''' - - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = lib_source - obj.export_incdirs = ['.'] - obj.includes = ['.', './src'] - obj.name = 'libevoral' - obj.target = 'evoral' - obj.uselib = 'GLIBMM GTHREAD SMF' - obj.uselib_local = 'libsmf libpbd' - obj.vnum = EVORAL_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - - if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: - # Static library (for unit test code coverage) - obj = bld.new_task_gen('cxx', 'staticlib') - obj.source = lib_source - obj.source = lib_source - obj.export_incdirs = ['.'] - obj.includes = ['.', './src'] - obj.name = 'libevoral_static' - obj.target = 'evoral_static' - obj.uselib = 'GLIBMM GTHREAD SMF' - obj.uselib_local = 'libsmf libpbd' - obj.vnum = EVORAL_LIB_VERSION - obj.install_path = '' - obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] - obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] - - # Unit tests - obj = bld.new_task_gen('cxx', 'program') - obj.source = ''' - test/SequenceTest.cpp - test/SMFTest.cpp - test/testrunner.cpp - ''' - obj.includes = ['.', './src'] - obj.uselib_local = 'libevoral_static' - obj.uselib = 'CPPUNIT SNDFILE' - obj.libs = 'gcov' - obj.target = 'run-tests' - obj.name = 'libevoral-tests' - obj.install_path = '' - obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] - obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] + ''' + + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = lib_source + obj.export_incdirs = ['.'] + obj.includes = ['.', './src'] + obj.name = 'libevoral' + obj.target = 'evoral' + obj.uselib = 'GLIBMM GTHREAD SMF' + obj.uselib_local = 'libsmf libpbd' + obj.vnum = EVORAL_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + + if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: + # Static library (for unit test code coverage) + obj = bld.new_task_gen('cxx', 'staticlib') + obj.source = lib_source + obj.source = lib_source + obj.export_incdirs = ['.'] + obj.includes = ['.', './src'] + obj.name = 'libevoral_static' + obj.target = 'evoral_static' + obj.uselib = 'GLIBMM GTHREAD SMF' + obj.uselib_local = 'libsmf libpbd' + obj.vnum = EVORAL_LIB_VERSION + obj.install_path = '' + obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] + obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] + + # Unit tests + obj = bld.new_task_gen('cxx', 'program') + obj.source = ''' + test/SequenceTest.cpp + test/SMFTest.cpp + test/testrunner.cpp + ''' + obj.includes = ['.', './src'] + obj.uselib_local = 'libevoral_static' + obj.uselib = 'CPPUNIT SNDFILE' + obj.libs = 'gcov' + obj.target = 'run-tests' + obj.name = 'libevoral-tests' + obj.install_path = '' + obj.ccflags = [ '-fprofile-arcs', '-ftest-coverage' ] + obj.cxxflags = [ '-fprofile-arcs', '-ftest-coverage' ] def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/gnomecanvas/wscript b/libs/gnomecanvas/wscript index 346b79921c..96dbce8630 100644 --- a/libs/gnomecanvas/wscript +++ b/libs/gnomecanvas/wscript @@ -42,26 +42,26 @@ libgnomecanvas_sources = [ ] def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cc') - autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.18') - autowaf.check_pkg(conf, 'libart-2.0', uselib_store='LIBART', atleast_version='2.3') + autowaf.configure(conf) + conf.check_tool('compiler_cc') + autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.18') + autowaf.check_pkg(conf, 'libart-2.0', uselib_store='LIBART', atleast_version='2.3') def build(bld): - # Library - obj = bld.new_task_gen('cc', 'shlib') - obj.source = libgnomecanvas_sources - obj.export_incdirs = ['.'] + # Library + obj = bld.new_task_gen('cc', 'shlib') + obj.source = libgnomecanvas_sources + obj.export_incdirs = ['.'] obj.includes = ['.'] - obj.name = 'libgnomecanvas-2' - obj.target = 'gnomecanvas-2' - obj.uselib = 'GLIB GTK LIBART' - obj.vnum = LIBGNOMECANVAS_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.name = 'libgnomecanvas-2' + obj.target = 'gnomecanvas-2' + obj.uselib = 'GLIB GTK LIBART' + obj.vnum = LIBGNOMECANVAS_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/gtkmm2ext/wscript b/libs/gtkmm2ext/wscript index b4617af506..c310683677 100644 --- a/libs/gtkmm2ext/wscript +++ b/libs/gtkmm2ext/wscript @@ -19,42 +19,42 @@ APPNAME = 'gtkmm2ext' VERSION = GTKMM2EXT_VERSION gtkmm2ext_sources = [ - 'actions.cc', + 'actions.cc', 'application.cc', - 'auto_spin.cc', - 'barcontroller.cc', - 'binding_proxy.cc', - 'bindable_button.cc', + 'auto_spin.cc', + 'barcontroller.cc', + 'binding_proxy.cc', + 'bindable_button.cc', 'bindings.cc', - 'cell_renderer_pixbuf_multi.cc', - 'cell_renderer_pixbuf_toggle.cc', - 'choice.cc', - 'click_box.cc', - 'debug.cc', - 'dndtreeview.cc', - 'fastmeter.cc', - 'focus_entry.cc', - 'grouped_buttons.cc', - 'gtk_ui.cc', + 'cell_renderer_pixbuf_multi.cc', + 'cell_renderer_pixbuf_toggle.cc', + 'choice.cc', + 'click_box.cc', + 'debug.cc', + 'dndtreeview.cc', + 'fastmeter.cc', + 'focus_entry.cc', + 'grouped_buttons.cc', + 'gtk_ui.cc', 'gtkapplication.c', - 'idle_adjustment.cc', - 'keyboard.cc', + 'idle_adjustment.cc', + 'keyboard.cc', 'motionfeedback.cc', 'prolooks_helpers.c', - 'pixfader.cc', - 'pixscroller.cc', - 'popup.cc', - 'prompter.cc', - 'scroomer.cc', - 'selector.cc', - 'slider_controller.cc', - 'stateful_button.cc', - 'tearoff.cc', - 'textviewer.cc', + 'pixfader.cc', + 'pixscroller.cc', + 'popup.cc', + 'prompter.cc', + 'scroomer.cc', + 'selector.cc', + 'slider_controller.cc', + 'stateful_button.cc', + 'tearoff.cc', + 'textviewer.cc', 'treeutils.cc', - 'utils.cc', - 'version.cc', - 'window_title.cc' + 'utils.cc', + 'version.cc', + 'window_title.cc' ] # Mandatory variables @@ -64,37 +64,37 @@ blddir = 'build' path_prefix = 'libs/gtkmm2ext/' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.build_version_files(path_prefix+'gtkmm2ext/version.h', path_prefix+'version.cc', - 'libgtkmm2ext', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.8') - autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.12.1') + autowaf.build_version_files(path_prefix+'gtkmm2ext/version.h', path_prefix+'version.cc', + 'libgtkmm2ext', MAJOR, MINOR, MICRO) + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.8') + autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.12.1') def build(bld): - obj = bld.new_task_gen(features = 'cc cxx cshlib') - obj.source = gtkmm2ext_sources - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libgtkmm2ext' - obj.target = 'gtkmm2ext' - obj.uselib = 'GTKMM GTK GTKOSX OSX GDK' - obj.uselib_local = 'libpbd' - obj.vnum = GTKMM2EXT_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.cxxflags = [ - '-DPACKAGE="libgtkmm2ext"', - '-DLOCALEDIR="' + os.path.join( - os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '"'] - if bld.env['GTKOSX']: - obj.source += ['gtkapplication_quartz.mm'] - else: + obj = bld.new_task_gen(features = 'cc cxx cshlib') + obj.source = gtkmm2ext_sources + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libgtkmm2ext' + obj.target = 'gtkmm2ext' + obj.uselib = 'GTKMM GTK GTKOSX OSX GDK' + obj.uselib_local = 'libpbd' + obj.vnum = GTKMM2EXT_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.cxxflags = [ + '-DPACKAGE="libgtkmm2ext"', + '-DLOCALEDIR="' + os.path.join( + os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '"'] + if bld.env['GTKOSX']: + obj.source += ['gtkapplication_quartz.mm'] + else: obj.source += ['gtkapplication_x11.c'] def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/midi++2/wscript b/libs/midi++2/wscript index d5d7fdef83..14da1afccb 100644 --- a/libs/midi++2/wscript +++ b/libs/midi++2/wscript @@ -26,46 +26,46 @@ blddir = 'build' path_prefix = 'libs/midi++2/' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc', - 'midipp', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') - autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') - autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') + autowaf.build_version_files(path_prefix+'midi++/version.h', path_prefix+'version.cc', + 'midipp', MAJOR, MINOR, MICRO) + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'jack', uselib_store='JACK', atleast_version='0.118.2') + autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') + autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - midi.cc - channel.cc - manager.cc - parser.cc - port.cc - midnam_patch.cc - mmc.cc - mtc.cc - version.cc - ''' - # everybody loves JACK - obj.cxxflags = [ '-DWITH_JACK_MIDI' ] - obj.export_incdirs = ['.'] - obj.includes = ['.', '../surfaces/control_protocol'] - obj.name = 'libmidipp' - obj.target = 'midipp' - obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' - obj.uselib_local = 'libpbd libevoral libtimecode' - obj.vnum = LIBMIDIPP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + midi.cc + channel.cc + manager.cc + parser.cc + port.cc + midnam_patch.cc + mmc.cc + mtc.cc + version.cc + ''' + # everybody loves JACK + obj.cxxflags = [ '-DWITH_JACK_MIDI' ] + obj.export_incdirs = ['.'] + obj.includes = ['.', '../surfaces/control_protocol'] + obj.name = 'libmidipp' + obj.target = 'midipp' + obj.uselib = 'GLIBMM SIGCPP XML JACK OSX' + obj.uselib_local = 'libpbd libevoral libtimecode' + obj.vnum = LIBMIDIPP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/panners/1in2out/wscript b/libs/panners/1in2out/wscript index e7e4d29928..14af0d6781 100644 --- a/libs/panners/1in2out/wscript +++ b/libs/panners/1in2out/wscript @@ -13,23 +13,23 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = [ 'panner_1in2out.cc' ] - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="libardour_pan1in2out"' - obj.includes = ['.'] - obj.name = 'libardour_pan1in2out' - obj.target = 'pan1in2out' - obj.uselib_local = 'libardour libardour_cp libpbd' - obj.vnum = LIBARDOUR_PAN1IN2OUT_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = [ 'panner_1in2out.cc' ] + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="libardour_pan1in2out"' + obj.includes = ['.'] + obj.name = 'libardour_pan1in2out' + obj.target = 'pan1in2out' + obj.uselib_local = 'libardour libardour_cp libpbd' + obj.vnum = LIBARDOUR_PAN1IN2OUT_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/panners/2in2out/wscript b/libs/panners/2in2out/wscript index 22d5c03726..060796c045 100644 --- a/libs/panners/2in2out/wscript +++ b/libs/panners/2in2out/wscript @@ -13,23 +13,23 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = [ 'panner_2in2out.cc' ] - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="libardour_pan2in2out"' - obj.includes = ['.'] - obj.name = 'libardour_pan2in2out' - obj.target = 'pan2in2out' - obj.uselib_local = 'libardour libardour_cp libpbd' - obj.vnum = LIBARDOUR_PAN2IN2OUT_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = [ 'panner_2in2out.cc' ] + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="libardour_pan2in2out"' + obj.includes = ['.'] + obj.name = 'libardour_pan2in2out' + obj.target = 'pan2in2out' + obj.uselib_local = 'libardour libardour_cp libpbd' + obj.vnum = LIBARDOUR_PAN2IN2OUT_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/panners/vbap/wscript b/libs/panners/vbap/wscript index 1399039483..47fbcbb8b1 100644 --- a/libs/panners/vbap/wscript +++ b/libs/panners/vbap/wscript @@ -13,23 +13,23 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = [ 'vbap_speakers.cc', 'vbap.cc' ] - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="libardour_panvbap"' - obj.includes = ['.'] - obj.name = 'libardour_panvbap' - obj.target = 'panvbap' - obj.uselib_local = 'libardour libardour_cp libpbd' - obj.vnum = LIBARDOUR_PANVBAP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = [ 'vbap_speakers.cc', 'vbap.cc' ] + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="libardour_panvbap"' + obj.includes = ['.'] + obj.name = 'libardour_panvbap' + obj.target = 'panvbap' + obj.uselib_local = 'libardour libardour_cp libpbd' + obj.vnum = LIBARDOUR_PANVBAP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'panners') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/panners/wscript b/libs/panners/wscript index 192f27b7db..02e741b8e0 100644 --- a/libs/panners/wscript +++ b/libs/panners/wscript @@ -9,18 +9,18 @@ blddir = 'build' panners = [ '2in2out', '1in2out', 'vbap' ] def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def sub_config_and_use(conf, name, has_objects = True): - conf.sub_config(name) - autowaf.set_local_lib(conf, name, has_objects) + conf.sub_config(name) + autowaf.set_local_lib(conf, name, has_objects) def configure(conf): - autowaf.set_recursive() - autowaf.configure(conf) + autowaf.set_recursive() + autowaf.configure(conf) - for i in panners: - sub_config_and_use(conf, i) + for i in panners: + sub_config_and_use(conf, i) def build(bld): for i in panners: diff --git a/libs/pbd/wscript b/libs/pbd/wscript index ee1ad31508..9a35a22e1e 100644 --- a/libs/pbd/wscript +++ b/libs/pbd/wscript @@ -27,121 +27,121 @@ blddir = 'build' path_prefix = 'libs/pbd/' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.build_version_files(path_prefix+'pbd/version.h', path_prefix+'version.cc', - 'libpbd', MAJOR, MINOR, MICRO) - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') - autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') + autowaf.build_version_files(path_prefix+'pbd/version.h', path_prefix+'version.cc', + 'libpbd', MAJOR, MINOR, MICRO) + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'libxml-2.0', uselib_store='XML') + autowaf.check_pkg(conf, 'sigc++-2.0', uselib_store='SIGCPP', atleast_version='2.0') if sys.platform != 'darwin': autowaf.check_pkg(conf, 'uuid', uselib_store='UUID') - conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT') - conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO') - conf.check(header_name='unistd.h', define_name='HAVE_UNISTD') - if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', ccflags='-D_XOPEN_SOURCE=600') == False: - conf.define ('NO_POSIX_MEMALIGN',1) + conf.check(function_name='getmntent', header_name='mntent.h', define_name='HAVE_GETMNTENT') + conf.check(header_name='execinfo.h', define_name='HAVE_EXECINFO') + conf.check(header_name='unistd.h', define_name='HAVE_UNISTD') + if conf.check_cc(function_name='posix_memalign', header_name='stdlib.h', ccflags='-D_XOPEN_SOURCE=600') == False: + conf.define ('NO_POSIX_MEMALIGN',1) - conf.write_config_header('libpbd-config.h') + conf.write_config_header('libpbd-config.h') - # Boost headers - autowaf.check_header(conf, 'boost/shared_ptr.hpp') - autowaf.check_header(conf, 'boost/weak_ptr.hpp') - # autowaf.check_header(conf, 'boost/uuid/uuid.hpp') + # Boost headers + autowaf.check_header(conf, 'boost/shared_ptr.hpp') + autowaf.check_header(conf, 'boost/weak_ptr.hpp') + # autowaf.check_header(conf, 'boost/uuid/uuid.hpp') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - basename.cc - base_ui.cc + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + basename.cc + base_ui.cc boost_debug.cc cartesian.cc - command.cc - convert.cc - controllable.cc - controllable_descriptor.cc + command.cc + convert.cc + controllable.cc + controllable_descriptor.cc clear_dir.cc crossthread.cc cpus.cc debug.cc - enumwriter.cc + enumwriter.cc event_loop.cc - dmalloc.cc + dmalloc.cc enums.cc epa.cc - error.cc - filesystem.cc - filesystem_paths.cc - file_manager.cc - file_utils.cc - fpu.cc - id.cc + error.cc + filesystem.cc + filesystem_paths.cc + file_manager.cc + file_utils.cc + fpu.cc + id.cc locale_guard.cc malign.cc - mountpoint.cc + mountpoint.cc openuri.cc - pathscanner.cc - pool.cc + pathscanner.cc + pool.cc property_list.cc - pthread_utils.cc - receiver.cc - search_path.cc - semutils.cc - shortpath.cc - signals.cc + pthread_utils.cc + receiver.cc + search_path.cc + semutils.cc + shortpath.cc + signals.cc sndfile_manager.cc - stacktrace.cc - stateful_diff_command.cc - stateful.cc - strreplace.cc - strsplit.cc - textreceiver.cc - transmitter.cc - undo.cc - uuid.cc - version.cc - whitespace.cc - xml++.cc - ''' - - if bld.env['DEBUG_RT_ALLOC']: - obj.source += 'debug_rt_alloc.c' - - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libpbd' - obj.target = 'pbd' - obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE' - if sys.platform == 'darwin': - TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc'] - obj.source += 'cocoa_open_uri.mm' - obj.uselib += ' OSX' - obj.vnum = LIBPBD_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.cxxflags = ['-DPACKAGE="libpbd"'] - - if bld.env['build_target'] == 'x86_64': - obj.cxxflags += [ '-DUSE_X86_64_ASM' ] - - if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: - # Unit tests - testobj = bld.new_task_gen('cxx', 'program') - testobj.source = ''' + stacktrace.cc + stateful_diff_command.cc + stateful.cc + strreplace.cc + strsplit.cc + textreceiver.cc + transmitter.cc + undo.cc + uuid.cc + version.cc + whitespace.cc + xml++.cc + ''' + + if bld.env['DEBUG_RT_ALLOC']: + obj.source += 'debug_rt_alloc.c' + + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libpbd' + obj.target = 'pbd' + obj.uselib = 'GLIBMM SIGCPP XML UUID SNDFILE' + if sys.platform == 'darwin': + TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc'] + obj.source += 'cocoa_open_uri.mm' + obj.uselib += ' OSX' + obj.vnum = LIBPBD_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.cxxflags = ['-DPACKAGE="libpbd"'] + + if bld.env['build_target'] == 'x86_64': + obj.cxxflags += [ '-DUSE_X86_64_ASM' ] + + if bld.env['BUILD_TESTS'] and bld.env['HAVE_CPPUNIT']: + # Unit tests + testobj = bld.new_task_gen('cxx', 'program') + testobj.source = ''' test/testrunner.cc - test/xpath.cc + test/xpath.cc test/scalar_properties.cc - test/signals_test.cc - '''.split() - testobj.target = 'run-tests' - testobj.includes = obj.includes + ['test', '../pbd'] - testobj.uselib = 'CPPUNIT XML SNDFILE' - testobj.uselib_local = 'libpbd' + test/signals_test.cc + '''.split() + testobj.target = 'run-tests' + testobj.includes = obj.includes + ['test', '../pbd'] + testobj.uselib = 'CPPUNIT XML SNDFILE' + testobj.uselib_local = 'libpbd' def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/qm-dsp/wscript b/libs/qm-dsp/wscript index 99ce4fdf87..232f010235 100644 --- a/libs/qm-dsp/wscript +++ b/libs/qm-dsp/wscript @@ -20,40 +20,40 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cxx') + autowaf.configure(conf) + conf.check_tool('compiler_cxx') def build(bld): - # Host Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - dsp/onsets/DetectionFunction.cpp - dsp/onsets/PeakPicking.cpp - dsp/phasevocoder/PhaseVocoder.cpp - dsp/rateconversion/Decimator.cpp - dsp/rhythm/BeatSpectrum.cpp - dsp/signalconditioning/DFProcess.cpp - dsp/signalconditioning/Filter.cpp - dsp/signalconditioning/FiltFilt.cpp - dsp/signalconditioning/Framer.cpp - dsp/transforms/FFT.cpp - dsp/wavelet/Wavelet.cpp - maths/Correlation.cpp - maths/CosineDistance.cpp - maths/KLDivergence.cpp - maths/MathUtilities.cpp - base/Pitch.cpp - ''' - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libqmdsp' - obj.target = 'qmdsp' - obj.vnum = QM_DSP_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Host Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + dsp/onsets/DetectionFunction.cpp + dsp/onsets/PeakPicking.cpp + dsp/phasevocoder/PhaseVocoder.cpp + dsp/rateconversion/Decimator.cpp + dsp/rhythm/BeatSpectrum.cpp + dsp/signalconditioning/DFProcess.cpp + dsp/signalconditioning/Filter.cpp + dsp/signalconditioning/FiltFilt.cpp + dsp/signalconditioning/Framer.cpp + dsp/transforms/FFT.cpp + dsp/wavelet/Wavelet.cpp + maths/Correlation.cpp + maths/CosineDistance.cpp + maths/KLDivergence.cpp + maths/MathUtilities.cpp + base/Pitch.cpp + ''' + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libqmdsp' + obj.target = 'qmdsp' + obj.vnum = QM_DSP_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/rubberband/wscript b/libs/rubberband/wscript index 765a807ba8..60dc57dcfd 100644 --- a/libs/rubberband/wscript +++ b/libs/rubberband/wscript @@ -21,30 +21,30 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cxx') + autowaf.configure(conf) + conf.check_tool('compiler_cxx') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - prefix = 'libs/rubberband/' - sources = glob.glob(prefix + 'src/*.cpp') - obj.source = [ ] - for i in sources: - obj.source += [ i.replace(prefix, '') ] - obj.export_incdirs = ['.'] - obj.includes = ['.', 'rubberband'] - obj.name = 'librubberband' - obj.target = 'rubberband' - obj.uselib = 'FFTW3 FFTW3F SAMPLERATE SNDFILE' - obj.uselib_local = 'libvamphost' - obj.vnum = LIBRUBBERBAND_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - obj.cxxflags = '-DPACKAGE="librubberband"' + # Library + obj = bld.new_task_gen('cxx', 'shlib') + prefix = 'libs/rubberband/' + sources = glob.glob(prefix + 'src/*.cpp') + obj.source = [ ] + for i in sources: + obj.source += [ i.replace(prefix, '') ] + obj.export_incdirs = ['.'] + obj.includes = ['.', 'rubberband'] + obj.name = 'librubberband' + obj.target = 'rubberband' + obj.uselib = 'FFTW3 FFTW3F SAMPLERATE SNDFILE' + obj.uselib_local = 'libvamphost' + obj.vnum = LIBRUBBERBAND_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj.cxxflags = '-DPACKAGE="librubberband"' def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/control_protocol/wscript b/libs/surfaces/control_protocol/wscript index 94e5ef1359..6dc2e55447 100644 --- a/libs/surfaces/control_protocol/wscript +++ b/libs/surfaces/control_protocol/wscript @@ -14,26 +14,26 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - basic_ui.cc - control_protocol.cc - ''' - obj.export_incdirs = ['.', './control_protocol' ] - obj.cxxflags = '-DPACKAGE="ardour_cp"' - obj.includes = ['.', './control_protocol'] - obj.name = 'libardour_cp' - obj.target = 'ardourcp' - obj.uselib_local = 'libardour libtimecode' - obj.vnum = LIBARDOUR_CP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + basic_ui.cc + control_protocol.cc + ''' + obj.export_incdirs = ['.', './control_protocol' ] + obj.cxxflags = '-DPACKAGE="ardour_cp"' + obj.includes = ['.', './control_protocol'] + obj.name = 'libardour_cp' + obj.target = 'ardourcp' + obj.uselib_local = 'libardour libtimecode' + obj.vnum = LIBARDOUR_CP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/frontier/wscript b/libs/surfaces/frontier/wscript index 652dafe825..6c383aa072 100644 --- a/libs/surfaces/frontier/wscript +++ b/libs/surfaces/frontier/wscript @@ -20,28 +20,28 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - # Generic MIDI - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - generic_midi_control_protocol.cc - interface.cc - midicontrollable.cc - ''' - obj.export_incdirs = ['./generic_midi'] - obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' - obj.includes = ['.', './generic_midi'] - obj.name = 'libgeneric_midi' - obj.target = 'generic_midi' - obj.uselib_local = 'libardour libsurfaces' - obj.vnum = LIBSURFACES_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + # Generic MIDI + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + generic_midi_control_protocol.cc + interface.cc + midicontrollable.cc + ''' + obj.export_incdirs = ['./generic_midi'] + obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' + obj.includes = ['.', './generic_midi'] + obj.name = 'libgeneric_midi' + obj.target = 'generic_midi' + obj.uselib_local = 'libardour libsurfaces' + obj.vnum = LIBSURFACES_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/generic_midi/wscript b/libs/surfaces/generic_midi/wscript index 8471830766..4cc97edb52 100644 --- a/libs/surfaces/generic_midi/wscript +++ b/libs/surfaces/generic_midi/wscript @@ -13,32 +13,32 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - generic_midi_control_protocol.cc + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + generic_midi_control_protocol.cc gmcp_gui.cc - interface.cc - midiinvokable.cc - midicontrollable.cc - midifunction.cc - midiaction.cc - ''' - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' - obj.includes = ['.', './generic_midi'] - obj.name = 'libardour_generic_midi' - obj.target = 'ardour_generic_midi' - obj.uselib = 'GTKMM GTK GDK' - obj.uselib_local = 'libardour libardour_cp libgtkmm2ext libpbd' - obj.vnum = LIBARDOUR_GENERIC_MIDI_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + interface.cc + midiinvokable.cc + midicontrollable.cc + midifunction.cc + midiaction.cc + ''' + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="ardour_genericmidi"' + obj.includes = ['.', './generic_midi'] + obj.name = 'libardour_generic_midi' + obj.target = 'ardour_generic_midi' + obj.uselib = 'GTKMM GTK GDK' + obj.uselib_local = 'libardour libardour_cp libgtkmm2ext libpbd' + obj.vnum = LIBARDOUR_GENERIC_MIDI_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/mackie/wscript b/libs/surfaces/mackie/wscript index 4ef5995dc2..3935b22546 100644 --- a/libs/surfaces/mackie/wscript +++ b/libs/surfaces/mackie/wscript @@ -13,42 +13,42 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - bcf_surface.cc - bcf_surface_generated.cc - controls.cc - dummy_port.cc - interface.cc - mackie_button_handler.cc - mackie_control_protocol.cc - mackie_control_protocol_poll.cc - mackie_jog_wheel.cc - mackie_midi_builder.cc - mackie_port.cc - mackie_surface.cc - mackie_surface_generated.cc - midi_byte_array.cc - route_signal.cc - surface.cc - surface_port.cc - types.cc - ''' - obj.export_incdirs = ['./mackie'] - obj.cxxflags = '-DPACKAGE="ardour_mackie"' - obj.includes = ['.', './mackie'] - obj.name = 'libardour_mcp' - obj.target = 'ardour_mcp' - obj.uselib_local = 'libardour libardour_cp' - obj.vnum = LIBARDOUR_MCP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + bcf_surface.cc + bcf_surface_generated.cc + controls.cc + dummy_port.cc + interface.cc + mackie_button_handler.cc + mackie_control_protocol.cc + mackie_control_protocol_poll.cc + mackie_jog_wheel.cc + mackie_midi_builder.cc + mackie_port.cc + mackie_surface.cc + mackie_surface_generated.cc + midi_byte_array.cc + route_signal.cc + surface.cc + surface_port.cc + types.cc + ''' + obj.export_incdirs = ['./mackie'] + obj.cxxflags = '-DPACKAGE="ardour_mackie"' + obj.includes = ['.', './mackie'] + obj.name = 'libardour_mcp' + obj.target = 'ardour_mcp' + obj.uselib_local = 'libardour libardour_cp' + obj.vnum = LIBARDOUR_MCP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/osc/wscript b/libs/surfaces/osc/wscript index 9a09ff1630..b25c849ab0 100644 --- a/libs/surfaces/osc/wscript +++ b/libs/surfaces/osc/wscript @@ -13,30 +13,30 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - autowaf.check_pkg(conf, 'liblo', uselib_store='LO', linkflags='-llo') + autowaf.configure(conf) + autowaf.check_pkg(conf, 'liblo', uselib_store='LO', linkflags='-llo') def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - osc.cc - osc_controllable.cc - osc_route_observer.cc - interface.cc - ''' - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_cp"' - obj.includes = ['.', './osc'] - obj.name = 'libardour_osc' - obj.target = 'osc' - obj.uselib = ' LO ' - obj.uselib_local = 'libardour libardour_cp libpbd' - obj.vnum = LIBARDOUR_OSC_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + osc.cc + osc_controllable.cc + osc_route_observer.cc + interface.cc + ''' + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="ardour_cp"' + obj.includes = ['.', './osc'] + obj.name = 'libardour_osc' + obj.target = 'osc' + obj.uselib = ' LO ' + obj.uselib_local = 'libardour libardour_cp libpbd' + obj.vnum = LIBARDOUR_OSC_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/powermate/wscript b/libs/surfaces/powermate/wscript index 1aea8b652b..5f670737bf 100644 --- a/libs/surfaces/powermate/wscript +++ b/libs/surfaces/powermate/wscript @@ -13,26 +13,26 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - interface.cc - powermate.cc - ''' - obj.export_incdirs = ['.'] - obj.cxxflags = '-DPACKAGE="ardour_powermate"' - obj.includes = ['.' ] - obj.name = 'libpowermate' - obj.target = 'powermate' - obj.uselib_local = 'libardour libardour_cp' - obj.vnum = LIBARDOUR_POWERMATE_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + interface.cc + powermate.cc + ''' + obj.export_incdirs = ['.'] + obj.cxxflags = '-DPACKAGE="ardour_powermate"' + obj.includes = ['.' ] + obj.name = 'libpowermate' + obj.target = 'powermate' + obj.uselib_local = 'libardour libardour_cp' + obj.vnum = LIBARDOUR_POWERMATE_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/tranzport/wscript b/libs/surfaces/tranzport/wscript index 172f51d37e..f2c4ccc0fc 100644 --- a/libs/surfaces/tranzport/wscript +++ b/libs/surfaces/tranzport/wscript @@ -13,40 +13,40 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - button_events.cc - buttons.cc - general.cc - init.cc - interface.cc - io.cc - io_usb.cc - lcd.cc - lights.cc - mode.cc - panner.cc - screen.cc - show.cc - state.cc - wheel.cc - wheel_modes.cc - ''' - obj.export_incdirs = ['./tranzport'] - obj.cxxflags = '-DPACKAGE="ardour_tranzport"' - obj.includes = ['.', './tranzport'] - obj.name = 'libardour_tranzport' - obj.target = 'ardour_tranzport' - obj.uselib_local = 'libardour libardour_cp' - obj.vnum = LIBARDOUR_TRANZPORT_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + button_events.cc + buttons.cc + general.cc + init.cc + interface.cc + io.cc + io_usb.cc + lcd.cc + lights.cc + mode.cc + panner.cc + screen.cc + show.cc + state.cc + wheel.cc + wheel_modes.cc + ''' + obj.export_incdirs = ['./tranzport'] + obj.cxxflags = '-DPACKAGE="ardour_tranzport"' + obj.includes = ['.', './tranzport'] + obj.name = 'libardour_tranzport' + obj.target = 'ardour_tranzport' + obj.uselib_local = 'libardour libardour_cp' + obj.vnum = LIBARDOUR_TRANZPORT_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/wiimote/wscript b/libs/surfaces/wiimote/wscript index edfb3ad901..8923df7015 100644 --- a/libs/surfaces/wiimote/wscript +++ b/libs/surfaces/wiimote/wscript @@ -13,26 +13,26 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) def build(bld): - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - wiimote.cc - interface.cc - ''' - obj.export_incdirs = ['./wiimote'] - obj.cxxflags = '-DPACKAGE="ardour_wiimote"' - obj.includes = ['.', './wiimote'] - obj.name = 'libwiimote' - obj.target = 'wiimote' - obj.uselib_local = 'libardour libardour_cp' - obj.vnum = LIBARDOUR_WIIMOTE_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + wiimote.cc + interface.cc + ''' + obj.export_incdirs = ['./wiimote'] + obj.cxxflags = '-DPACKAGE="ardour_wiimote"' + obj.includes = ['.', './wiimote'] + obj.name = 'libwiimote' + obj.target = 'wiimote' + obj.uselib_local = 'libardour libardour_cp' + obj.vnum = LIBARDOUR_WIIMOTE_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'surfaces') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/surfaces/wscript b/libs/surfaces/wscript index f9e68f48f9..9bac418696 100644 --- a/libs/surfaces/wscript +++ b/libs/surfaces/wscript @@ -20,58 +20,58 @@ srcdir = '.' blddir = 'build' children = [ - 'control_protocol', - 'frontier', - 'generic_midi', - 'mackie', - 'osc', - 'powermate', - 'tranzport', - 'wiimote' + 'control_protocol', + 'frontier', + 'generic_midi', + 'mackie', + 'osc', + 'powermate', + 'tranzport', + 'wiimote' ] def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def sub_config_and_use(conf, name, has_objects = True): - conf.sub_config(name) - autowaf.set_local_lib(conf, name, has_objects) + conf.sub_config(name) + autowaf.set_local_lib(conf, name, has_objects) def configure(conf): - autowaf.set_recursive() - autowaf.configure(conf) + autowaf.set_recursive() + autowaf.configure(conf) - for i in children: - sub_config_and_use(conf, i) + for i in children: + sub_config_and_use(conf, i) - conf.check_cc (lib='libusb', header_name='libusb.h', function_name='usb_interrupt_write', define_name='BUILD_TRANZPORT') - conf.check_cc (header_name='linux/input.h', define_name='BUILD_POWERMATE') - conf.check_cc (lib='lo', header_name='lo/lo.h', function_name='lo_server_new', define_name='BUILD_OSC') - - if Options.options.wiimote: - conf.check_cc (header_name='cwiid.h',define_name='HAVE_CWIID_H') - if not conf.env['HAVE_CWIID_H']: - print('WIIMOTE configured but you are missing libcwiid!') - sys.exit(1) - conf.check_cc (header_name='bluetooth/bluetooth.h',define_name='HAVE_BLUETOOTH_H') - if not conf.env['HAVE_BLUETOOTH_H']: - print('WIIMOTE configured but you are missing the libbluetooth headers needed to compile wiimote support!') - sys.exit(1) - conf.define ('BUILD_WIIMOTE', 1) + conf.check_cc (lib='libusb', header_name='libusb.h', function_name='usb_interrupt_write', define_name='BUILD_TRANZPORT') + conf.check_cc (header_name='linux/input.h', define_name='BUILD_POWERMATE') + conf.check_cc (lib='lo', header_name='lo/lo.h', function_name='lo_server_new', define_name='BUILD_OSC') + + if Options.options.wiimote: + conf.check_cc (header_name='cwiid.h',define_name='HAVE_CWIID_H') + if not conf.env['HAVE_CWIID_H']: + print('WIIMOTE configured but you are missing libcwiid!') + sys.exit(1) + conf.check_cc (header_name='bluetooth/bluetooth.h',define_name='HAVE_BLUETOOTH_H') + if not conf.env['HAVE_BLUETOOTH_H']: + print('WIIMOTE configured but you are missing the libbluetooth headers needed to compile wiimote support!') + sys.exit(1) + conf.define ('BUILD_WIIMOTE', 1) def build(bld): - bld.add_subdirs('control_protocol') - bld.add_subdirs('generic_midi') - bld.add_subdirs('mackie') - if bld.env['BUILD_OSC']: - bld.add_subdirs('osc') - if bld.env['BUILD_POWERMATE']: - bld.add_subdirs('powermate') - if bld.env['BUILD_WIIMOTE']: - bld.add_subdirs('wiimote') - if bld.env['BUILD_TRANZPORT']: - bld.add_subdirs('tranzport') + bld.add_subdirs('control_protocol') + bld.add_subdirs('generic_midi') + bld.add_subdirs('mackie') + if bld.env['BUILD_OSC']: + bld.add_subdirs('osc') + if bld.env['BUILD_POWERMATE']: + bld.add_subdirs('powermate') + if bld.env['BUILD_WIIMOTE']: + bld.add_subdirs('wiimote') + if bld.env['BUILD_TRANZPORT']: + bld.add_subdirs('tranzport') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/taglib/wscript b/libs/taglib/wscript index 8b15a78ed1..0732dc24ff 100644 --- a/libs/taglib/wscript +++ b/libs/taglib/wscript @@ -23,57 +23,57 @@ blddir = 'build' path_prefix = 'libs/taglib/' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cxx') + autowaf.configure(conf) + conf.check_tool('compiler_cxx') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - sources = glob.glob(path_prefix + 'taglib/*.cpp') - sources += glob.glob(path_prefix + 'taglib/flac/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpc/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v1/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/*.cpp') - sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/frames/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/vorbis/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/speex/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ogg/flac/*.cpp') - sources += glob.glob(path_prefix + 'taglib/trueaudio/*.cpp') - sources += glob.glob(path_prefix + 'taglib/wavpack/*.cpp') - sources += glob.glob(path_prefix + 'taglib/ape/*.cpp') - sources += glob.glob(path_prefix + 'taglib/toolkit/*.cpp') - obj.source = [] - for i in sources: - obj.source += [ i.replace(path_prefix, '') ] + # Library + obj = bld.new_task_gen('cxx', 'shlib') + sources = glob.glob(path_prefix + 'taglib/*.cpp') + sources += glob.glob(path_prefix + 'taglib/flac/*.cpp') + sources += glob.glob(path_prefix + 'taglib/mpc/*.cpp') + sources += glob.glob(path_prefix + 'taglib/mpeg/*.cpp') + sources += glob.glob(path_prefix + 'taglib/mpeg/id3v1/*.cpp') + sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/*.cpp') + sources += glob.glob(path_prefix + 'taglib/mpeg/id3v2/frames/*.cpp') + sources += glob.glob(path_prefix + 'taglib/ogg/*.cpp') + sources += glob.glob(path_prefix + 'taglib/ogg/vorbis/*.cpp') + sources += glob.glob(path_prefix + 'taglib/ogg/speex/*.cpp') + sources += glob.glob(path_prefix + 'taglib/ogg/flac/*.cpp') + sources += glob.glob(path_prefix + 'taglib/trueaudio/*.cpp') + sources += glob.glob(path_prefix + 'taglib/wavpack/*.cpp') + sources += glob.glob(path_prefix + 'taglib/ape/*.cpp') + sources += glob.glob(path_prefix + 'taglib/toolkit/*.cpp') + obj.source = [] + for i in sources: + obj.source += [ i.replace(path_prefix, '') ] - include_dirs = ''' - taglib - taglib/toolkit - taglib/flac - taglib/ape - taglib/mpc - taglib/mpeg - taglib/mpeg/id3v1 - taglib/mpeg/id3v2 - taglib/wavpack - taglib/trueaudio - taglib/ogg - taglib/ogg/vorbis - taglib/ogg/speex - taglib/ogg/flac - '''.split() - obj.export_incdirs = ['.', 'taglib', 'taglib/toolkit'] - obj.includes = include_dirs - obj.name = 'libtaglib' - obj.target = 'taglib' - obj.vnum = LIBTAGLIB_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + include_dirs = ''' + taglib + taglib/toolkit + taglib/flac + taglib/ape + taglib/mpc + taglib/mpeg + taglib/mpeg/id3v1 + taglib/mpeg/id3v2 + taglib/wavpack + taglib/trueaudio + taglib/ogg + taglib/ogg/vorbis + taglib/ogg/speex + taglib/ogg/flac + '''.split() + obj.export_incdirs = ['.', 'taglib', 'taglib/toolkit'] + obj.includes = include_dirs + obj.name = 'libtaglib' + obj.target = 'taglib' + obj.vnum = LIBTAGLIB_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/timecode/wscript b/libs/timecode/wscript index 4eb3c66c8f..4e5b12fc6e 100644 --- a/libs/timecode/wscript +++ b/libs/timecode/wscript @@ -23,24 +23,24 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) + autowaf.configure(conf) - conf.check_tool('compiler_cxx') + conf.check_tool('compiler_cxx') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = [ 'src/time.cc', 'src/bbt_time.cc' ] - obj.export_incdirs = ['.'] - obj.includes = ['.', './src'] - obj.name = 'libtimecode' - obj.target = 'timecode' - obj.vnum = TIMECODE_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = [ 'src/time.cc', 'src/bbt_time.cc' ] + obj.export_incdirs = ['.'] + obj.includes = ['.', './src'] + obj.name = 'libtimecode' + obj.target = 'timecode' + obj.vnum = TIMECODE_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/vamp-plugins/wscript b/libs/vamp-plugins/wscript index b007b55a1d..99de270579 100644 --- a/libs/vamp-plugins/wscript +++ b/libs/vamp-plugins/wscript @@ -20,38 +20,38 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True) - autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', mandatory=False) - conf.write_config_header('libvampplugins-config.h') + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + autowaf.check_pkg(conf, 'fftw3f', uselib_store='FFTW3F', mandatory=True) + autowaf.check_pkg(conf, 'aubio', uselib_store='AUBIO', mandatory=False) + conf.write_config_header('libvampplugins-config.h') def build(bld): - # Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - plugins.cpp - AmplitudeFollower.cpp - OnsetDetect.cpp - PercussionOnsetDetector.cpp - SpectralCentroid.cpp - ZeroCrossing.cpp - ''' - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libardourvampplugins' - obj.target = 'ardourvampplugins' - obj.uselib = 'FFTW3F' - obj.uselib_local = 'libvampplugin libqmdsp' - if bld.env['HAVE_AUBIO']: - obj.source += ' Onset.cpp ' - obj.uselib += ' AUBIO ' - obj.vnum = LIBARDOURVAMPPLUGINS_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'vamp') + # Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + plugins.cpp + AmplitudeFollower.cpp + OnsetDetect.cpp + PercussionOnsetDetector.cpp + SpectralCentroid.cpp + ZeroCrossing.cpp + ''' + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libardourvampplugins' + obj.target = 'ardourvampplugins' + obj.uselib = 'FFTW3F' + obj.uselib_local = 'libvampplugin libqmdsp' + if bld.env['HAVE_AUBIO']: + obj.source += ' Onset.cpp ' + obj.uselib += ' AUBIO ' + obj.vnum = LIBARDOURVAMPPLUGINS_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3', 'vamp') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/libs/vamp-sdk/wscript b/libs/vamp-sdk/wscript index f1b5a3fa92..d35e37b47e 100644 --- a/libs/vamp-sdk/wscript +++ b/libs/vamp-sdk/wscript @@ -20,49 +20,49 @@ srcdir = '.' blddir = 'build' def set_options(opt): - autowaf.set_options(opt) + autowaf.set_options(opt) def configure(conf): - autowaf.configure(conf) - conf.check_tool('compiler_cxx') - 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') + autowaf.configure(conf) + conf.check_tool('compiler_cxx') + 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): - # Host Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - src/vamp-hostsdk/PluginHostAdapter.cpp - src/vamp-hostsdk/PluginBufferingAdapter.cpp - src/vamp-hostsdk/PluginChannelAdapter.cpp - src/vamp-hostsdk/PluginInputDomainAdapter.cpp - src/vamp-hostsdk/PluginLoader.cpp - src/vamp-hostsdk/PluginWrapper.cpp - src/vamp-hostsdk/RealTime.cpp - ''' - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libvamphost' - obj.target = 'vamphost' - obj.uselib = 'FFTW3 FFTW3F' - obj.vnum = LIBVAMP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Host Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + src/vamp-hostsdk/PluginHostAdapter.cpp + src/vamp-hostsdk/PluginBufferingAdapter.cpp + src/vamp-hostsdk/PluginChannelAdapter.cpp + src/vamp-hostsdk/PluginInputDomainAdapter.cpp + src/vamp-hostsdk/PluginLoader.cpp + src/vamp-hostsdk/PluginWrapper.cpp + src/vamp-hostsdk/RealTime.cpp + ''' + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libvamphost' + obj.target = 'vamphost' + obj.uselib = 'FFTW3 FFTW3F' + obj.vnum = LIBVAMP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') - # Plugin Library - obj = bld.new_task_gen('cxx', 'shlib') - obj.source = ''' - src/vamp-sdk/PluginAdapter.cpp - src/vamp-sdk/RealTime.cpp - ''' - obj.export_incdirs = ['.'] - obj.includes = ['.'] - obj.name = 'libvampplugin' - obj.target = 'vampplugin' - obj.uselib = 'FFTW3 FFTW3F' - obj.vnum = LIBVAMP_LIB_VERSION - obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') + # Plugin Library + obj = bld.new_task_gen('cxx', 'shlib') + obj.source = ''' + src/vamp-sdk/PluginAdapter.cpp + src/vamp-sdk/RealTime.cpp + ''' + obj.export_incdirs = ['.'] + obj.includes = ['.'] + obj.name = 'libvampplugin' + obj.target = 'vampplugin' + obj.uselib = 'FFTW3 FFTW3F' + obj.vnum = LIBVAMP_LIB_VERSION + obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3') def shutdown(): - autowaf.shutdown() + autowaf.shutdown() diff --git a/tools/session_exchange.py b/tools/session_exchange.py index b296e759c0..4248a4242a 100755 --- a/tools/session_exchange.py +++ b/tools/session_exchange.py @@ -29,845 +29,845 @@ import xml.dom.minidom v2paths = True def get_header_size(filename): - size = 0 - file = open(filename, 'r') - while True: - chunk = file.read(4) - size += 4 - if chunk == "data": - file.close() - return size + 4 #include the size chunk after "data" - if not chunk: - file.close() - return None + size = 0 + file = open(filename, 'r') + while True: + chunk = file.read(4) + size += 4 + if chunk == "data": + file.close() + return size + 4 #include the size chunk after "data" + if not chunk: + file.close() + return None def append_empty_data(self, filename, size): - file = open(filename, 'a') - file.seek(size-1) - file.write('\x00') - file.close() - + file = open(filename, 'a') + file.seek(size-1) + file.write('\x00') + file.close() + def get_sound_list(snapshot): - doc = xml.dom.minidom.parse(snapshot) - - regionlist = [] - playlists_tag = doc.getElementsByTagName('Playlists') - playlists = playlists_tag[0].getElementsByTagName('Playlist') - for play in playlists: - regions = play.getElementsByTagName('Region') - for region in regions: - regionlist.append(region.getAttribute('source-0')) - regionlist.append(region.getAttribute('source-1')) - regionlist.append(region.getAttribute('source-2')) - regionlist.append(region.getAttribute('source-3')) - regionlist.append(region.getAttribute('source-4')) - regionlist.append(region.getAttribute('source-5')) - - sourcelist = {} - sources = doc.getElementsByTagName('Source') - for source in sources: - sourcelist[source.getAttribute('id')] = str(source.getAttribute('name')) + doc = xml.dom.minidom.parse(snapshot) + + regionlist = [] + playlists_tag = doc.getElementsByTagName('Playlists') + playlists = playlists_tag[0].getElementsByTagName('Playlist') + for play in playlists: + regions = play.getElementsByTagName('Region') + for region in regions: + regionlist.append(region.getAttribute('source-0')) + regionlist.append(region.getAttribute('source-1')) + regionlist.append(region.getAttribute('source-2')) + regionlist.append(region.getAttribute('source-3')) + regionlist.append(region.getAttribute('source-4')) + regionlist.append(region.getAttribute('source-5')) + + sourcelist = {} + sources = doc.getElementsByTagName('Source') + for source in sources: + sourcelist[source.getAttribute('id')] = str(source.getAttribute('name')) - soundlist = [] - for id in regionlist: - if sourcelist.has_key(id): - soundlist.append(sourcelist[id]) - - return soundlist + soundlist = [] + for id in regionlist: + if sourcelist.has_key(id): + soundlist.append(sourcelist[id]) + + return soundlist def raise_error(string, parent): - dialog = gtk.MessageDialog(parent, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, - gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, string) - - dialog.run() - dialog.destroy() + dialog = gtk.MessageDialog(parent, gtk.DIALOG_MODAL | gtk.DIALOG_DESTROY_WITH_PARENT, + gtk.MESSAGE_WARNING, gtk.BUTTONS_OK, string) + + dialog.run() + dialog.destroy() class Data(object): - def delete_snap(self, session, collab, snap): - sessions = self._data['sessions'] - sessions[session]['collabs'][collab]['snaps'].remove(snap) - self._data['sessions'] = sessions - - def delete_collab(self,session, collab): - sessions = self._data['sessions'] - del sessions[session]['collabs'][collab] - self._data['sessions'] = sessions - - def delete_session(self, session): - sessions = self._data['sessions'] - del sessions[session] - self._data['sessions'] = sessions - - def add_snap(self, session_name, collab_name, snap_name): - sessions = self._data['sessions'] - sessions[session_name]['collabs'][collab_name]['snaps'].append(snap_name) - sessions[session_name]['collabs'][collab_name]['snaps'].sort() - self._data['sessions'] = sessions - - g_display.update_snap_view() - - def add_collab(self, session_name, collab_name, ip_address, port): - sessions = self._data['sessions'] - sessions[session_name]['collabs'][collab_name] = {} - sessions[session_name]['collabs'][collab_name]['snaps'] = [] - sessions[session_name]['collabs'][collab_name]['sounds'] = [] - sessions[session_name]['collabs'][collab_name]['ip'] = ip_address - sessions[session_name]['collabs'][collab_name]['port'] = port - sessions[session_name]['collabs'][collab_name]['v2paths'] = True - self._data['sessions'] = sessions - - client = ExchangeClientFactory(session_name, collab_name, None, self.debug_mode) - reactor.connectTCP(ip_address, port, client) - g_display.show_status("connecting") - - g_display.update_collab_view() - - def add_session(self, session_path): - sessions = self._data['sessions'] - - session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: -1] - sessions[session_name] = {} - sessions[session_name]['path'] = session_path - sessions[session_name]['collabs'] = {} - sessions[session_name]['collabs'][self._data['user']] = {} - sessions[session_name]['collabs'][self._data['user']]['snaps'] = [] - sessions[session_name]['collabs'][self._data['user']]['sounds'] = [] - if os.path.isdir (os.path.join (session_path,'sounds')): - sessions[session_name]['collabs'][self._data['user']]['v2paths'] = False - v2paths = False - else: - sessions[session_name]['collabs'][self._data['user']]['v2paths'] = True - - self._data['sessions'] = sessions - - self.rescan_session(session_name) + def delete_snap(self, session, collab, snap): + sessions = self._data['sessions'] + sessions[session]['collabs'][collab]['snaps'].remove(snap) + self._data['sessions'] = sessions + + def delete_collab(self,session, collab): + sessions = self._data['sessions'] + del sessions[session]['collabs'][collab] + self._data['sessions'] = sessions + + def delete_session(self, session): + sessions = self._data['sessions'] + del sessions[session] + self._data['sessions'] = sessions + + def add_snap(self, session_name, collab_name, snap_name): + sessions = self._data['sessions'] + sessions[session_name]['collabs'][collab_name]['snaps'].append(snap_name) + sessions[session_name]['collabs'][collab_name]['snaps'].sort() + self._data['sessions'] = sessions + + g_display.update_snap_view() + + def add_collab(self, session_name, collab_name, ip_address, port): + sessions = self._data['sessions'] + sessions[session_name]['collabs'][collab_name] = {} + sessions[session_name]['collabs'][collab_name]['snaps'] = [] + sessions[session_name]['collabs'][collab_name]['sounds'] = [] + sessions[session_name]['collabs'][collab_name]['ip'] = ip_address + sessions[session_name]['collabs'][collab_name]['port'] = port + sessions[session_name]['collabs'][collab_name]['v2paths'] = True + self._data['sessions'] = sessions + + client = ExchangeClientFactory(session_name, collab_name, None, self.debug_mode) + reactor.connectTCP(ip_address, port, client) + g_display.show_status("connecting") + + g_display.update_collab_view() + + def add_session(self, session_path): + sessions = self._data['sessions'] + + session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: -1] + sessions[session_name] = {} + sessions[session_name]['path'] = session_path + sessions[session_name]['collabs'] = {} + sessions[session_name]['collabs'][self._data['user']] = {} + sessions[session_name]['collabs'][self._data['user']]['snaps'] = [] + sessions[session_name]['collabs'][self._data['user']]['sounds'] = [] + if os.path.isdir (os.path.join (session_path,'sounds')): + sessions[session_name]['collabs'][self._data['user']]['v2paths'] = False + v2paths = False + else: + sessions[session_name]['collabs'][self._data['user']]['v2paths'] = True + + self._data['sessions'] = sessions + + self.rescan_session(session_name) - def rescan_session(self, session_name): - sessions = self._data['sessions'] - - session_path = sessions[session_name]['path'] - sessions[session_name]['collabs'][self._data['user']]['snaps'] = self._scan_snapshots(session_path) - sessions[session_name]['collabs'][self._data['user']]['sounds'] = self._scan_sounds(session_name) - - self._data['sessions'] = sessions - - g_display.update_snap_view() - - print self._data['sessions'] - - def create_session(self, session_path): - sessions = self._data['sessions'] + def rescan_session(self, session_name): + sessions = self._data['sessions'] + + session_path = sessions[session_name]['path'] + sessions[session_name]['collabs'][self._data['user']]['snaps'] = self._scan_snapshots(session_path) + sessions[session_name]['collabs'][self._data['user']]['sounds'] = self._scan_sounds(session_name) + + self._data['sessions'] = sessions + + g_display.update_snap_view() + + print self._data['sessions'] + + def create_session(self, session_path): + sessions = self._data['sessions'] - session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: ] - try: - os.mkdir(session_path) - os.mkdir(os.path.join (session_path,'interchange')) - os.mkdir(os.path.join (session_path,'interchange',session_name)) - os.mkdir(os.path.join (session_path,'interchange',session_name,'audiofiles')) - except OSError: - raise_error("Could not create session directory", g_display.window) - return - - sessions[session_name] = {} - sessions[session_name]['path'] = session_path - sessions[session_name]['collabs'] = {} - sessions[session_name]['collabs'][self._data['user']] = {} - sessions[session_name]['collabs'][self._data['user']]['snaps'] = [] - sessions[session_name]['collabs'][self._data['user']]['sounds'] = [] - - self._data['sessions'] = sessions - print self._data['sessions'] - - def get_session_path(self, session): - sessions = self._data['sessions'] - return sessions[session]['path'] - - def get_user(self): - return self._data['user'] - - def set_user(self, username): - self._data['user'] = username - - def get_collab_ip(self, session, collab): - sessions = self._data['sessions'] - return sessions[session]['collabs'][collab]['ip'] - - def close(self): - self._data.close() - - def get_sessions(self): - sessions = self._data['sessions'] - sess = sessions.keys() - sess.sort() - return sess - - def get_collabs(self, session): - if session: - sessions = self._data['sessions'] - collabs = sessions[session]['collabs'].keys() - collabs.sort() - return collabs - else: - return [] - - def get_snaps(self, session, collab): - if session and collab: - sessions = self._data['sessions'] - snaps = sessions[session]['collabs'][collab]['snaps'] - snaps.sort() - return snaps - else: - return [] - - def get_sounds(self, session, collab): - if session and collab: - sessions = self._data['sessions'] - sounds = sessions[session]['collabs'][self._data['user']]['sounds'] - sounds.sort() - return sounds - else: - return [] - - def _scan_snapshots(self, session): - snaps = [] - files = os.listdir(session) - pattern = re.compile(r'\.ardour$') - for file in files: - if pattern.search(file): - snaps.append(file[0:-7]) - print file[0:-7] - return snaps - - def _scan_sounds(self, session): - sessions = self._data['sessions'] + session_name = session_path[session_path.rfind('/', 0, len(session_path)-2)+1: ] + try: + os.mkdir(session_path) + os.mkdir(os.path.join (session_path,'interchange')) + os.mkdir(os.path.join (session_path,'interchange',session_name)) + os.mkdir(os.path.join (session_path,'interchange',session_name,'audiofiles')) + except OSError: + raise_error("Could not create session directory", g_display.window) + return + + sessions[session_name] = {} + sessions[session_name]['path'] = session_path + sessions[session_name]['collabs'] = {} + sessions[session_name]['collabs'][self._data['user']] = {} + sessions[session_name]['collabs'][self._data['user']]['snaps'] = [] + sessions[session_name]['collabs'][self._data['user']]['sounds'] = [] + + self._data['sessions'] = sessions + print self._data['sessions'] + + def get_session_path(self, session): + sessions = self._data['sessions'] + return sessions[session]['path'] + + def get_user(self): + return self._data['user'] + + def set_user(self, username): + self._data['user'] = username + + def get_collab_ip(self, session, collab): + sessions = self._data['sessions'] + return sessions[session]['collabs'][collab]['ip'] + + def close(self): + self._data.close() + + def get_sessions(self): + sessions = self._data['sessions'] + sess = sessions.keys() + sess.sort() + return sess + + def get_collabs(self, session): + if session: + sessions = self._data['sessions'] + collabs = sessions[session]['collabs'].keys() + collabs.sort() + return collabs + else: + return [] + + def get_snaps(self, session, collab): + if session and collab: + sessions = self._data['sessions'] + snaps = sessions[session]['collabs'][collab]['snaps'] + snaps.sort() + return snaps + else: + return [] + + def get_sounds(self, session, collab): + if session and collab: + sessions = self._data['sessions'] + sounds = sessions[session]['collabs'][self._data['user']]['sounds'] + sounds.sort() + return sounds + else: + return [] + + def _scan_snapshots(self, session): + snaps = [] + files = os.listdir(session) + pattern = re.compile(r'\.ardour$') + for file in files: + if pattern.search(file): + snaps.append(file[0:-7]) + print file[0:-7] + return snaps + + def _scan_sounds(self, session): + sessions = self._data['sessions'] - sounds = [] - if v2paths: - print session - print os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles') - files = os.listdir(os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles')) - else: - files = os.listdir(os.path.join (session,'sounds')) - pattern = re.compile(r'\.peak$') - for file in files: - if not pattern.search(file): - sounds.append(file) - return sounds - - def __init__(self, *args): - self._data = shelve.open(os.path.expanduser('~/.session_exchange'), 'c') - self.port = 8970 - self.debug_mode = False - if len(self._data.keys()) < 1: - self._data['sessions'] = {} - self._data['user'] = '' - - self._collabs = {} + sounds = [] + if v2paths: + print session + print os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles') + files = os.listdir(os.path.join (sessions[session]['path'],'interchange', session, 'audiofiles')) + else: + files = os.listdir(os.path.join (session,'sounds')) + pattern = re.compile(r'\.peak$') + for file in files: + if not pattern.search(file): + sounds.append(file) + return sounds + + def __init__(self, *args): + self._data = shelve.open(os.path.expanduser('~/.session_exchange'), 'c') + self.port = 8970 + self.debug_mode = False + if len(self._data.keys()) < 1: + self._data['sessions'] = {} + self._data['user'] = '' + + self._collabs = {} from twisted.protocols.basic import FileSender class FileSenderLimited(FileSender): - def beginFileTransfer(self, file, consumer, limit, transform = None): - self.file = file - self.consumer = consumer - self.CHUNK_SIZE = limit - self.transform = transform - - self.consumer.registerProducer(self, False) - self.deferred = defer.Deferred() - return self.deferred - - def resumeProducing(self): - chunk = '' - chunk = self.file.read(self.CHUNK_SIZE) - - if self.transform: - chunk = self.transform(chunk) + def beginFileTransfer(self, file, consumer, limit, transform = None): + self.file = file + self.consumer = consumer + self.CHUNK_SIZE = limit + self.transform = transform + + self.consumer.registerProducer(self, False) + self.deferred = defer.Deferred() + return self.deferred + + def resumeProducing(self): + chunk = '' + chunk = self.file.read(self.CHUNK_SIZE) + + if self.transform: + chunk = self.transform(chunk) - self.consumer.write(chunk) - self.lastSent = chunk[-1] - self.file = None - self.consumer.unregisterProducer() - self.deferred.callback(self.lastSent) - self.deferred = None + self.consumer.write(chunk) + self.lastSent = chunk[-1] + self.file = None + self.consumer.unregisterProducer() + self.deferred.callback(self.lastSent) + self.deferred = None from twisted.protocols.basic import LineReceiver class ExchangeServer (LineReceiver): - def __init__(self): - self.state = "IDLE" - - def error(self, message): - self.sendLine("ERROR") - self.sendLine(message) - self.transport.loseConnection() - - def connectionLost(self, reason): - print "server: connection lost: ", reason - - def connectionMade(self): - print "server: connection made" - - def lineReceived(self, data): - print "server: ", data - - if self.state == "SESSION": - if g_data.get_sessions().count(data): - self.session_name = data - self.state = "IDLE" - self.sendLine("OK") - else: - self.error(data + " doesn't exist on server") - elif self.state == "SNAPSHOT": - if g_data.get_snaps(self.session_name, g_data.get_user()).count(data): - filename = g_data.get_session_path(self.session_name)+data+'.ardour' - print filename - self.sendLine(str(os.stat(filename).st_size)) - self.sendLine("OK") - self.file = open(filename, 'r') - file_sender = FileSender() - cb = file_sender.beginFileTransfer(self.file, self.transport) - cb.addCallback(self.file_done) - else: - self.error("snapshot: " + data + " doesn't exist on server") - elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER": - if g_data.get_sounds(self.session_name, g_data.get_user()).count(data): - filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+data - print filename - if self.state == "SOUNDFILE": - self.sendLine(str(os.stat(filename).st_size)) - else: #SOUNDFILE_HEADER - header_size = get_header_size(filename) - if header_size: - self.sendLine(str(header_size)) - else: - self.error('soundfile: ' + data + 'doesn\'t have "data" chunk') - self.sendLine("OK") - self.file = open(filename, 'r') - if self.state == "SOUNDFILE": - file_sender = FileSender() - cb = file_sender.beginFileTransfer(self.file, self.transport) - else: # SOUNDFILE_HEADER - file_sender = FileSenderLimited() - cb = file_sender.beginFileTransfer(self.file, self.transport, header_size) - cb.addCallback(self.file_done) - else: - self.error("soundfile: " + data + "doesn't exist on server") - elif self.state == "SOUNDFILE_SIZE": - if g_data.get_sounds(self.session_name, g_data.get_user()).count(data): - filename = g_data.get_session_path(self.session_name)+"/sounds/"+data - print filename - self.sendLine(str(os.stat(filename).st_size)) - self.state = "IDLE" - elif data == "SESSION": - self.state = "SESSION" - elif data == "SNAPS": - self.state = "SNAPS" - for snap in g_data.get_snaps(self.session_name, g_data.get_user()): - self.sendLine(snap) - self.sendLine("OK") - self.state = "IDLE" - elif data == "SNAPSHOT": - self.state = "SNAPSHOT" - elif data == "SOUNDFILE": - self.state = "SOUNDFILE" - elif data == "SOUNDFILE_HEADER": - self.state = "SOUNDFILE_HEADER" - elif data == "SOUNDFILE_SIZE": - self.state = "SOUNDFILE_SIZE" - - def file_done(self, data): - print "server: file done" - self.file.close() - self.state = "IDLE" - + def __init__(self): + self.state = "IDLE" + + def error(self, message): + self.sendLine("ERROR") + self.sendLine(message) + self.transport.loseConnection() + + def connectionLost(self, reason): + print "server: connection lost: ", reason + + def connectionMade(self): + print "server: connection made" + + def lineReceived(self, data): + print "server: ", data + + if self.state == "SESSION": + if g_data.get_sessions().count(data): + self.session_name = data + self.state = "IDLE" + self.sendLine("OK") + else: + self.error(data + " doesn't exist on server") + elif self.state == "SNAPSHOT": + if g_data.get_snaps(self.session_name, g_data.get_user()).count(data): + filename = g_data.get_session_path(self.session_name)+data+'.ardour' + print filename + self.sendLine(str(os.stat(filename).st_size)) + self.sendLine("OK") + self.file = open(filename, 'r') + file_sender = FileSender() + cb = file_sender.beginFileTransfer(self.file, self.transport) + cb.addCallback(self.file_done) + else: + self.error("snapshot: " + data + " doesn't exist on server") + elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER": + if g_data.get_sounds(self.session_name, g_data.get_user()).count(data): + filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+data + print filename + if self.state == "SOUNDFILE": + self.sendLine(str(os.stat(filename).st_size)) + else: #SOUNDFILE_HEADER + header_size = get_header_size(filename) + if header_size: + self.sendLine(str(header_size)) + else: + self.error('soundfile: ' + data + 'doesn\'t have "data" chunk') + self.sendLine("OK") + self.file = open(filename, 'r') + if self.state == "SOUNDFILE": + file_sender = FileSender() + cb = file_sender.beginFileTransfer(self.file, self.transport) + else: # SOUNDFILE_HEADER + file_sender = FileSenderLimited() + cb = file_sender.beginFileTransfer(self.file, self.transport, header_size) + cb.addCallback(self.file_done) + else: + self.error("soundfile: " + data + "doesn't exist on server") + elif self.state == "SOUNDFILE_SIZE": + if g_data.get_sounds(self.session_name, g_data.get_user()).count(data): + filename = g_data.get_session_path(self.session_name)+"/sounds/"+data + print filename + self.sendLine(str(os.stat(filename).st_size)) + self.state = "IDLE" + elif data == "SESSION": + self.state = "SESSION" + elif data == "SNAPS": + self.state = "SNAPS" + for snap in g_data.get_snaps(self.session_name, g_data.get_user()): + self.sendLine(snap) + self.sendLine("OK") + self.state = "IDLE" + elif data == "SNAPSHOT": + self.state = "SNAPSHOT" + elif data == "SOUNDFILE": + self.state = "SOUNDFILE" + elif data == "SOUNDFILE_HEADER": + self.state = "SOUNDFILE_HEADER" + elif data == "SOUNDFILE_SIZE": + self.state = "SOUNDFILE_SIZE" + + def file_done(self, data): + print "server: file done" + self.file.close() + self.state = "IDLE" + class ExchangeServerFactory(protocol.ServerFactory): - protocol = ExchangeServer - - def __init__(self): - pass + protocol = ExchangeServer + + def __init__(self): + pass class ExchangeClient (LineReceiver): - def __init__(self, session_name, collab_name, snap_name, debug_mode): - self.session_name = session_name - self.collab_name = collab_name - self.snap_name = snap_name - self.debug_mode = debug_mode - self.state = "IDLE" - - def connectionLost(self, reason): - g_display.show_status("Connection lost") - - def connectionMade(self): - g_display.show_status("Connection made") - self.state = "SESSION" - self.sendLine("SESSION") - self.sendLine(self.session_name) - - def rawDataReceived(self, data): - self.file.write(data) - self.received += len(data) - print self.received, self.filesize - if self.received >= self.filesize: - self.setLineMode() - self.file.close() - g_data.rescan_session(self.session_name) - if self.state == "SNAPSHOT": - self.sounds = get_sound_list(self.filename) - if len(self.sounds): - self.sound_index = 0 - if self.debug_mode: - self.state = "SOUNDFILE_HEADER" - self.sendLine("SOUNDFILE_HEADER") - else: - self.state = "SOUNDFILE" - self.sendLine("SOUNDFILE") - self.sendLine(self.sounds[self.sound_index]) - else: - self.transport.loseConnection() - elif self.state == "SOUNDFILE": - self.sound_index += 1 - if self.sound_index > len(self.sounds)-1: - self.transport.loseConnection() - else: - self.sendLine("SOUNDFILE") - self.sendLine(self.sounds[self.sound_index]) - elif self.state == "SOUNDFILE_HEADER": - self.state = "SOUNDFILE_SIZE" - self.sendLine("SOUNDFILE_SIZE") - self.sendLine(self.sounds[self.sound_index]) - - def lineReceived(self, data): - print "client: ", data - - if data == "ERROR": - self.state = "ERROR" - elif data == "OK": - if self.state == "SESSION": - if self.snap_name: - self.state = "SNAPSHOT" - self.sendLine("SNAPSHOT") - self.sendLine(self.snap_name) - else: - self.state = "SNAPS" - self.sendLine("SNAPS") - elif self.state == "SNAPS": - self.transport.loseConnection() - elif self.state == "SNAPSHOT": - self.setRawMode() - self.filename = g_data.get_session_path(self.session_name)+'/'+self.snap_name+'.ardour' - self.file = open(self.filename, 'w') - self.received = 0 - elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER": - self.setRawMode() - self.filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+self.sounds[self.sound_index] - self.file = open(self.filename, 'w') - self.received = 0 - elif self.state == "ERROR": - raise_error(data, g_display.window) - elif self.state == "SNAPS": - g_data.add_snap(self.session_name, self.collab_name, data) - elif self.state == "SNAPSHOT": - self.filesize = int(data) - elif self.state == "SOUNDFILE": - self.filesize = int(data) - elif self.state == "SOUNDFILE_HEADER": - self.filesize = int(data) - elif self.state == "SOUNDFILE_SIZE": - append_empty_data(self.filename, int(data)) - self.sound_index += 1 - if self.sound_index > len(self.sounds)-1: - self.transport.loseConnection() - else: - self.state = "SOUNDFILE_HEADER" - self.sendLine("SOUNDFILE_HEADER") - self.sendLine(self.sounds[self.sound_index]) + def __init__(self, session_name, collab_name, snap_name, debug_mode): + self.session_name = session_name + self.collab_name = collab_name + self.snap_name = snap_name + self.debug_mode = debug_mode + self.state = "IDLE" + + def connectionLost(self, reason): + g_display.show_status("Connection lost") + + def connectionMade(self): + g_display.show_status("Connection made") + self.state = "SESSION" + self.sendLine("SESSION") + self.sendLine(self.session_name) + + def rawDataReceived(self, data): + self.file.write(data) + self.received += len(data) + print self.received, self.filesize + if self.received >= self.filesize: + self.setLineMode() + self.file.close() + g_data.rescan_session(self.session_name) + if self.state == "SNAPSHOT": + self.sounds = get_sound_list(self.filename) + if len(self.sounds): + self.sound_index = 0 + if self.debug_mode: + self.state = "SOUNDFILE_HEADER" + self.sendLine("SOUNDFILE_HEADER") + else: + self.state = "SOUNDFILE" + self.sendLine("SOUNDFILE") + self.sendLine(self.sounds[self.sound_index]) + else: + self.transport.loseConnection() + elif self.state == "SOUNDFILE": + self.sound_index += 1 + if self.sound_index > len(self.sounds)-1: + self.transport.loseConnection() + else: + self.sendLine("SOUNDFILE") + self.sendLine(self.sounds[self.sound_index]) + elif self.state == "SOUNDFILE_HEADER": + self.state = "SOUNDFILE_SIZE" + self.sendLine("SOUNDFILE_SIZE") + self.sendLine(self.sounds[self.sound_index]) + + def lineReceived(self, data): + print "client: ", data + + if data == "ERROR": + self.state = "ERROR" + elif data == "OK": + if self.state == "SESSION": + if self.snap_name: + self.state = "SNAPSHOT" + self.sendLine("SNAPSHOT") + self.sendLine(self.snap_name) + else: + self.state = "SNAPS" + self.sendLine("SNAPS") + elif self.state == "SNAPS": + self.transport.loseConnection() + elif self.state == "SNAPSHOT": + self.setRawMode() + self.filename = g_data.get_session_path(self.session_name)+'/'+self.snap_name+'.ardour' + self.file = open(self.filename, 'w') + self.received = 0 + elif self.state == "SOUNDFILE" or self.state == "SOUNDFILE_HEADER": + self.setRawMode() + self.filename = g_data.get_session_path(self.session_name)+"/interchange/"+self.session_name+"/audiofiles/"+self.sounds[self.sound_index] + self.file = open(self.filename, 'w') + self.received = 0 + elif self.state == "ERROR": + raise_error(data, g_display.window) + elif self.state == "SNAPS": + g_data.add_snap(self.session_name, self.collab_name, data) + elif self.state == "SNAPSHOT": + self.filesize = int(data) + elif self.state == "SOUNDFILE": + self.filesize = int(data) + elif self.state == "SOUNDFILE_HEADER": + self.filesize = int(data) + elif self.state == "SOUNDFILE_SIZE": + append_empty_data(self.filename, int(data)) + self.sound_index += 1 + if self.sound_index > len(self.sounds)-1: + self.transport.loseConnection() + else: + self.state = "SOUNDFILE_HEADER" + self.sendLine("SOUNDFILE_HEADER") + self.sendLine(self.sounds[self.sound_index]) class ExchangeClientFactory(protocol.ClientFactory): - def buildProtocol(self, addr): - return ExchangeClient(self.session_name, self.collab_name, self.snap_name, self.debug_mode) - - def clientConnectionFailed(self, connector, reason): - raise_error('Connection failed: ' + reason.getErrorMessage(), g_display.window) - g_display.show_status('Connection failed') - - def __init__(self, session_name, collab_name, snap_name, debug_mode): - self.session_name = session_name - self.collab_name = collab_name - self.snap_name = snap_name - self.debug_mode = debug_mode + def buildProtocol(self, addr): + return ExchangeClient(self.session_name, self.collab_name, self.snap_name, self.debug_mode) + + def clientConnectionFailed(self, connector, reason): + raise_error('Connection failed: ' + reason.getErrorMessage(), g_display.window) + g_display.show_status('Connection failed') + + def __init__(self, session_name, collab_name, snap_name, debug_mode): + self.session_name = session_name + self.collab_name = collab_name + self.snap_name = snap_name + self.debug_mode = debug_mode class HelperWin(object): - def delete_me(self, window): - self = 0 + def delete_me(self, window): + self = 0 class Preferences(HelperWin): - def __init__(self): - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.window.set_title('Preferences') - self.window.connect('destroy', self.delete_me) - self.window.set_position(gtk.WIN_POS_MOUSE) - - main_box = gtk.VBox() - self.window.add(main_box) - - hbox1 = gtk.HBox() - label1 = gtk.Label("User") - self.user = gtk.Entry() - self.user.set_text(g_data.get_user()) - hbox1.pack_start(label1) - hbox1.pack_start(self.user) - main_box.pack_start(hbox1) - - ok_btn = gtk.Button("Ok") - ok_btn.connect('clicked', self.ok_clicked) - main_box.pack_start(ok_btn) - - self.window.show_all() - - def ok_clicked(self, btn): - g_data.set_user(self.user.get_text()) - self.window.hide_all() - - def show_all(self): - self.window.show_all() + def __init__(self): + self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window.set_title('Preferences') + self.window.connect('destroy', self.delete_me) + self.window.set_position(gtk.WIN_POS_MOUSE) + + main_box = gtk.VBox() + self.window.add(main_box) + + hbox1 = gtk.HBox() + label1 = gtk.Label("User") + self.user = gtk.Entry() + self.user.set_text(g_data.get_user()) + hbox1.pack_start(label1) + hbox1.pack_start(self.user) + main_box.pack_start(hbox1) + + ok_btn = gtk.Button("Ok") + ok_btn.connect('clicked', self.ok_clicked) + main_box.pack_start(ok_btn) + + self.window.show_all() + + def ok_clicked(self, btn): + g_data.set_user(self.user.get_text()) + self.window.hide_all() + + def show_all(self): + self.window.show_all() class AddCollaborator(HelperWin): - def __init__(self, session): - self.session_name = session - - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.window.set_title('Fetch Session') - self.window.connect('destroy', self.delete_me) - self.window.set_position(gtk.WIN_POS_MOUSE) - - main_box = gtk.VBox() - self.window.add(main_box) - - hbox0 = gtk.HBox() - label0 = gtk.Label("Collaborator") - self.collab = gtk.Entry() - self.collab.connect('key-release-event', self.key_press) - hbox0.pack_start(label0) - hbox0.pack_start(self.collab) - main_box.pack_start(hbox0) - - hbox1 = gtk.HBox() - label1 = gtk.Label("IP Address") - self.address = gtk.Entry() - self.address.connect('key-release-event', self.key_press) - hbox1.pack_start(label1) - hbox1.pack_start(self.address) - main_box.pack_start(hbox1) - - hbox2 = gtk.HBox() - label2 = gtk.Label("Port Number") - self.port = gtk.Entry() - self.port.connect('key-release-event', self.key_press) - self.port.set_text(str(g_data.port)) - hbox2.pack_start(label2) - hbox2.pack_start(self.port) - main_box.pack_start(hbox2) - - hbox3 = gtk.HBox() - label3 = gtk.Label("Username") - label3.set_sensitive(False) - self.username = gtk.Entry() - self.username.set_sensitive(False) - hbox3.pack_start(label3) - hbox3.pack_start(self.username) - main_box.pack_start(hbox3) - - hbox4 = gtk.HBox() - label4 = gtk.Label("Password") - label4.set_sensitive(False) - self.password = gtk.Entry() - self.password.set_sensitive(False) - hbox4.pack_start(label4) - hbox4.pack_start(self.password) - main_box.pack_start(hbox4) - - self.ok_btn = gtk.Button(gtk.STOCK_OK) - self.ok_btn.set_use_stock(True) - self.ok_btn.connect('clicked', self.ok_clicked) - self.ok_btn.set_sensitive(False) - main_box.pack_start(self.ok_btn) - - self.window.show_all() - - def key_press(self, event, data): - if self.collab.get_text() and self.address.get_text() and self.port.get_text(): - self.ok_btn.set_sensitive(True) - else: - self.ok_btn.set_sensitive(False) - return True - - def ok_clicked(self, btn): - self.window.hide_all() - g_data.add_collab(self.session_name, self.collab.get_text(), self.address.get_text(), int(self.port.get_text())) - self.collab.set_text('') - self.address.set_text('') - self.port.set_text('') - self.username.set_text('') - self.password.set_text('') - - def show_all(self): - self.window.show_all() + def __init__(self, session): + self.session_name = session + + self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window.set_title('Fetch Session') + self.window.connect('destroy', self.delete_me) + self.window.set_position(gtk.WIN_POS_MOUSE) + + main_box = gtk.VBox() + self.window.add(main_box) + + hbox0 = gtk.HBox() + label0 = gtk.Label("Collaborator") + self.collab = gtk.Entry() + self.collab.connect('key-release-event', self.key_press) + hbox0.pack_start(label0) + hbox0.pack_start(self.collab) + main_box.pack_start(hbox0) + + hbox1 = gtk.HBox() + label1 = gtk.Label("IP Address") + self.address = gtk.Entry() + self.address.connect('key-release-event', self.key_press) + hbox1.pack_start(label1) + hbox1.pack_start(self.address) + main_box.pack_start(hbox1) + + hbox2 = gtk.HBox() + label2 = gtk.Label("Port Number") + self.port = gtk.Entry() + self.port.connect('key-release-event', self.key_press) + self.port.set_text(str(g_data.port)) + hbox2.pack_start(label2) + hbox2.pack_start(self.port) + main_box.pack_start(hbox2) + + hbox3 = gtk.HBox() + label3 = gtk.Label("Username") + label3.set_sensitive(False) + self.username = gtk.Entry() + self.username.set_sensitive(False) + hbox3.pack_start(label3) + hbox3.pack_start(self.username) + main_box.pack_start(hbox3) + + hbox4 = gtk.HBox() + label4 = gtk.Label("Password") + label4.set_sensitive(False) + self.password = gtk.Entry() + self.password.set_sensitive(False) + hbox4.pack_start(label4) + hbox4.pack_start(self.password) + main_box.pack_start(hbox4) + + self.ok_btn = gtk.Button(gtk.STOCK_OK) + self.ok_btn.set_use_stock(True) + self.ok_btn.connect('clicked', self.ok_clicked) + self.ok_btn.set_sensitive(False) + main_box.pack_start(self.ok_btn) + + self.window.show_all() + + def key_press(self, event, data): + if self.collab.get_text() and self.address.get_text() and self.port.get_text(): + self.ok_btn.set_sensitive(True) + else: + self.ok_btn.set_sensitive(False) + return True + + def ok_clicked(self, btn): + self.window.hide_all() + g_data.add_collab(self.session_name, self.collab.get_text(), self.address.get_text(), int(self.port.get_text())) + self.collab.set_text('') + self.address.set_text('') + self.port.set_text('') + self.username.set_text('') + self.password.set_text('') + + def show_all(self): + self.window.show_all() class ArdourShareWindow(object): - def menuitem_cb(self, window, action, widget): - print self, window, action, widget - - def add_collaborator_cb(self, window, action, widget): - if self.session: - self.add_session = AddCollaborator(self.session) - - def fetch_snapshot_cb(self, window, action, widget): - if self.session and self.collab and self.collab != g_data.get_user(): - client = ExchangeClientFactory(self.session, self.collab, self.snap, g_data.debug_mode) - reactor.connectTCP(g_data.get_collab_ip(self.session, self.collab), g_data.port, client) - - def preferences_cb(self, window, action, widget): - self.preferences = Preferences() - - def add_session_ok_file_btn_clicked(self, w): - filename = self.file_sel.get_filename() - if filename.endswith(".ardour"): - g_data.add_session(filename[0:filename.rfind("/")+1]) - self.update_session_view() - else: - raise_error("Not an Ardour session", self.window) - self.file_sel.destroy() - - def add_session_cb(self, window, action, widget): - if g_data.get_user(): - self.file_sel = gtk.FileSelection("Add Session...") - self.file_sel.ok_button.connect("clicked", self.add_session_ok_file_btn_clicked) - self.file_sel.cancel_button.connect("clicked", lambda w: self.file_sel.destroy()) - self.file_sel.connect("destroy", lambda w: self.file_sel.destroy()) - self.file_sel.show() - else: - raise_error("Set the user name in the preferences first", self.window) - - def create_session_cb(self, window, action, widget): - if g_data.get_user(): - self.file_sel = gtk.FileSelection("Create Session...") - self.file_sel.ok_button.connect("clicked", self.create_file_ok_btn_clicked) - self.file_sel.cancel_button.connect("clicked", lambda w: self.file_sel.destroy()) - self.file_sel.connect("destroy", lambda w: self.file_sel.destroy()) - self.file_sel.show() - else: - raise_error("Set the user name in the preferences first", self.window) - - def create_file_ok_btn_clicked(self, w): - filename = self.file_sel.get_filename() - if len(filename) > 0: - g_data.create_session(filename) - self.update_session_view() - else: - raise_error("Not an Ardour session", self.window) - self.file_sel.destroy() - - def update_session_view(self): - self.session_model.clear() - for session in g_data.get_sessions(): - self.session_model.set(self.session_model.append(), 0, session) - - def update_collab_view(self): - self.collab_model.clear() - for collab in g_data.get_collabs(self.session): - self.collab_model.set(self.collab_model.append(), 0, collab) - - def update_snap_view(self): - self.snap_model.clear() - for snap in g_data.get_snaps(self.session, self.collab): - self.snap_model.set(self.snap_model.append(), 0, snap) - - def cb_session_selection_changed(self, selection_object): - selected = [] - selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) - for x in selected: - self.session = self.session_model[x][0] - self.selected_type = "session" - self.update_collab_view() - - def cb_collab_selection_changed(self, selection_object): - selected = [] - selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) - for x in selected: - self.collab = self.collab_model[x][0] - self.selected_type = "collab" - self.update_snap_view() - - def cb_snap_selection_changed(self, selection_object): - selected = [] - selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) - for x in selected: - self.snap = self.snap_model[x][0] - self.selected_type = "snap" - - def delete_cb(self, window, action, widget): - if self.selected_type == "session": - g_data.delete_session(self.session) - self.session = "" - self.collab = "" - self.snap = "" - elif self.selected_type == "collab": - g_data.delete_collab(self.session, self.collab) - self.collab = "" - self.snap = "" - elif self.selected_type == "snap": - g_data.delete_snap(self.session, self.collab, self.snap) - self.snap = "" - - self.update_session_view() - self.update_collab_view() - self.update_snap_view() - self.selected_type = "" - - def show_status(self, text): - mid = self.status_bar.push(self._status_cid, text) - if self._status_mid: - self.status_bar.remove(self._status_cid, self._status_mid) - self._status_mid = mid - - def __init__(self): - self.selected_type = "" - self.session = "" - self.collab = g_data.get_user() - self.snap = "" - - self.preferences = 0 - self.add_collab = 0 - self.add_session = 0 - - self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) - self.window.set_title('Session Exchange') - self.window.set_size_request(400, 200) - self.window.connect('destroy', lambda win: gtk.main_quit()) - self.window.set_position(gtk.WIN_POS_MOUSE) - - accel_group = gtk.AccelGroup() - self.window.add_accel_group(accel_group) - - main_box = gtk.VBox() - self.window.add(main_box) - - menu_items = ( - ('/_File', None, None, 0, ''), - ('/File/_Add Session...','A', self.add_session_cb, 0, ''), - ('/File/Create _Session...', 'S', self.create_session_cb, 0, ''), - ('/File/sep1', None, None, 0, ''), - ('/File/_Quit', 'Q', gtk.main_quit, 0, '', gtk.STOCK_QUIT), - ('/_Edit', None, None, 0, '' ), - ('/Edit/Cu_t', 'X', self.menuitem_cb, 0, '', gtk.STOCK_CUT), - ('/Edit/_Copy', 'C', self.menuitem_cb, 0, '', gtk.STOCK_COPY), - ('/Edit/_Paste', 'V', self.menuitem_cb, 0, '', gtk.STOCK_PASTE), - ('/Edit/_Delete', None, self.delete_cb, 0, '', gtk.STOCK_DELETE), - ('/Edit/sep1', None, None, 0, ''), - ('/Edit/Add Colla_borator...','B', self.add_collaborator_cb,0,''), - ('/Edit/_Fetch Snapshot','F', self.fetch_snapshot_cb,0,''), - ('/Edit/sep1', None, None, 0, ''), - ('/Edit/_Preferences...','P', self.preferences_cb, 0, '') - ) - - #need to hold a reference to the item_factory or the menubar will disappear. - self.item_factory = gtk.ItemFactory(gtk.MenuBar, '
', accel_group) - self.item_factory.create_items(menu_items, self.window) - main_box.pack_start(self.item_factory.get_widget('
'), False) - - pane1 = gtk.HPaned() - pane2 = gtk.HPaned() - pane1.pack2(pane2, True, False) - - scroll1 = gtk.ScrolledWindow() - scroll1.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - pane1.pack1(scroll1, True, False) - scroll2 = gtk.ScrolledWindow() - scroll2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - pane2.pack1(scroll2, True, False) - scroll3 = gtk.ScrolledWindow() - scroll3.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) - pane2.pack2(scroll3, True, False) - - self.session_model = gtk.ListStore(gobject.TYPE_STRING) - view1 = gtk.TreeView(self.session_model) - column1 = gtk.TreeViewColumn('Sessions', gtk.CellRendererText(), text=0) - view1.append_column(column1) - self.session_selection = view1.get_selection() - self.session_selection.connect("changed", self.cb_session_selection_changed) - scroll1.add(view1) - - self.update_session_view() - - self.collab_model = gtk.ListStore(gobject.TYPE_STRING) - view2 = gtk.TreeView(self.collab_model) - column2 = gtk.TreeViewColumn('Collaborators', gtk.CellRendererText(), text=0) - view2.append_column(column2) - self.collab_selection = view2.get_selection() - self.collab_selection.connect("changed", self.cb_collab_selection_changed) - scroll2.add(view2) - - self.snap_model = gtk.ListStore(gobject.TYPE_STRING) - view3 = gtk.TreeView(self.snap_model) - column3 = gtk.TreeViewColumn('Snapshots', gtk.CellRendererText(), text=0) - view3.append_column(column3) - self.snap_selection = view3.get_selection() - self.snap_selection.connect("changed", self.cb_snap_selection_changed) - scroll3.add(view3) - - main_box.pack_start(pane1, True, True) - - self.status_bar = gtk.Statusbar() - main_box.pack_start(self.status_bar, False) - self._status_cid = self.status_bar.get_context_id('display') - self._status_mid = '' - - self.window.show_all() + def menuitem_cb(self, window, action, widget): + print self, window, action, widget + + def add_collaborator_cb(self, window, action, widget): + if self.session: + self.add_session = AddCollaborator(self.session) + + def fetch_snapshot_cb(self, window, action, widget): + if self.session and self.collab and self.collab != g_data.get_user(): + client = ExchangeClientFactory(self.session, self.collab, self.snap, g_data.debug_mode) + reactor.connectTCP(g_data.get_collab_ip(self.session, self.collab), g_data.port, client) + + def preferences_cb(self, window, action, widget): + self.preferences = Preferences() + + def add_session_ok_file_btn_clicked(self, w): + filename = self.file_sel.get_filename() + if filename.endswith(".ardour"): + g_data.add_session(filename[0:filename.rfind("/")+1]) + self.update_session_view() + else: + raise_error("Not an Ardour session", self.window) + self.file_sel.destroy() + + def add_session_cb(self, window, action, widget): + if g_data.get_user(): + self.file_sel = gtk.FileSelection("Add Session...") + self.file_sel.ok_button.connect("clicked", self.add_session_ok_file_btn_clicked) + self.file_sel.cancel_button.connect("clicked", lambda w: self.file_sel.destroy()) + self.file_sel.connect("destroy", lambda w: self.file_sel.destroy()) + self.file_sel.show() + else: + raise_error("Set the user name in the preferences first", self.window) + + def create_session_cb(self, window, action, widget): + if g_data.get_user(): + self.file_sel = gtk.FileSelection("Create Session...") + self.file_sel.ok_button.connect("clicked", self.create_file_ok_btn_clicked) + self.file_sel.cancel_button.connect("clicked", lambda w: self.file_sel.destroy()) + self.file_sel.connect("destroy", lambda w: self.file_sel.destroy()) + self.file_sel.show() + else: + raise_error("Set the user name in the preferences first", self.window) + + def create_file_ok_btn_clicked(self, w): + filename = self.file_sel.get_filename() + if len(filename) > 0: + g_data.create_session(filename) + self.update_session_view() + else: + raise_error("Not an Ardour session", self.window) + self.file_sel.destroy() + + def update_session_view(self): + self.session_model.clear() + for session in g_data.get_sessions(): + self.session_model.set(self.session_model.append(), 0, session) + + def update_collab_view(self): + self.collab_model.clear() + for collab in g_data.get_collabs(self.session): + self.collab_model.set(self.collab_model.append(), 0, collab) + + def update_snap_view(self): + self.snap_model.clear() + for snap in g_data.get_snaps(self.session, self.collab): + self.snap_model.set(self.snap_model.append(), 0, snap) + + def cb_session_selection_changed(self, selection_object): + selected = [] + selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) + for x in selected: + self.session = self.session_model[x][0] + self.selected_type = "session" + self.update_collab_view() + + def cb_collab_selection_changed(self, selection_object): + selected = [] + selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) + for x in selected: + self.collab = self.collab_model[x][0] + self.selected_type = "collab" + self.update_snap_view() + + def cb_snap_selection_changed(self, selection_object): + selected = [] + selection_object.selected_foreach(lambda model, path, iter, sel = selected: sel.append(path)) + for x in selected: + self.snap = self.snap_model[x][0] + self.selected_type = "snap" + + def delete_cb(self, window, action, widget): + if self.selected_type == "session": + g_data.delete_session(self.session) + self.session = "" + self.collab = "" + self.snap = "" + elif self.selected_type == "collab": + g_data.delete_collab(self.session, self.collab) + self.collab = "" + self.snap = "" + elif self.selected_type == "snap": + g_data.delete_snap(self.session, self.collab, self.snap) + self.snap = "" + + self.update_session_view() + self.update_collab_view() + self.update_snap_view() + self.selected_type = "" + + def show_status(self, text): + mid = self.status_bar.push(self._status_cid, text) + if self._status_mid: + self.status_bar.remove(self._status_cid, self._status_mid) + self._status_mid = mid + + def __init__(self): + self.selected_type = "" + self.session = "" + self.collab = g_data.get_user() + self.snap = "" + + self.preferences = 0 + self.add_collab = 0 + self.add_session = 0 + + self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) + self.window.set_title('Session Exchange') + self.window.set_size_request(400, 200) + self.window.connect('destroy', lambda win: gtk.main_quit()) + self.window.set_position(gtk.WIN_POS_MOUSE) + + accel_group = gtk.AccelGroup() + self.window.add_accel_group(accel_group) + + main_box = gtk.VBox() + self.window.add(main_box) + + menu_items = ( + ('/_File', None, None, 0, ''), + ('/File/_Add Session...','A', self.add_session_cb, 0, ''), + ('/File/Create _Session...', 'S', self.create_session_cb, 0, ''), + ('/File/sep1', None, None, 0, ''), + ('/File/_Quit', 'Q', gtk.main_quit, 0, '', gtk.STOCK_QUIT), + ('/_Edit', None, None, 0, '' ), + ('/Edit/Cu_t', 'X', self.menuitem_cb, 0, '', gtk.STOCK_CUT), + ('/Edit/_Copy', 'C', self.menuitem_cb, 0, '', gtk.STOCK_COPY), + ('/Edit/_Paste', 'V', self.menuitem_cb, 0, '', gtk.STOCK_PASTE), + ('/Edit/_Delete', None, self.delete_cb, 0, '', gtk.STOCK_DELETE), + ('/Edit/sep1', None, None, 0, ''), + ('/Edit/Add Colla_borator...','B', self.add_collaborator_cb,0,''), + ('/Edit/_Fetch Snapshot','F', self.fetch_snapshot_cb,0,''), + ('/Edit/sep1', None, None, 0, ''), + ('/Edit/_Preferences...','P', self.preferences_cb, 0, '') + ) + + #need to hold a reference to the item_factory or the menubar will disappear. + self.item_factory = gtk.ItemFactory(gtk.MenuBar, '
', accel_group) + self.item_factory.create_items(menu_items, self.window) + main_box.pack_start(self.item_factory.get_widget('
'), False) + + pane1 = gtk.HPaned() + pane2 = gtk.HPaned() + pane1.pack2(pane2, True, False) + + scroll1 = gtk.ScrolledWindow() + scroll1.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + pane1.pack1(scroll1, True, False) + scroll2 = gtk.ScrolledWindow() + scroll2.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + pane2.pack1(scroll2, True, False) + scroll3 = gtk.ScrolledWindow() + scroll3.set_policy(gtk.POLICY_AUTOMATIC, gtk.POLICY_AUTOMATIC) + pane2.pack2(scroll3, True, False) + + self.session_model = gtk.ListStore(gobject.TYPE_STRING) + view1 = gtk.TreeView(self.session_model) + column1 = gtk.TreeViewColumn('Sessions', gtk.CellRendererText(), text=0) + view1.append_column(column1) + self.session_selection = view1.get_selection() + self.session_selection.connect("changed", self.cb_session_selection_changed) + scroll1.add(view1) + + self.update_session_view() + + self.collab_model = gtk.ListStore(gobject.TYPE_STRING) + view2 = gtk.TreeView(self.collab_model) + column2 = gtk.TreeViewColumn('Collaborators', gtk.CellRendererText(), text=0) + view2.append_column(column2) + self.collab_selection = view2.get_selection() + self.collab_selection.connect("changed", self.cb_collab_selection_changed) + scroll2.add(view2) + + self.snap_model = gtk.ListStore(gobject.TYPE_STRING) + view3 = gtk.TreeView(self.snap_model) + column3 = gtk.TreeViewColumn('Snapshots', gtk.CellRendererText(), text=0) + view3.append_column(column3) + self.snap_selection = view3.get_selection() + self.snap_selection.connect("changed", self.cb_snap_selection_changed) + scroll3.add(view3) + + main_box.pack_start(pane1, True, True) + + self.status_bar = gtk.Statusbar() + main_box.pack_start(self.status_bar, False) + self._status_cid = self.status_bar.get_context_id('display') + self._status_mid = '' + + self.window.show_all() def print_help(): - print """ - -h, --help - -n, --no-server Only act as a client - -p, --port Defaults to 8970 - -d, --debug Infers audio files. For debugging Ardour. - -v, --version Version - """ - sys.exit(2) + print """ + -h, --help + -n, --no-server Only act as a client + -p, --port Defaults to 8970 + -d, --debug Infers audio files. For debugging Ardour. + -v, --version Version + """ + sys.exit(2) def main(): - try: - opts, args = getopt.getopt(sys.argv[1:], "hp:ndv", ["help", "port=", "no-server", "debug", "version"]) - except getopt.GetoptError: - print_help() - - server = True - for o, a in opts: - if o in ("-h", "--help"): - print_help() - if o in ("-d", "--debug"): - g_display.window.set_title('Session Exchange: Debug Mode') - g_data.debug_mode = True - if o in ("-p", "--port"): - g_data.port = int(a) - if o in ("-n", "--no-server"): - server = False - if o in ("-v", "--version"): - print VERSION - sys.exit(2) - - if (server): - try: - reactor.listenTCP(g_data.port, ExchangeServerFactory()) - except twisted.internet.error.CannotListenError: - print "Can not listen on a port number under 1024 unless run as root" - sys.exit(2) + try: + opts, args = getopt.getopt(sys.argv[1:], "hp:ndv", ["help", "port=", "no-server", "debug", "version"]) + except getopt.GetoptError: + print_help() + + server = True + for o, a in opts: + if o in ("-h", "--help"): + print_help() + if o in ("-d", "--debug"): + g_display.window.set_title('Session Exchange: Debug Mode') + g_data.debug_mode = True + if o in ("-p", "--port"): + g_data.port = int(a) + if o in ("-n", "--no-server"): + server = False + if o in ("-v", "--version"): + print VERSION + sys.exit(2) + + if (server): + try: + reactor.listenTCP(g_data.port, ExchangeServerFactory()) + except twisted.internet.error.CannotListenError: + print "Can not listen on a port number under 1024 unless run as root" + sys.exit(2) - reactor.run() + reactor.run() - g_data.close() + g_data.close() # global objects g_data = Data() g_display = ArdourShareWindow() if __name__ == '__main__': - main() + main() diff --git a/wscript b/wscript index d6e0330218..6fb0862003 100644 --- a/wscript +++ b/wscript @@ -17,24 +17,24 @@ srcdir = '.' blddir = 'build' children = [ - 'libs/pbd', - 'libs/midi++2', - 'libs/evoral', - 'libs/vamp-sdk', - 'libs/qm-dsp', - 'libs/vamp-plugins', - 'libs/taglib', - 'libs/rubberband', - 'libs/surfaces', - 'libs/panners', - 'libs/timecode', - 'libs/ardour', - 'libs/gtkmm2ext', - 'libs/clearlooks-newer', - 'libs/audiographer', - 'libs/gnomecanvas', - 'gtk2_ardour', - 'templates', + 'libs/pbd', + 'libs/midi++2', + 'libs/evoral', + 'libs/vamp-sdk', + 'libs/qm-dsp', + 'libs/vamp-plugins', + 'libs/taglib', + 'libs/rubberband', + 'libs/surfaces', + 'libs/panners', + 'libs/timecode', + 'libs/ardour', + 'libs/gtkmm2ext', + 'libs/clearlooks-newer', + 'libs/audiographer', + 'libs/gnomecanvas', + 'gtk2_ardour', + 'templates', 'export', # this needs to be conditional at some point, since # we will not build it or use it on OS X @@ -42,555 +42,555 @@ children = [ ] i18n_children = [ - 'gtk2_ardour', - 'libs/ardour' + 'gtk2_ardour', + 'libs/ardour' ] # Version stuff def fetch_svn_revision (path): - cmd = "LANG= svn info " + path + " | awk '/^Revision:/ { print $2}'" - return subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + cmd = "LANG= svn info " + path + " | awk '/^Revision:/ { print $2}'" + return subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() def fetch_gcc_version (): - cmd = "LANG= gcc --version" - output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() - o = output[0].decode('utf-8') - version = o.split(' ')[2].split('.') - return version + cmd = "LANG= gcc --version" + output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + o = output[0].decode('utf-8') + version = o.split(' ')[2].split('.') + return version def fetch_git_revision (path): - cmd = "LANG= git log --abbrev HEAD^..HEAD " + path - output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() - o = output[0].decode('utf-8') - rev = o.replace ("commit", "git")[0:10] - for line in output: - try: - if "git-svn-id" in line: - line = line.split('@')[1].split(' ') - rev = line[0] - except: - pass - return rev + cmd = "LANG= git log --abbrev HEAD^..HEAD " + path + output = subprocess.Popen(cmd, shell=True, stderr=subprocess.STDOUT, stdout=subprocess.PIPE).communicate()[0].splitlines() + o = output[0].decode('utf-8') + rev = o.replace ("commit", "git")[0:10] + for line in output: + try: + if "git-svn-id" in line: + line = line.split('@')[1].split(' ') + rev = line[0] + except: + pass + return rev def fetch_bzr_revision (path): - cmd = subprocess.Popen("LANG= bzr log -l 1 " + path, stdout=subprocess.PIPE, shell=True) - out = cmd.communicate()[0] - svn = re.search('^svn revno: [0-9]*', out, re.MULTILINE) - str = svn.group(0) - chars = 'svnreio: ' - return string.lstrip(str, chars) + cmd = subprocess.Popen("LANG= bzr log -l 1 " + path, stdout=subprocess.PIPE, shell=True) + out = cmd.communicate()[0] + svn = re.search('^svn revno: [0-9]*', out, re.MULTILINE) + str = svn.group(0) + chars = 'svnreio: ' + return string.lstrip(str, chars) def create_stored_revision(): - rev = "" - if os.path.exists('.svn'): - rev = fetch_svn_revision('.'); - elif os.path.exists('.git'): - rev = fetch_git_revision('.'); - elif os.path.exists('.bzr'): - rev = fetch_bzr_revision('.'); - print("Revision: %s", rev) - elif os.path.exists('libs/ardour/svn_revision.cc'): - print("Using packaged svn revision") - return - else: - print("Missing libs/ardour/svn_revision.cc. Blame the packager.") - sys.exit(-1) - - try: - text = '#include "ardour/svn_revision.h"\n' - text += 'namespace ARDOUR { const char* svn_revision = \"%s\"; }\n' % rev - print('Writing svn revision info to libs/ardour/svn_revision.cc') - o = open('libs/ardour/svn_revision.cc', 'w') - o.write(text) - o.close() - except IOError: - print('Could not open libs/ardour/svn_revision.cc for writing\n') - sys.exit(-1) + rev = "" + if os.path.exists('.svn'): + rev = fetch_svn_revision('.'); + elif os.path.exists('.git'): + rev = fetch_git_revision('.'); + elif os.path.exists('.bzr'): + rev = fetch_bzr_revision('.'); + print("Revision: %s", rev) + elif os.path.exists('libs/ardour/svn_revision.cc'): + print("Using packaged svn revision") + return + else: + print("Missing libs/ardour/svn_revision.cc. Blame the packager.") + sys.exit(-1) + + try: + text = '#include "ardour/svn_revision.h"\n' + text += 'namespace ARDOUR { const char* svn_revision = \"%s\"; }\n' % rev + print('Writing svn revision info to libs/ardour/svn_revision.cc') + o = open('libs/ardour/svn_revision.cc', 'w') + o.write(text) + o.close() + except IOError: + print('Could not open libs/ardour/svn_revision.cc for writing\n') + sys.exit(-1) def set_compiler_flags (conf,opt): - # - # Compiler flags and other system-dependent stuff - # - - build_host_supports_sse = False - optimization_flags = [] - debug_flags = [] - - # guess at the platform, used to define compiler flags - - config_guess = os.popen("tools/config.guess").read()[:-1] - - config_cpu = 0 - config_arch = 1 - config_kernel = 2 - config_os = 3 - config = config_guess.split ("-") - - autowaf.display_msg(conf, "System Triple", config_guess) - - if opt.gprofile: - debug_flags = [ '-pg' ] - else: - if config[config_arch] != 'apple': - debug_flags = [ '-rdynamic' ] # waf adds -O0 -g itself. thanks waf! - - # Autodetect - if opt.dist_target == 'auto': - if config[config_arch] == 'apple': - # The [.] matches to the dot after the major version, "." would match any character - if re.search ("darwin[0-7][.]", config[config_kernel]) != None: - conf.define ('build_target', 'panther') - elif re.search ("darwin8[.]", config[config_kernel]) != None: - conf.define ('build_target', 'tiger') - else: - conf.define ('build_target', 'leopard') - else: - if re.search ("x86_64", config[config_cpu]) != None: - conf.define ('build_target', 'x86_64') - elif re.search("i[0-5]86", config[config_cpu]) != None: - conf.define ('build_target', 'i386') - elif re.search("powerpc", config[config_cpu]) != None: - conf.define ('build_target', 'powerpc') - else: - conf.define ('build_target', 'i686') - else: - conf.define ('build_target', opt.dist_target) - - if config[config_cpu] == 'powerpc' and conf.env['build_target'] != 'none': - # - # Apple/PowerPC optimization options - # - # -mcpu=7450 does not reliably work with gcc 3.* - # - if opt.dist_target == 'panther' or opt.dist_target == 'tiger': - if config[config_arch] == 'apple': - # optimization_flags.extend ([ "-mcpu=7450", "-faltivec"]) - # to support g3s but still have some optimization for above - optimization_flags.extend ([ "-mcpu=G3", "-mtune=7450"]) - else: - optimization_flags.extend ([ "-mcpu=7400", "-maltivec", "-mabi=altivec"]) - else: - optimization_flags.extend([ "-mcpu=750", "-mmultiple" ]) - optimization_flags.extend (["-mhard-float", "-mpowerpc-gfxopt"]) - optimization_flags.extend (["-Os"]) - - elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_64", config[config_cpu]) != None)) and conf.env['build_target'] != 'none': + # + # Compiler flags and other system-dependent stuff + # + + build_host_supports_sse = False + optimization_flags = [] + debug_flags = [] + + # guess at the platform, used to define compiler flags + + config_guess = os.popen("tools/config.guess").read()[:-1] + + config_cpu = 0 + config_arch = 1 + config_kernel = 2 + config_os = 3 + config = config_guess.split ("-") + + autowaf.display_msg(conf, "System Triple", config_guess) + + if opt.gprofile: + debug_flags = [ '-pg' ] + else: + if config[config_arch] != 'apple': + debug_flags = [ '-rdynamic' ] # waf adds -O0 -g itself. thanks waf! + + # Autodetect + if opt.dist_target == 'auto': + if config[config_arch] == 'apple': + # The [.] matches to the dot after the major version, "." would match any character + if re.search ("darwin[0-7][.]", config[config_kernel]) != None: + conf.define ('build_target', 'panther') + elif re.search ("darwin8[.]", config[config_kernel]) != None: + conf.define ('build_target', 'tiger') + else: + conf.define ('build_target', 'leopard') + else: + if re.search ("x86_64", config[config_cpu]) != None: + conf.define ('build_target', 'x86_64') + elif re.search("i[0-5]86", config[config_cpu]) != None: + conf.define ('build_target', 'i386') + elif re.search("powerpc", config[config_cpu]) != None: + conf.define ('build_target', 'powerpc') + else: + conf.define ('build_target', 'i686') + else: + conf.define ('build_target', opt.dist_target) + + if config[config_cpu] == 'powerpc' and conf.env['build_target'] != 'none': + # + # Apple/PowerPC optimization options + # + # -mcpu=7450 does not reliably work with gcc 3.* + # + if opt.dist_target == 'panther' or opt.dist_target == 'tiger': + if config[config_arch] == 'apple': + # optimization_flags.extend ([ "-mcpu=7450", "-faltivec"]) + # to support g3s but still have some optimization for above + optimization_flags.extend ([ "-mcpu=G3", "-mtune=7450"]) + else: + optimization_flags.extend ([ "-mcpu=7400", "-maltivec", "-mabi=altivec"]) + else: + optimization_flags.extend([ "-mcpu=750", "-mmultiple" ]) + optimization_flags.extend (["-mhard-float", "-mpowerpc-gfxopt"]) + optimization_flags.extend (["-Os"]) + + elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_64", config[config_cpu]) != None)) and conf.env['build_target'] != 'none': - # - # ARCH_X86 means anything in the x86 family from i386 to x86_64 - # USE_X86_64_ASM is used to distingush 32 and 64 bit assembler - # - - if (re.search ("(i[0-9]86|x86_64)", config[config_cpu]) != None): - debug_flags.append ("-DARCH_X86") - optimization_flags.append ("-DARCH_X86") + # + # ARCH_X86 means anything in the x86 family from i386 to x86_64 + # USE_X86_64_ASM is used to distingush 32 and 64 bit assembler + # + + if (re.search ("(i[0-9]86|x86_64)", config[config_cpu]) != None): + debug_flags.append ("-DARCH_X86") + optimization_flags.append ("-DARCH_X86") - if config[config_kernel] == 'linux' : + if config[config_kernel] == 'linux' : - # - # determine processor flags via /proc/cpuinfo - # + # + # determine processor flags via /proc/cpuinfo + # - if conf.env['build_target'] != 'i386': + if conf.env['build_target'] != 'i386': - flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1] - x86_flags = flag_line.split (": ")[1:][0].split () + flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1] + x86_flags = flag_line.split (": ")[1:][0].split () - if "mmx" in x86_flags: - optimization_flags.append ("-mmmx") - if "sse" in x86_flags: - build_host_supports_sse = True - if "3dnow" in x86_flags: - optimization_flags.append ("-m3dnow") + if "mmx" in x86_flags: + optimization_flags.append ("-mmmx") + if "sse" in x86_flags: + build_host_supports_sse = True + if "3dnow" in x86_flags: + optimization_flags.append ("-m3dnow") - if config[config_cpu] == "i586": - optimization_flags.append ("-march=i586") - elif config[config_cpu] == "i686": - optimization_flags.append ("-march=i686") + if config[config_cpu] == "i586": + optimization_flags.append ("-march=i586") + elif config[config_cpu] == "i686": + optimization_flags.append ("-march=i686") - if ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse: - optimization_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) - debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) - - # end of processor-specific section - - # optimization section - if conf.env['FPU_OPTIMIZATION']: - if conf.env['build_target'] == 'tiger' or conf.env['build_target'] == 'leopard': - optimization_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); - debug_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); - conf.env.append_value('LINKFLAGS', "-framework Accelerate") - elif conf.env['build_target'] == 'i686' or conf.env['build_target'] == 'x86_64': - optimization_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") - debug_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") - elif conf.env['build_target'] == 'x86_64': - optimization_flags.append ("-DUSE_X86_64_ASM") - debug_flags.append ("-DUSE_X86_64_ASM") - if not build_host_supports_sse: - print("\nWarning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)") - - # check this even if we aren't using FPU optimization - if not conf.env['HAVE_POSIX_MEMALIGN']: - optimization_flags.append("-DNO_POSIX_MEMALIGN") - - # end optimization section - - # - # no VST on x86_64 - # - - if conf.env['build_target'] == 'x86_64' and opt.vst: - print("\n\n==================================================") - print("You cannot use VST plugins with a 64 bit host. Please run waf with --vst=0") - print("\nIt is theoretically possible to build a 32 bit host on a 64 bit system.") - print("However, this is tricky and not recommended for beginners.") - sys.exit (-1) - - # - # a single way to test if we're on OS X - # - - if conf.env['build_target'] in ['panther', 'tiger', 'leopard' ]: - conf.define ('IS_OSX', 1) - # force tiger or later, to avoid issues on PPC which defaults - # back to 10.1 if we don't tell it otherwise. - conf.env.append_value('CCFLAGS', "-DMAC_OS_X_VERSION_MIN_REQUIRED=1040") - - else: - conf.define ('IS_OSX', 0) - - # - # save off guessed arch element in an env - # - conf.define ('CONFIG_ARCH', config[config_arch]) - - # - # ARCH="..." overrides all - # - - if opt.arch != None: - optimization_flags = opt.arch.split() - - # - # prepend boiler plate optimization flags that work on all architectures - # - - optimization_flags[:0] = [ - "-O3", - "-fomit-frame-pointer", - "-ffast-math", - "-fstrength-reduce", - "-pipe" - ] - - if opt.debug: - conf.env.append_value('CCFLAGS', debug_flags) - conf.env.append_value('CXXFLAGS', debug_flags) - conf.env.append_value('LINKFLAGS', debug_flags) - else: - conf.env.append_value('CCFLAGS', optimization_flags) - conf.env.append_value('CXXFLAGS', optimization_flags) - conf.env.append_value('LINKFLAGS', optimization_flags) - - if opt.stl_debug: - conf.env.append_value('CXXFLAGS', "-D_GLIBCXX_DEBUG") - - if conf.env['DEBUG_RT_ALLOC']: - conf.env.append_value('CCFLAGS', '-DDEBUG_RT_ALLOC') - conf.env.append_value('CXXFLAGS', '-DDEBUG_RT_ALLOC') - conf.env.append_value('LINKFLAGS', '-ldl') - - if opt.universal: - conf.env.append_value('CCFLAGS', "-arch i386 -arch ppc") - conf.env.append_value('CXXFLAGS', "-arch i386 -arch ppc") - conf.env.append_value('LINKFLAGS', "-arch i386 -arch ppc") - - # - # warnings flags - # - - conf.env.append_value('CCFLAGS', "-Wall") - conf.env.append_value('CXXFLAGS', [ '-Wall', '-Woverloaded-virtual']) - - if opt.extra_warn: - flags = [ '-Wextra' ] - conf.env.append_value('CCFLAGS', flags ) - conf.env.append_value('CXXFLAGS', flags ) - - - # - # more boilerplate - # - - conf.env.append_value('CCFLAGS', '-D_LARGEFILE64_SOURCE') - conf.env.append_value('CCFLAGS', '-D_FILE_OFFSET_BITS=64') - conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE') - conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64') - - conf.env.append_value('CXXFLAGS', '-D__STDC_LIMIT_MACROS') - conf.env.append_value('CXXFLAGS', '-D__STDC_FORMAT_MACROS') - - if opt.nls: - conf.env.append_value('CXXFLAGS', '-DENABLE_NLS') - conf.env.append_value('CCFLAGS', '-DENABLE_NLS') + if ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse: + optimization_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) + debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"]) + + # end of processor-specific section + + # optimization section + if conf.env['FPU_OPTIMIZATION']: + if conf.env['build_target'] == 'tiger' or conf.env['build_target'] == 'leopard': + optimization_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); + debug_flags.append ("-DBUILD_VECLIB_OPTIMIZATIONS"); + conf.env.append_value('LINKFLAGS', "-framework Accelerate") + elif conf.env['build_target'] == 'i686' or conf.env['build_target'] == 'x86_64': + optimization_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") + debug_flags.append ("-DBUILD_SSE_OPTIMIZATIONS") + elif conf.env['build_target'] == 'x86_64': + optimization_flags.append ("-DUSE_X86_64_ASM") + debug_flags.append ("-DUSE_X86_64_ASM") + if not build_host_supports_sse: + print("\nWarning: you are building Ardour with SSE support even though your system does not support these instructions. (This may not be an error, especially if you are a package maintainer)") + + # check this even if we aren't using FPU optimization + if not conf.env['HAVE_POSIX_MEMALIGN']: + optimization_flags.append("-DNO_POSIX_MEMALIGN") + + # end optimization section + + # + # no VST on x86_64 + # + + if conf.env['build_target'] == 'x86_64' and opt.vst: + print("\n\n==================================================") + print("You cannot use VST plugins with a 64 bit host. Please run waf with --vst=0") + print("\nIt is theoretically possible to build a 32 bit host on a 64 bit system.") + print("However, this is tricky and not recommended for beginners.") + sys.exit (-1) + + # + # a single way to test if we're on OS X + # + + if conf.env['build_target'] in ['panther', 'tiger', 'leopard' ]: + conf.define ('IS_OSX', 1) + # force tiger or later, to avoid issues on PPC which defaults + # back to 10.1 if we don't tell it otherwise. + conf.env.append_value('CCFLAGS', "-DMAC_OS_X_VERSION_MIN_REQUIRED=1040") + + else: + conf.define ('IS_OSX', 0) + + # + # save off guessed arch element in an env + # + conf.define ('CONFIG_ARCH', config[config_arch]) + + # + # ARCH="..." overrides all + # + + if opt.arch != None: + optimization_flags = opt.arch.split() + + # + # prepend boiler plate optimization flags that work on all architectures + # + + optimization_flags[:0] = [ + "-O3", + "-fomit-frame-pointer", + "-ffast-math", + "-fstrength-reduce", + "-pipe" + ] + + if opt.debug: + conf.env.append_value('CCFLAGS', debug_flags) + conf.env.append_value('CXXFLAGS', debug_flags) + conf.env.append_value('LINKFLAGS', debug_flags) + else: + conf.env.append_value('CCFLAGS', optimization_flags) + conf.env.append_value('CXXFLAGS', optimization_flags) + conf.env.append_value('LINKFLAGS', optimization_flags) + + if opt.stl_debug: + conf.env.append_value('CXXFLAGS', "-D_GLIBCXX_DEBUG") + + if conf.env['DEBUG_RT_ALLOC']: + conf.env.append_value('CCFLAGS', '-DDEBUG_RT_ALLOC') + conf.env.append_value('CXXFLAGS', '-DDEBUG_RT_ALLOC') + conf.env.append_value('LINKFLAGS', '-ldl') + + if opt.universal: + conf.env.append_value('CCFLAGS', "-arch i386 -arch ppc") + conf.env.append_value('CXXFLAGS', "-arch i386 -arch ppc") + conf.env.append_value('LINKFLAGS', "-arch i386 -arch ppc") + + # + # warnings flags + # + + conf.env.append_value('CCFLAGS', "-Wall") + conf.env.append_value('CXXFLAGS', [ '-Wall', '-Woverloaded-virtual']) + + if opt.extra_warn: + flags = [ '-Wextra' ] + conf.env.append_value('CCFLAGS', flags ) + conf.env.append_value('CXXFLAGS', flags ) + + + # + # more boilerplate + # + + conf.env.append_value('CCFLAGS', '-D_LARGEFILE64_SOURCE') + conf.env.append_value('CCFLAGS', '-D_FILE_OFFSET_BITS=64') + conf.env.append_value('CXXFLAGS', '-D_LARGEFILE64_SOURCE') + conf.env.append_value('CXXFLAGS', '-D_FILE_OFFSET_BITS=64') + + conf.env.append_value('CXXFLAGS', '-D__STDC_LIMIT_MACROS') + conf.env.append_value('CXXFLAGS', '-D__STDC_FORMAT_MACROS') + + if opt.nls: + conf.env.append_value('CXXFLAGS', '-DENABLE_NLS') + conf.env.append_value('CCFLAGS', '-DENABLE_NLS') #---------------------------------------------------------------- # Waf stages def set_options(opt): - autowaf.set_options(opt) - opt.add_option('--program-name', type='string', action='store', default='Ardour', dest='program_name', - help='The user-visible name of the program being built') - opt.add_option('--arch', type='string', action='store', dest='arch', - help='Architecture-specific compiler flags') - opt.add_option('--boost-sp-debug', action='store_true', default=False, dest='boost_sp_debug', - help='Compile with Boost shared pointer debugging') - opt.add_option('--dist-target', type='string', default='auto', dest='dist_target', - help='Specify the target for cross-compiling [auto,none,x86,i386,i686,x86_64,powerpc,tiger,leopard]') - opt.add_option('--extra-warn', action='store_true', default=False, dest='extra_warn', - help='Build with even more compiler warning flags') - opt.add_option('--fpu-optimization', action='store_true', default=True, dest='fpu_optimization', - help='Build runtime checked assembler code (default)') - opt.add_option('--no-fpu-optimization', action='store_false', dest='fpu_optimization') - opt.add_option('--freedesktop', action='store_true', default=False, dest='freedesktop', - help='Install MIME type, icons and .desktop file as per freedesktop.org standards') - opt.add_option('--freesound', action='store_true', default=False, dest='freesound', - help='Include Freesound database lookup') - opt.add_option('--gprofile', action='store_true', default=False, dest='gprofile', - help='Compile for use with gprofile') - opt.add_option('--lv2', action='store_true', default=False, dest='lv2', - help='Compile with support for LV2 (if slv2 is available)') - opt.add_option('--nls', action='store_true', default=True, dest='nls', - help='Enable i18n (native language support) (default)') - opt.add_option('--no-nls', action='store_false', dest='nls') - opt.add_option('--phone-home', action='store_false', default=True, dest='phone_home') - opt.add_option('--stl-debug', action='store_true', default=False, dest='stl_debug', - help='Build with debugging for the STL') - opt.add_option('--rt-alloc-debug', action='store_true', default=False, dest='rt_alloc_debug', - help='Build with debugging for memory allocation in the real-time thread') - opt.add_option('--test', action='store_true', default=False, dest='build_tests', - help="Build unit tests") - opt.add_option('--tranzport', action='store_true', default=False, dest='tranzport', - help='Compile with support for Frontier Designs Tranzport (if libusb is available)') - opt.add_option('--universal', action='store_true', default=False, dest='universal', - help='Compile as universal binary (requires that external libraries are universal)') - opt.add_option('--versioned', action='store_true', default=False, dest='versioned', - help='Add revision information to executable name inside the build directory') - opt.add_option('--vst', action='store_true', default=False, dest='vst', - help='Compile with support for VST') - opt.add_option('--wiimote', action='store_true', default=False, dest='wiimote', - help='Build the wiimote control surface') - opt.add_option('--windows-key', type='string', action='store', dest='windows_key', default='Mod4><\'') - opt.add_option('--boost-include', type='string', action='store', dest='boost_include', default='', - help='directory where Boost header files can be found') - opt.add_option('--wine-include', type='string', action='store', dest='wine_include', default='/usr/include/wine/windows', - help='directory where Wine\'s Windows header files can be found') - for i in children: - opt.sub_options(i) + autowaf.set_options(opt) + opt.add_option('--program-name', type='string', action='store', default='Ardour', dest='program_name', + help='The user-visible name of the program being built') + opt.add_option('--arch', type='string', action='store', dest='arch', + help='Architecture-specific compiler flags') + opt.add_option('--boost-sp-debug', action='store_true', default=False, dest='boost_sp_debug', + help='Compile with Boost shared pointer debugging') + opt.add_option('--dist-target', type='string', default='auto', dest='dist_target', + help='Specify the target for cross-compiling [auto,none,x86,i386,i686,x86_64,powerpc,tiger,leopard]') + opt.add_option('--extra-warn', action='store_true', default=False, dest='extra_warn', + help='Build with even more compiler warning flags') + opt.add_option('--fpu-optimization', action='store_true', default=True, dest='fpu_optimization', + help='Build runtime checked assembler code (default)') + opt.add_option('--no-fpu-optimization', action='store_false', dest='fpu_optimization') + opt.add_option('--freedesktop', action='store_true', default=False, dest='freedesktop', + help='Install MIME type, icons and .desktop file as per freedesktop.org standards') + opt.add_option('--freesound', action='store_true', default=False, dest='freesound', + help='Include Freesound database lookup') + opt.add_option('--gprofile', action='store_true', default=False, dest='gprofile', + help='Compile for use with gprofile') + opt.add_option('--lv2', action='store_true', default=False, dest='lv2', + help='Compile with support for LV2 (if slv2 is available)') + opt.add_option('--nls', action='store_true', default=True, dest='nls', + help='Enable i18n (native language support) (default)') + opt.add_option('--no-nls', action='store_false', dest='nls') + opt.add_option('--phone-home', action='store_false', default=True, dest='phone_home') + opt.add_option('--stl-debug', action='store_true', default=False, dest='stl_debug', + help='Build with debugging for the STL') + opt.add_option('--rt-alloc-debug', action='store_true', default=False, dest='rt_alloc_debug', + help='Build with debugging for memory allocation in the real-time thread') + opt.add_option('--test', action='store_true', default=False, dest='build_tests', + help="Build unit tests") + opt.add_option('--tranzport', action='store_true', default=False, dest='tranzport', + help='Compile with support for Frontier Designs Tranzport (if libusb is available)') + opt.add_option('--universal', action='store_true', default=False, dest='universal', + help='Compile as universal binary (requires that external libraries are universal)') + opt.add_option('--versioned', action='store_true', default=False, dest='versioned', + help='Add revision information to executable name inside the build directory') + opt.add_option('--vst', action='store_true', default=False, dest='vst', + help='Compile with support for VST') + opt.add_option('--wiimote', action='store_true', default=False, dest='wiimote', + help='Build the wiimote control surface') + opt.add_option('--windows-key', type='string', action='store', dest='windows_key', default='Mod4><\'') + opt.add_option('--boost-include', type='string', action='store', dest='boost_include', default='', + help='directory where Boost header files can be found') + opt.add_option('--wine-include', type='string', action='store', dest='wine_include', default='/usr/include/wine/windows', + help='directory where Wine\'s Windows header files can be found') + for i in children: + opt.sub_options(i) def sub_config_and_use(conf, name, has_objects = True): - conf.sub_config(name) - autowaf.set_local_lib(conf, name, has_objects) + conf.sub_config(name) + autowaf.set_local_lib(conf, name, has_objects) def configure(conf): - create_stored_revision() - conf.env['VERSION'] = VERSION - conf.line_just = 52 - autowaf.set_recursive() - autowaf.configure(conf) - autowaf.display_header('Ardour Configuration') - - gcc_versions = fetch_gcc_version() - if not Options.options.debug and gcc_versions[0] == '4' and gcc_versions[1] > '4': + create_stored_revision() + conf.env['VERSION'] = VERSION + conf.line_just = 52 + autowaf.set_recursive() + autowaf.configure(conf) + autowaf.display_header('Ardour Configuration') + + gcc_versions = fetch_gcc_version() + if not Options.options.debug and gcc_versions[0] == '4' and gcc_versions[1] > '4': print('Version 4.5 of gcc is not ready for use when compiling Ardour with optimization.') print('Please use a different version or re-configure with --debug') exit (1) - if sys.platform == 'darwin': - - conf.define ('AUDIOUNITS', 1) - conf.define ('AU_STATE_SUPPORT', 1) - conf.define ('COREAUDIO', 1) - conf.define ('GTKOSX', 1) - conf.define ('TOP_MENUBAR',1) - conf.define ('GTKOSX',1) - - conf.env.append_value('CXXFLAGS_APPLEUTILITY', '-I../libs') - # - # Define OSX as a uselib to use when compiling - # on Darwin to add all applicable flags at once - # - conf.env.append_value('CXXFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') - conf.env.append_value('CCFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') - conf.env.append_value('CXXFLAGS_OSX', '-mmacosx-version-min=10.4') - conf.env.append_value('CCFLAGS_OSX', '-mmacosx-version-min=10.4') - - #conf.env.append_value('CXXFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") - #conf.env.append_value('CCFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") - #conf.env.append_value('LINKFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") - - #conf.env.append_value('LINKFLAGS_OSX', "-sysroot /Developer/SDKs/MacOSX10.4u.sdk") - - conf.env.append_value('CXXFLAGS_OSX', "-msse") - conf.env.append_value('CCFLAGS_OSX', "-msse") - conf.env.append_value('CXXFLAGS_OSX', "-msse2") - conf.env.append_value('CCFLAGS_OSX', "-msse2") - # - # TODO: The previous sse flags NEED to be based - # off processor type. Need to add in a check - # for that. - # - conf.env.append_value('CXXFLAGS_OSX', '-F/System/LibraryFrameworks') - conf.env.append_value('CXXFLAGS_OSX', '-F/Library/Frameworks') - - conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'AppKit']) - conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreAudio']) - conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreFoundation']) - conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreServices']) - - conf.env.append_value('LINKFLAGS_OSX', ['-undefined', 'suppress' ]) - conf.env.append_value('LINKFLAGS_OSX', '-flat_namespace') - - conf.env.append_value('LINKFLAGS_GTKOSX', [ '-Xlinker', '-headerpad']) - conf.env.append_value('LINKFLAGS_GTKOSX', ['-Xlinker', '2048']) - conf.env.append_value('CPPPATH_GTKOSX', "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/") - - conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DHAVE_AUDIOUNITS") - conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Audiotoolbox', '-framework', 'AudioUnit']) - - if Options.options.boost_include != '': - conf.env.append_value('CPPPATH', Options.options.boost_include) - - autowaf.check_header(conf, 'boost/signals2.hpp', mandatory = True) - - if Options.options.boost_sp_debug: - conf.env.append_value('CXXFLAGS', '-DBOOST_SP_ENABLE_DEBUG_HOOKS') - - autowaf.check_header(conf, 'jack/session.h', define="JACK_SESSION", mandatory = False) - - conf.check_cc(fragment = "#include \nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n", - execute = "1", - mandatory = True, - msg = 'Checking for boost library >= 1.39', - okmsg = 'ok', - errmsg = 'too old\nPlease install boost version 1.39 or higher.') - - autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) - autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2') - autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.2') - autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0') - autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18') - - if sys.platform == 'darwin': - sub_config_and_use(conf, 'libs/appleutility') - for i in children: - sub_config_and_use(conf, i) - - # Fix utterly braindead FLAC include path to not smash assert.h - conf.env['CPPPATH_FLAC'] = [] - - conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='-ldl', uselib_store='DL') - conf.check_cc(function_name='curl_global_init', header_name='curl/curl.h', linkflags='-lcurl', uselib_store='CURL') - - # Tell everyone that this is a waf build - - conf.env.append_value('CCFLAGS', '-DWAF_BUILD') - conf.env.append_value('CXXFLAGS', '-DWAF_BUILD') - + if sys.platform == 'darwin': + + conf.define ('AUDIOUNITS', 1) + conf.define ('AU_STATE_SUPPORT', 1) + conf.define ('COREAUDIO', 1) + conf.define ('GTKOSX', 1) + conf.define ('TOP_MENUBAR',1) + conf.define ('GTKOSX',1) + + conf.env.append_value('CXXFLAGS_APPLEUTILITY', '-I../libs') + # + # Define OSX as a uselib to use when compiling + # on Darwin to add all applicable flags at once + # + conf.env.append_value('CXXFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') + conf.env.append_value('CCFLAGS_OSX', '-DMAC_OS_X_VERSION_MIN_REQUIRED=1040') + conf.env.append_value('CXXFLAGS_OSX', '-mmacosx-version-min=10.4') + conf.env.append_value('CCFLAGS_OSX', '-mmacosx-version-min=10.4') + + #conf.env.append_value('CXXFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") + #conf.env.append_value('CCFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") + #conf.env.append_value('LINKFLAGS_OSX', "-isysroot /Developer/SDKs/MacOSX10.4u.sdk") + + #conf.env.append_value('LINKFLAGS_OSX', "-sysroot /Developer/SDKs/MacOSX10.4u.sdk") + + conf.env.append_value('CXXFLAGS_OSX', "-msse") + conf.env.append_value('CCFLAGS_OSX', "-msse") + conf.env.append_value('CXXFLAGS_OSX', "-msse2") + conf.env.append_value('CCFLAGS_OSX', "-msse2") + # + # TODO: The previous sse flags NEED to be based + # off processor type. Need to add in a check + # for that. + # + conf.env.append_value('CXXFLAGS_OSX', '-F/System/LibraryFrameworks') + conf.env.append_value('CXXFLAGS_OSX', '-F/Library/Frameworks') + + conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'AppKit']) + conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreAudio']) + conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreFoundation']) + conf.env.append_value('LINKFLAGS_OSX', ['-framework', 'CoreServices']) + + conf.env.append_value('LINKFLAGS_OSX', ['-undefined', 'suppress' ]) + conf.env.append_value('LINKFLAGS_OSX', '-flat_namespace') + + conf.env.append_value('LINKFLAGS_GTKOSX', [ '-Xlinker', '-headerpad']) + conf.env.append_value('LINKFLAGS_GTKOSX', ['-Xlinker', '2048']) + conf.env.append_value('CPPPATH_GTKOSX', "/System/Library/Frameworks/CoreServices.framework/Frameworks/CarbonCore.framework/Headers/") + + conf.env.append_value('CXXFLAGS_AUDIOUNITS', "-DHAVE_AUDIOUNITS") + conf.env.append_value('LINKFLAGS_AUDIOUNITS', ['-framework', 'Audiotoolbox', '-framework', 'AudioUnit']) + + if Options.options.boost_include != '': + conf.env.append_value('CPPPATH', Options.options.boost_include) + + autowaf.check_header(conf, 'boost/signals2.hpp', mandatory = True) + + if Options.options.boost_sp_debug: + conf.env.append_value('CXXFLAGS', '-DBOOST_SP_ENABLE_DEBUG_HOOKS') + + autowaf.check_header(conf, 'jack/session.h', define="JACK_SESSION", mandatory = False) + + conf.check_cc(fragment = "#include \nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n", + execute = "1", + mandatory = True, + msg = 'Checking for boost library >= 1.39', + okmsg = 'ok', + errmsg = 'too old\nPlease install boost version 1.39 or higher.') + + autowaf.check_pkg(conf, 'cppunit', uselib_store='CPPUNIT', atleast_version='1.12.0', mandatory=False) + autowaf.check_pkg(conf, 'glib-2.0', uselib_store='GLIB', atleast_version='2.2') + autowaf.check_pkg(conf, 'gthread-2.0', uselib_store='GTHREAD', atleast_version='2.2') + autowaf.check_pkg(conf, 'glibmm-2.4', uselib_store='GLIBMM', atleast_version='2.14.0') + autowaf.check_pkg(conf, 'sndfile', uselib_store='SNDFILE', atleast_version='1.0.18') + + if sys.platform == 'darwin': + sub_config_and_use(conf, 'libs/appleutility') + for i in children: + sub_config_and_use(conf, i) + + # Fix utterly braindead FLAC include path to not smash assert.h + conf.env['CPPPATH_FLAC'] = [] + + conf.check_cc(function_name='dlopen', header_name='dlfcn.h', linkflags='-ldl', uselib_store='DL') + conf.check_cc(function_name='curl_global_init', header_name='curl/curl.h', linkflags='-lcurl', uselib_store='CURL') + + # Tell everyone that this is a waf build + + conf.env.append_value('CCFLAGS', '-DWAF_BUILD') + conf.env.append_value('CXXFLAGS', '-DWAF_BUILD') + # debug builds should not call home - opts = Options.options - if opts.debug: + opts = Options.options + if opts.debug: opts.phone_home = False; - autowaf.display_msg(conf, 'Build Target', conf.env['build_target']) - autowaf.display_msg(conf, 'Architecture flags', opts.arch) - autowaf.display_msg(conf, 'Aubio', bool(conf.env['HAVE_AUBIO'])) - autowaf.display_msg(conf, 'CoreAudio', bool(conf.env['HAVE_COREAUDIO'])) - autowaf.display_msg(conf, 'FLAC', bool(conf.env['HAVE_FLAC'])) - autowaf.display_msg(conf, 'Phone Home', opts.phone_home) - if opts.phone_home: - conf.env['PHONE_HOME'] = opts.phone_home - autowaf.display_msg(conf, 'FPU Optimization', opts.fpu_optimization) - if opts.fpu_optimization: - conf.define('FPU_OPTIMIZATION', 1) - autowaf.display_msg(conf, 'Freedesktop Files', opts.freedesktop) - autowaf.display_msg(conf, 'Freesound', opts.freesound) - if opts.freesound: - conf.define('FREESOUND',1) - autowaf.display_msg(conf, 'LV2 Support', bool(conf.env['HAVE_SLV2'])) - autowaf.display_msg(conf, 'OGG', bool(conf.env['HAVE_OGG'])) - autowaf.display_msg(conf, 'Rubberband', bool(conf.env['HAVE_RUBBERBAND'])) - autowaf.display_msg(conf, 'Samplerate', bool(conf.env['HAVE_SAMPLERATE'])) - autowaf.display_msg(conf, 'Soundtouch', bool(conf.env['HAVE_SOUNDTOUCH'])) - autowaf.display_msg(conf, 'Translation', opts.nls) - if opts.nls: - conf.define ('ENABLE_NLS', 1) - autowaf.display_msg(conf, 'Tranzport', opts.tranzport) - if opts.build_tests: - conf.env['BUILD_TESTS'] = opts.build_tests - autowaf.display_msg(conf, 'Unit Tests', bool(conf.env['BUILD_TESTS']) and bool (conf.env['HAVE_CPPUNIT'])) - if opts.tranzport: - conf.define('TRANZPORT', 1) - autowaf.display_msg(conf, 'Universal Binary', opts.universal) - autowaf.display_msg(conf, 'VST Support', opts.vst) - if opts.vst: - conf.define('VST_SUPPORT', 1) - conf.env.append_value('CPPPATH', Options.options.wine_include) - autowaf.check_header(conf, 'windows.h', mandatory = True) - if bool(conf.env['JACK_SESSION']): - conf.define ('HAVE_JACK_SESSION', 1) - autowaf.display_msg(conf, 'Wiimote Support', opts.wiimote) - if opts.wiimote: - conf.define('WIIMOTE',1) - conf.define('WINDOWS_KEY', opts.windows_key) - autowaf.display_msg(conf, 'Windows Key', opts.windows_key) - conf.env['PROGRAM_NAME'] = opts.program_name - autowaf.display_msg(conf, 'Program Name', opts.program_name) - if opts.rt_alloc_debug: - conf.define('DEBUG_RT_ALLOC', 1) - - set_compiler_flags (conf, Options.options) - - autowaf.display_msg(conf, 'C Compiler flags', conf.env['CCFLAGS']) - autowaf.display_msg(conf, 'C++ Compiler flags', conf.env['CXXFLAGS']) - print('') - - # and dump the same stuff to a file for use in the build - - config_text = open ('libs/ardour/config_text.cc',"w") - config_text.write ('#include "ardour/ardour.h"\n\nnamespace ARDOUR {\nconst char* const ardour_config_info = "\\n\\\n') - config_text.write ("Install prefix: "); config_text.write (str (conf.env['PREFIX'])); config_text.write ("\\n\\\n") - config_text.write ("Debuggable build: "); config_text.write (str (str(conf.env['DEBUG']))); config_text.write ("\\n\\\n") - config_text.write ("Strict compiler flags: "); config_text.write (str (str(conf.env['STRICT']))); config_text.write ("\\n\\\n") - config_text.write ("Build documentation: "); config_text.write (str (str(conf.env['DOCS']))); config_text.write ("\\n\\\n") - config_text.write ('Build target: '); config_text.write (str (conf.env['build_target'])); config_text.write ("\\n\\\n") - config_text.write ('Architecture flags: '); config_text.write (str (opts.arch)); config_text.write ("\\n\\\n") - config_text.write ('Aubio: '); config_text.write (str (bool(conf.env['HAVE_AUBIO']))); config_text.write ("\\n\\\n") - config_text.write ('FPU optimization: '); config_text.write (str (opts.fpu_optimization)); config_text.write ("\\n\\\n") - config_text.write ('Freedesktop files: '); config_text.write (str (opts.freedesktop)); config_text.write ("\\n\\\n") - config_text.write ('Freesound: '); config_text.write (str (opts.freesound)); config_text.write ("\\n\\\n") - config_text.write ('LV2 support: '); config_text.write (str (bool(conf.env['HAVE_SLV2']))); config_text.write ("\\n\\\n") - config_text.write ('Rubberband: '); config_text.write (str (bool(conf.env['HAVE_RUBBERBAND']))); config_text.write ("\\n\\\n") - config_text.write ('Samplerate: '); config_text.write (str (bool(conf.env['HAVE_SAMPLERATE']))); config_text.write ("\\n\\\n") - config_text.write ('Soundtouch: '); config_text.write (str (bool(conf.env['HAVE_SOUNDTOUCH']))); config_text.write ("\\n\\\n") - config_text.write ('Translation: '); config_text.write (str (opts.nls)); config_text.write ("\\n\\\n") - config_text.write ('Tranzport: '); config_text.write (str (opts.tranzport)); config_text.write ("\\n\\\n") - config_text.write ('Universal binary: '); config_text.write (str (opts.universal)); config_text.write ("\\n\\\n") - config_text.write ('VST support: '); config_text.write (str (opts.vst)); config_text.write ("\\n\\\n") - config_text.write ('Wiimote support: '); config_text.write (str (opts.wiimote)); config_text.write ("\\n\\\n") - config_text.write ('Windows key: '); config_text.write (str (opts.windows_key)); config_text.write ("\\n\\\n") - config_text.write ('C compiler flags: '); config_text.write (str (conf.env['CCFLAGS'])); config_text.write ("\\n\\\n") - config_text.write ('C++ compiler flags: '); config_text.write (str (conf.env['CXXFLAGS'])); config_text.write ("\\n\\\n") - config_text.write ('Phone home: '); config_text.write (str (bool(conf.env['PHONE_HOME']))); config_text.write ("\\n\\\n") - config_text.write ('JACK session support: '); config_text.write (str (bool(conf.env['JACK_SESSION']))); config_text.write ("\\n\\\n") - config_text.write ('";}\n') - config_text.close () + autowaf.display_msg(conf, 'Build Target', conf.env['build_target']) + autowaf.display_msg(conf, 'Architecture flags', opts.arch) + autowaf.display_msg(conf, 'Aubio', bool(conf.env['HAVE_AUBIO'])) + autowaf.display_msg(conf, 'CoreAudio', bool(conf.env['HAVE_COREAUDIO'])) + autowaf.display_msg(conf, 'FLAC', bool(conf.env['HAVE_FLAC'])) + autowaf.display_msg(conf, 'Phone Home', opts.phone_home) + if opts.phone_home: + conf.env['PHONE_HOME'] = opts.phone_home + autowaf.display_msg(conf, 'FPU Optimization', opts.fpu_optimization) + if opts.fpu_optimization: + conf.define('FPU_OPTIMIZATION', 1) + autowaf.display_msg(conf, 'Freedesktop Files', opts.freedesktop) + autowaf.display_msg(conf, 'Freesound', opts.freesound) + if opts.freesound: + conf.define('FREESOUND',1) + autowaf.display_msg(conf, 'LV2 Support', bool(conf.env['HAVE_SLV2'])) + autowaf.display_msg(conf, 'OGG', bool(conf.env['HAVE_OGG'])) + autowaf.display_msg(conf, 'Rubberband', bool(conf.env['HAVE_RUBBERBAND'])) + autowaf.display_msg(conf, 'Samplerate', bool(conf.env['HAVE_SAMPLERATE'])) + autowaf.display_msg(conf, 'Soundtouch', bool(conf.env['HAVE_SOUNDTOUCH'])) + autowaf.display_msg(conf, 'Translation', opts.nls) + if opts.nls: + conf.define ('ENABLE_NLS', 1) + autowaf.display_msg(conf, 'Tranzport', opts.tranzport) + if opts.build_tests: + conf.env['BUILD_TESTS'] = opts.build_tests + autowaf.display_msg(conf, 'Unit Tests', bool(conf.env['BUILD_TESTS']) and bool (conf.env['HAVE_CPPUNIT'])) + if opts.tranzport: + conf.define('TRANZPORT', 1) + autowaf.display_msg(conf, 'Universal Binary', opts.universal) + autowaf.display_msg(conf, 'VST Support', opts.vst) + if opts.vst: + conf.define('VST_SUPPORT', 1) + conf.env.append_value('CPPPATH', Options.options.wine_include) + autowaf.check_header(conf, 'windows.h', mandatory = True) + if bool(conf.env['JACK_SESSION']): + conf.define ('HAVE_JACK_SESSION', 1) + autowaf.display_msg(conf, 'Wiimote Support', opts.wiimote) + if opts.wiimote: + conf.define('WIIMOTE',1) + conf.define('WINDOWS_KEY', opts.windows_key) + autowaf.display_msg(conf, 'Windows Key', opts.windows_key) + conf.env['PROGRAM_NAME'] = opts.program_name + autowaf.display_msg(conf, 'Program Name', opts.program_name) + if opts.rt_alloc_debug: + conf.define('DEBUG_RT_ALLOC', 1) + + set_compiler_flags (conf, Options.options) + + autowaf.display_msg(conf, 'C Compiler flags', conf.env['CCFLAGS']) + autowaf.display_msg(conf, 'C++ Compiler flags', conf.env['CXXFLAGS']) + print('') + + # and dump the same stuff to a file for use in the build + + config_text = open ('libs/ardour/config_text.cc',"w") + config_text.write ('#include "ardour/ardour.h"\n\nnamespace ARDOUR {\nconst char* const ardour_config_info = "\\n\\\n') + config_text.write ("Install prefix: "); config_text.write (str (conf.env['PREFIX'])); config_text.write ("\\n\\\n") + config_text.write ("Debuggable build: "); config_text.write (str (str(conf.env['DEBUG']))); config_text.write ("\\n\\\n") + config_text.write ("Strict compiler flags: "); config_text.write (str (str(conf.env['STRICT']))); config_text.write ("\\n\\\n") + config_text.write ("Build documentation: "); config_text.write (str (str(conf.env['DOCS']))); config_text.write ("\\n\\\n") + config_text.write ('Build target: '); config_text.write (str (conf.env['build_target'])); config_text.write ("\\n\\\n") + config_text.write ('Architecture flags: '); config_text.write (str (opts.arch)); config_text.write ("\\n\\\n") + config_text.write ('Aubio: '); config_text.write (str (bool(conf.env['HAVE_AUBIO']))); config_text.write ("\\n\\\n") + config_text.write ('FPU optimization: '); config_text.write (str (opts.fpu_optimization)); config_text.write ("\\n\\\n") + config_text.write ('Freedesktop files: '); config_text.write (str (opts.freedesktop)); config_text.write ("\\n\\\n") + config_text.write ('Freesound: '); config_text.write (str (opts.freesound)); config_text.write ("\\n\\\n") + config_text.write ('LV2 support: '); config_text.write (str (bool(conf.env['HAVE_SLV2']))); config_text.write ("\\n\\\n") + config_text.write ('Rubberband: '); config_text.write (str (bool(conf.env['HAVE_RUBBERBAND']))); config_text.write ("\\n\\\n") + config_text.write ('Samplerate: '); config_text.write (str (bool(conf.env['HAVE_SAMPLERATE']))); config_text.write ("\\n\\\n") + config_text.write ('Soundtouch: '); config_text.write (str (bool(conf.env['HAVE_SOUNDTOUCH']))); config_text.write ("\\n\\\n") + config_text.write ('Translation: '); config_text.write (str (opts.nls)); config_text.write ("\\n\\\n") + config_text.write ('Tranzport: '); config_text.write (str (opts.tranzport)); config_text.write ("\\n\\\n") + config_text.write ('Universal binary: '); config_text.write (str (opts.universal)); config_text.write ("\\n\\\n") + config_text.write ('VST support: '); config_text.write (str (opts.vst)); config_text.write ("\\n\\\n") + config_text.write ('Wiimote support: '); config_text.write (str (opts.wiimote)); config_text.write ("\\n\\\n") + config_text.write ('Windows key: '); config_text.write (str (opts.windows_key)); config_text.write ("\\n\\\n") + config_text.write ('C compiler flags: '); config_text.write (str (conf.env['CCFLAGS'])); config_text.write ("\\n\\\n") + config_text.write ('C++ compiler flags: '); config_text.write (str (conf.env['CXXFLAGS'])); config_text.write ("\\n\\\n") + config_text.write ('Phone home: '); config_text.write (str (bool(conf.env['PHONE_HOME']))); config_text.write ("\\n\\\n") + config_text.write ('JACK session support: '); config_text.write (str (bool(conf.env['JACK_SESSION']))); config_text.write ("\\n\\\n") + config_text.write ('";}\n') + config_text.close () def build(bld): # add directories that contain only headers, to workaround an issue with waf @@ -605,35 +605,35 @@ def build(bld): bld.path.find_dir ('libs/taglib/taglib') bld.path.find_dir ('libs/pbd/pbd') - autowaf.set_recursive() - if sys.platform == 'darwin': - bld.add_subdirs('libs/appleutility') - for i in children: - bld.add_subdirs(i) - - # ideally, we'd like to use the OS-provided MIDI API - # for default ports. that doesn't work on at least - # Fedora (Nov 9th, 2009) so use JACK MIDI on linux. - - if sys.platform == 'darwin': - rc_subst_dict = { - 'MIDITAG' : 'control', - 'MIDITYPE' : 'coremidi', - 'JACK_INPUT' : 'auditioner' - } - else: - rc_subst_dict = { - 'MIDITAG' : 'control', - 'MIDITYPE' : 'jack', - 'JACK_INPUT' : 'auditioner' - } - - obj = bld.new_task_gen('subst') - obj.source = 'ardour.rc.in' - obj.target = 'ardour_system.rc' - obj.dict = rc_subst_dict - obj.install_path = '${CONFIGDIR}/ardour3' + autowaf.set_recursive() + if sys.platform == 'darwin': + bld.add_subdirs('libs/appleutility') + for i in children: + bld.add_subdirs(i) + + # ideally, we'd like to use the OS-provided MIDI API + # for default ports. that doesn't work on at least + # Fedora (Nov 9th, 2009) so use JACK MIDI on linux. + + if sys.platform == 'darwin': + rc_subst_dict = { + 'MIDITAG' : 'control', + 'MIDITYPE' : 'coremidi', + 'JACK_INPUT' : 'auditioner' + } + else: + rc_subst_dict = { + 'MIDITAG' : 'control', + 'MIDITYPE' : 'jack', + 'JACK_INPUT' : 'auditioner' + } + + obj = bld.new_task_gen('subst') + obj.source = 'ardour.rc.in' + obj.target = 'ardour_system.rc' + obj.dict = rc_subst_dict + obj.install_path = '${CONFIGDIR}/ardour3' def i18n(bld): - bld.recurse (i18n_children) + bld.recurse (i18n_children) -- cgit v1.2.3