Adds an 'upload' property to ExportFormatSpecification, to indicate that files exported with that format specfication should be uploaded to Soundcloud, and makes it editable in the export format dialogue. Adds fields for the Soundcloud username & password to the file format selection page, as well as an option to make the uploaded files public and open them in the system browser. Possible improvements not yet implemented: - make upload happen in its own thread - cosmetic tidying up of dialogue control layout - remember username & password
720 lines
24 KiB
Python
720 lines
24 KiB
Python
#!/usr/bin/env python
|
|
from waflib.extras import autowaf as autowaf
|
|
from waflib import Options, TaskGen
|
|
import waflib.Logs as Logs, waflib.Utils as Utils
|
|
import os
|
|
import sys
|
|
import re
|
|
import time
|
|
from waflib.Task import Task
|
|
|
|
I18N_PACKAGE = 'gtk2_ardour3'
|
|
|
|
# Mandatory variables
|
|
top = '.'
|
|
out = 'build'
|
|
|
|
path_prefix = 'gtk2_ardour/'
|
|
|
|
gtk2_ardour_sources = [
|
|
'about.cc',
|
|
'actions.cc',
|
|
'add_route_dialog.cc',
|
|
'ambiguous_file_dialog.cc',
|
|
'analysis_window.cc',
|
|
'ardour_button.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',
|
|
'ardour_window.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',
|
|
'big_clock_window.cc',
|
|
'bundle_manager.cc',
|
|
'button_joiner.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',
|
|
'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_ops.cc',
|
|
'editor_regions.cc',
|
|
'editor_routes.cc',
|
|
'editor_rulers.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',
|
|
'sfdb_freesound_mootcher.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',
|
|
'gui_object.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',
|
|
'main_clock.cc',
|
|
'marker.cc',
|
|
'midi_automation_line.cc',
|
|
'midi_channel_dialog.cc',
|
|
'midi_channel_selector.cc',
|
|
'midi_cut_buffer.cc',
|
|
'midi_export_dialog.cc',
|
|
'midi_list_editor.cc',
|
|
'midi_port_dialog.cc',
|
|
'midi_region_view.cc',
|
|
'midi_scroomer.cc',
|
|
'midi_selection.cc',
|
|
'midi_streamview.cc',
|
|
'midi_time_axis.cc',
|
|
'midi_tracer.cc',
|
|
'midi_velocity_dialog.cc',
|
|
'missing_file_dialog.cc',
|
|
'missing_plugin_dialog.cc',
|
|
'mixer_actor.cc',
|
|
'mixer_group_tabs.cc',
|
|
'mixer_strip.cc',
|
|
'mixer_ui.cc',
|
|
'meterbridge.cc',
|
|
'meter_strip.cc',
|
|
'meter_patterns.cc',
|
|
'monitor_section.cc',
|
|
'mono_panner.cc',
|
|
'mono_panner_editor.cc',
|
|
'mouse_cursors.cc',
|
|
'nag.cc',
|
|
'new_plugin_preset_dialog.cc',
|
|
'normalize_dialog.cc',
|
|
'note_player.cc',
|
|
'nsm.cc',
|
|
'nsmclient.cc',
|
|
'option_editor.cc',
|
|
'opts.cc',
|
|
'panner2d.cc',
|
|
'panner_editor.cc',
|
|
'panner_interface.cc',
|
|
'panner_ui.cc',
|
|
'piano_roll_header.cc',
|
|
'pingback.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',
|
|
'search_path_option.cc',
|
|
'selection.cc',
|
|
'send_ui.cc',
|
|
'session_dialog.cc',
|
|
'session_import_dialog.cc',
|
|
'session_metadata_dialog.cc',
|
|
'session_option_editor.cc',
|
|
'sfdb_ui.cc',
|
|
'shuttle_control.cc',
|
|
'simpleline.cc',
|
|
'simplerect.cc',
|
|
'soundcloud_export_selector.cc',
|
|
'splash.cc',
|
|
'speaker_dialog.cc',
|
|
'startup.cc',
|
|
'step_editor.cc',
|
|
'step_entry.cc',
|
|
'stereo_panner.cc',
|
|
'stereo_panner_editor.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_info_box.cc',
|
|
'time_selection.cc',
|
|
'track_selection.cc',
|
|
'track_view_list.cc',
|
|
'transpose_dialog.cc',
|
|
'ui_config.cc',
|
|
'utils.cc',
|
|
'verbose_cursor.cc',
|
|
'version.cc',
|
|
'visibility_group.cc',
|
|
'volume_controller.cc',
|
|
'waveview.cc',
|
|
'window_manager.cc',
|
|
# video-timeline related sources:
|
|
'video_image_frame.cc',
|
|
'add_video_dialog.cc',
|
|
'editor_videotimeline.cc',
|
|
'video_timeline.cc',
|
|
'system_exec.cc',
|
|
'video_monitor.cc',
|
|
'transcode_ffmpeg.cc',
|
|
'transcode_video_dialog.cc',
|
|
'video_server_dialog.cc',
|
|
'utils_videotl.cc',
|
|
'export_video_dialog.cc',
|
|
'export_video_infobox.cc'
|
|
]
|
|
|
|
def options(opt):
|
|
autowaf.set_options(opt)
|
|
|
|
def configure(conf):
|
|
conf.load('misc')
|
|
conf.load('compiler_cxx')
|
|
# we don't use hard-coded micro versions with ardour, so hard code it to zero
|
|
autowaf.build_version_files(
|
|
path_prefix + 'version.h',
|
|
path_prefix + 'version.cc',
|
|
'gtk2_ardour', conf.env['MAJOR'], conf.env['MINOR'], 0)
|
|
autowaf.configure(conf)
|
|
|
|
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 CoreAudio is present
|
|
|
|
autowaf.check_pkg(conf, 'flac', uselib_store='FLAC',
|
|
atleast_version='1.2.1')
|
|
autowaf.check_pkg(conf, 'gthread-2.0', 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, 'libgnomecanvas-2.0',
|
|
uselib_store='GNOMECANVAS', atleast_version='2.30')
|
|
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')
|
|
autowaf.check_pkg(conf, 'x11', uselib_store='X11', atleast_version='1.1', mandatory=False)
|
|
autowaf.check_pkg(conf, 'fontconfig', uselib_store='FONTCONFIG')
|
|
|
|
conf.write_config_header('gtk2ardour-config.h', remove=False)
|
|
|
|
# Boost headers
|
|
autowaf.check_header(conf, 'cxx', 'boost/shared_ptr.hpp')
|
|
autowaf.check_header(conf, 'cxx', 'boost/weak_ptr.hpp')
|
|
|
|
# Add a waf `feature' to allow compilation of things using winegcc
|
|
from waflib.TaskGen import feature
|
|
@feature("wine")
|
|
def set_winegcc(self):
|
|
self.env.LINK_CXX = self.env.LINK_CC = 'wineg++'
|
|
self.env.CC = 'winegcc'
|
|
|
|
def _doPyp(infileName, deps = False):
|
|
outStr = ''
|
|
out = []
|
|
re_spaces = re.compile("\s+")
|
|
|
|
if infileName == '-':
|
|
fd = sys.stdin
|
|
else:
|
|
fd = open(infileName)
|
|
inLines = fd.readlines()
|
|
if fd != sys.stdin:
|
|
fd.close()
|
|
|
|
|
|
for line in inLines:
|
|
bits = re_spaces.split(line)
|
|
if bits[0] == '##include':
|
|
incName = bits[1]
|
|
if (deps):
|
|
out += [ incName ]
|
|
else:
|
|
# assume included file comes from same place as source file
|
|
incName = os.path.join (os.path.dirname (infileName), incName);
|
|
outStr += _doPyp(incName)
|
|
else:
|
|
if not deps:
|
|
outStr += line
|
|
|
|
# done
|
|
if deps:
|
|
return out
|
|
else:
|
|
return outStr
|
|
|
|
def include_processor(task):
|
|
infileName = task.inputs[0].srcpath()
|
|
outfileName = os.path.join(out, task.outputs[0].bldpath())
|
|
fdOut = open (outfileName, "w")
|
|
fdOut.write (_doPyp(infileName))
|
|
fdOut.close ()
|
|
|
|
|
|
def build_color_scheme(path, prefix):
|
|
f = open (path, 'r')
|
|
color_scheme = ''
|
|
for line in f:
|
|
if re.search ('^#@color', line):
|
|
line.strip() # remove newline
|
|
words = line.split()
|
|
if len(color_scheme):
|
|
color_scheme += ';'
|
|
color_scheme += prefix
|
|
color_scheme += '_'
|
|
color_scheme += words[1]
|
|
color_scheme += ':'
|
|
color_scheme += words[2]
|
|
f.close()
|
|
return color_scheme
|
|
|
|
def build(bld):
|
|
|
|
VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR'])
|
|
|
|
if bld.is_defined('WINDOWS_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(features = 'cxx c cxxprogram wine')
|
|
obj.source = '''
|
|
../libs/fst/fst.c
|
|
../libs/fst/fstinfofile.c
|
|
../libs/fst/vsti.c
|
|
../libs/fst/vstwin.c
|
|
../vst/winmain.c
|
|
'''
|
|
obj.uselib = 'ALSA'
|
|
obj.use = [ 'libpbd',
|
|
'libmidipp',
|
|
'libtaglib',
|
|
'libardour',
|
|
'libardour_cp',
|
|
'libgtk2_ardour',
|
|
'libgtkmm2ext',
|
|
'libtaglib']
|
|
obj.target = 'ardour-' + bld.env['VERSION'] + '-vst.exe.so'
|
|
obj.includes = [ '../libs/fst', '.' ]
|
|
obj.linkflags = ['-mwindows', '-Wl,--export-dynamic']
|
|
obj.defines = ['_POSIX_SOURCE', 'USE_WS_PREFIX']
|
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
|
# end of the wine executable
|
|
|
|
# now the shared library containing the GTK GUI for ardour
|
|
obj = bld (features = 'cxx c cxxshlib')
|
|
obj.source = gtk2_ardour_sources
|
|
obj.includes = [ '../libs/fst', '.' ]
|
|
obj.name = 'libgtk2_ardour'
|
|
obj.target = 'gtk2_ardour'
|
|
else:
|
|
# just the normal executable version of the GTK GUI
|
|
obj = bld(features = 'cxx c cxxprogram')
|
|
obj.source = gtk2_ardour_sources
|
|
obj.target = 'ardour-' + bld.env['VERSION']
|
|
obj.includes = ['.']
|
|
|
|
# continue with setup of obj, which could be a shared library
|
|
# or an executable.
|
|
|
|
obj.install_path = os.path.join(bld.env['LIBDIR'], 'ardour3')
|
|
|
|
obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG ALSA CURL DL'
|
|
obj.uselib += ' GTKMM GNOMECANVASMM GNOMECANVAS '
|
|
obj.uselib += ' AUDIOUNITS OSX GTKOSX LO '
|
|
obj.use = [ 'libpbd',
|
|
'libmidipp',
|
|
'libtaglib',
|
|
'ardour',
|
|
'libardour_cp',
|
|
'libgtkmm2ext',
|
|
'libtaglib' ]
|
|
if sys.platform == 'darwin':
|
|
obj.use += ' libappleutility'
|
|
obj.defines = [
|
|
'PACKAGE="' + I18N_PACKAGE + '"',
|
|
'VERSIONSTRING="' + bld.env['VERSION'] + '"',
|
|
'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"',
|
|
'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"',
|
|
'LOCALEDIR="' + os.path.join(os.path.normpath(bld.env['DATADIR']), 'locale') + '"',
|
|
'PROGRAM_NAME="' + bld.env['PROGRAM_NAME'] + '"'
|
|
]
|
|
obj.includes += ['../libs']
|
|
|
|
if bld.is_defined('HAVE_SUIL'):
|
|
obj.source += [ 'lv2_plugin_ui.cc' ]
|
|
obj.use += [ 'SUIL' ]
|
|
|
|
if bld.is_defined('NEED_INTL'):
|
|
obj.linkflags = ' -lintl'
|
|
|
|
if bld.is_defined('WINDOWS_VST_SUPPORT'):
|
|
obj.source += [ 'windows_vst_plugin_ui.cc' ]
|
|
obj.defines += [ 'WINDOWS_VST_SUPPORT' ]
|
|
obj.use += [ 'X11' ]
|
|
|
|
if bld.is_defined('LXVST_SUPPORT'):
|
|
obj.source += [ 'linux_vst_gui_support.cc', 'lxvst_plugin_ui.cc' ]
|
|
obj.defines += [ 'LXVST_SUPPORT' ]
|
|
obj.use += [ 'X11' ]
|
|
|
|
if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT'):
|
|
obj.source += [ 'vst_plugin_ui.cc' ]
|
|
|
|
if bld.is_defined('PHONE_HOME'):
|
|
obj.defines += [ 'PHONE_HOME' ]
|
|
|
|
if bld.is_defined('HAVE_COREAUDIO'):
|
|
TaskGen.task_gen.mappings['.mm'] = TaskGen.task_gen.mappings['.cc']
|
|
obj.source += [ 'cocoacarbon.mm' ]
|
|
obj.use += ' libappleutility '
|
|
|
|
if bld.is_defined('AUDIOUNIT_SUPPORT'):
|
|
obj.source += [ 'au_pluginui.mm' ]
|
|
|
|
# Wrappers
|
|
|
|
wrapper_subst_dict = {
|
|
'INSTALL_PREFIX' : bld.env['PREFIX'],
|
|
'LIBDIR' : os.path.normpath(bld.env['LIBDIR']),
|
|
'DATADIR' : os.path.normpath(bld.env['DATADIR']),
|
|
'SYSCONFDIR' : os.path.normpath(bld.env['SYSCONFDIR']),
|
|
'LIBS' : 'build/libs',
|
|
'VERSION' : bld.env['VERSION'],
|
|
'EXECUTABLE' : 'build/gtk2_ardour/ardour-' + bld.env['VERSION']
|
|
}
|
|
|
|
def set_subst_dict(obj, dict):
|
|
for i in dict:
|
|
setattr(obj, i, dict[i])
|
|
|
|
obj = bld(features = 'subst', rule= 'chmod 0755 ${TGT}')
|
|
obj.source = 'ardev_common.sh.in'
|
|
obj.target = 'ardev_common_waf.sh'
|
|
obj.chmod = Utils.O755
|
|
obj.dict = wrapper_subst_dict
|
|
set_subst_dict(obj, wrapper_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = 'ardour.sh.in'
|
|
obj.target = 'ardour3'
|
|
obj.chmod = Utils.O755
|
|
obj.dict = wrapper_subst_dict
|
|
obj.install_path = bld.env['BINDIR']
|
|
set_subst_dict(obj, wrapper_subst_dict)
|
|
|
|
if bld.is_defined('WINDOWS_VST_SUPPORT'):
|
|
obj = bld(features = 'subst')
|
|
obj.source = '../vst/ardourvst.in'
|
|
obj.target = 'ardourvst3'
|
|
obj.chmod = Utils.O755
|
|
obj.dict = wrapper_subst_dict
|
|
obj.install_path = bld.env['BINDIR']
|
|
set_subst_dict(obj, wrapper_subst_dict)
|
|
|
|
# Font configuration
|
|
|
|
dark_rc_subst_dict = {}
|
|
light_rc_subst_dict = {}
|
|
font_sizes = {}
|
|
base_font = ""
|
|
|
|
# Set up font sizes
|
|
if bld.is_defined('GTKOSX'): # OS X fonts
|
|
basefont = ""
|
|
font_sizes = {
|
|
'SMALLER' : '9',
|
|
'SMALL' : '10',
|
|
'NORMAL' : '11',
|
|
'BIG' : '13',
|
|
'BIGGER' : '17',
|
|
'LARGE' : '18',
|
|
'LARGER' : '28',
|
|
'HUGER' : '36',
|
|
'MASSIVE' : '60',
|
|
}
|
|
|
|
# There is no acceptable monospace font available on older versions of OS X
|
|
# and no API on those versions to load TTF files that will work with
|
|
# GTK/fontconfig/pango.
|
|
#
|
|
# In addition, the ArdourMono font gets clipped for some reason on OS X
|
|
#
|
|
# Moreover, Lucida Grande just seems to work even though it is not monospace
|
|
# so just use it.
|
|
#
|
|
font_names = {
|
|
'MONOSPACE' : 'Lucida Grande',
|
|
}
|
|
else: # Linux/X11 fonts
|
|
basefont = '' # unspecified - use system defaults
|
|
font_sizes = {
|
|
'SMALLER' : '8',
|
|
'SMALL' : '9',
|
|
'NORMAL' : '10',
|
|
'BIG' : '14',
|
|
'BIGGER' : '17',
|
|
'LARGE' : '18',
|
|
'LARGER' : '24',
|
|
'HUGER' : '34',
|
|
'MASSIVE' : '60',
|
|
}
|
|
font_names = {
|
|
'MONOSPACE' : 'ArdourMono',
|
|
}
|
|
|
|
# Set up font substitution dictionary
|
|
# @FONT_XXXX@
|
|
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
|
|
|
|
# @FONT_SIZE_XXXX@
|
|
for sizename,points in iter(font_sizes.items()):
|
|
key = "_".join (['FONT_SIZE',sizename])
|
|
dark_rc_subst_dict[key] = points
|
|
light_rc_subst_dict[key] = points
|
|
|
|
# various font names, eg @BOLD_MONOSPACE@
|
|
for font_sym,text in iter(font_names.items()):
|
|
key = font_sym
|
|
dark_rc_subst_dict[key] = text
|
|
light_rc_subst_dict[key] = text
|
|
|
|
# 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['COLPREFIX'] = 'ARDOUR_LIGHT'
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_ui_dark.rc.in' ]
|
|
obj.target = 'ardour3_ui_dark.rc.pre'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, dark_rc_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_ui_light.rc.in' ]
|
|
obj.target = 'ardour3_ui_light.rc.pre'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, light_rc_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_styles.rc.in' ]
|
|
obj.target = 'ardour3_dark_styles.rc'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, dark_rc_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_styles.rc.in' ]
|
|
obj.target = 'ardour3_light_styles.rc'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, light_rc_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_fonts.rc.in' ]
|
|
obj.target = 'ardour3_dark_fonts.rc'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, dark_rc_subst_dict)
|
|
|
|
obj = bld(features = 'subst')
|
|
obj.source = [ 'ardour3_fonts.rc.in' ]
|
|
obj.target = 'ardour3_light_fonts.rc'
|
|
obj.install_path = None
|
|
set_subst_dict(obj, light_rc_subst_dict)
|
|
|
|
obj = bld(rule = 'cp ${SRC} ${TGT}')
|
|
obj.source = [ 'ardour3_widget_list.rc' ]
|
|
obj.target = 'ardour3_widgets.rc'
|
|
obj.install_path = None
|
|
|
|
obj = bld (rule = include_processor)
|
|
obj.source = [ 'ardour3_ui_dark.rc.pre' ]
|
|
# find and add all ##include dependencies as sources
|
|
obj.source += _doPyp (bld.path.find_resource ('ardour3_ui_dark.rc.in').srcpath(), True)
|
|
obj.target = 'ardour3_ui_dark.rc'
|
|
obj.install_path = '${SYSCONFDIR}/ardour3'
|
|
|
|
obj = bld (rule = include_processor)
|
|
obj.source = [ 'ardour3_ui_light.rc.pre' ]
|
|
# find and add all ##include dependencies as sources
|
|
obj.source += _doPyp (bld.path.find_resource ('ardour3_ui_light.rc.in').srcpath(), True)
|
|
obj.target = 'ardour3_ui_light.rc'
|
|
obj.install_path = '${SYSCONFDIR}/ardour3'
|
|
|
|
# Menus
|
|
menus_argv = []
|
|
if bld.is_defined('GTKOSX'):
|
|
menus_argv = [ '-E', '-P', '-DGTKOSX', '-DNOVIDEOTIMELINE' ]
|
|
else:
|
|
menus_argv = [ '-E', '-P' ]
|
|
|
|
obj = bld(features = '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'
|
|
obj.dep_vars = ['GTKOSX']
|
|
bld.install_files(os.path.join(bld.env['SYSCONFDIR'], '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(
|
|
target = b + '.bindings',
|
|
source = b + '.bindings.in',
|
|
rule = '../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap <${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
|
|
)
|
|
obj.install_path = os.path.join(bld.env['SYSCONFDIR'], 'ardour3')
|
|
|
|
# not modified at present
|
|
bld.install_files(os.path.join(bld.env['SYSCONFDIR'], 'ardour3'),
|
|
'step_editing.bindings')
|
|
bld.install_files(os.path.join(bld.env['SYSCONFDIR'], 'ardour3'),
|
|
'mixer.bindings')
|
|
|
|
# Icons/Images
|
|
bld.install_files('${DATADIR}/ardour3/icons', bld.path.ant_glob('icons/*.png'))
|
|
bld.install_files('${DATADIR}/ardour3/pixmaps', bld.path.ant_glob('pixmaps/*.xpm'))
|
|
bld.install_files('${DATADIR}/ardour3', 'splash.png')
|
|
bld.install_files('${DATADIR}/ardour3', 'ArdourMono.ttf')
|
|
|
|
# Default UI configuration
|
|
bld.install_files('${SYSCONFDIR}/ardour3', 'ardour3_ui_default.conf')
|
|
|
|
# Default export stuff
|
|
bld.install_files('${SYSCONFDIR}/ardour3/export', bld.path.ant_glob('export/*.format'))
|
|
|
|
# i18n
|
|
if bld.is_defined('ENABLE_NLS'):
|
|
mo_files = bld.path.ant_glob('po/*.mo')
|
|
for mo in mo_files:
|
|
lang = os.path.basename(mo.srcpath()).replace('.mo', '')
|
|
bld.install_as(os.path.join(bld.env['PREFIX'], 'share', 'locale',
|
|
lang, 'LC_MESSAGES', I18N_PACKAGE + '.mo'),
|
|
mo)
|
|
|
|
def i18n(bld):
|
|
autowaf.build_i18n(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
|
|
'Paul Davis')
|
|
|
|
def i18n_pot(bld):
|
|
autowaf.build_i18n_pot(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
|
|
'Paul Davis')
|
|
|
|
def i18n_po(bld):
|
|
autowaf.build_i18n_po(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
|
|
'Paul Davis')
|
|
|
|
def i18n_mo(bld):
|
|
autowaf.build_i18n_mo(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources,
|
|
'Paul Davis')
|