X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fwscript;h=9ef81a268c12d03b08546c4b20cef7d583417600;hb=95a61717faa4b427be0e7821ee91f7df81065815;hp=a6c0af1a120c2711163fd8da188ed2da1a818b5e;hpb=82f3e6bc3cb1bdc166f208f3fa6f49385f41a930;p=ardour.git diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index a6c0af1a12..9ef81a268c 100644 --- a/gtk2_ardour/wscript +++ b/gtk2_ardour/wscript @@ -11,11 +11,18 @@ from waflib.Task import Task from waflib.Tools import winres import subprocess import glob +import copy # Mandatory variables top = '.' out = 'build' +from waflib import TaskGen +@TaskGen.extension('.m') +def m_hook(self, node): + """Alias .m files to be compiled the same as .c files, gcc will do the right thing.""" + return self.create_compiled_task('c', node) + path_prefix = 'gtk2_ardour/' gtk2_ardour_sources = [ @@ -24,11 +31,8 @@ gtk2_ardour_sources = [ 'add_route_dialog.cc', 'ambiguous_file_dialog.cc', 'analysis_window.cc', - 'ardour_button.cc', 'ardour_dialog.cc', - 'ardour_display.cc', - 'ardour_dropdown.cc', - 'ardour_knob.cc', + 'ardour_http.cc', 'ardour_ui.cc', 'ardour_ui2.cc', 'ardour_ui_dependents.cc', @@ -49,12 +53,14 @@ gtk2_ardour_sources = [ 'automation_time_axis.cc', 'axis_view.cc', 'big_clock_window.cc', + 'big_transport_window.cc', 'bundle_manager.cc', - 'button_joiner.cc', 'clock_group.cc', + 'color_theme_manager.cc', 'configinfo.cc', 'control_point.cc', 'control_point_dialog.cc', + 'control_slave_ui.cc', 'cursor_context.cc', 'curvetest.cc', 'debug.cc', @@ -97,6 +103,7 @@ gtk2_ardour_sources = [ 'export_format_dialog.cc', 'export_format_selector.cc', 'export_preset_selector.cc', + 'export_report.cc', 'export_timespan_selector.cc', 'fft.cc', 'fft_graph.cc', @@ -110,6 +117,7 @@ gtk2_ardour_sources = [ 'group_tabs.cc', 'gtk_pianokeyboard.c', 'gui_object.cc', + 'idleometer.cc', 'insert_remove_time_dialog.cc', 'instrument_selector.cc', 'interthread_progress_window.cc', @@ -121,6 +129,10 @@ gtk2_ardour_sources = [ 'led.cc', 'level_meter.cc', 'location_ui.cc', + 'lua_script_manager.cc', + 'luadialog.cc', + 'luainstance.cc', + 'luawindow.cc', 'main.cc', 'main_clock.cc', 'marker.cc', @@ -130,7 +142,6 @@ gtk2_ardour_sources = [ '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', @@ -138,9 +149,9 @@ gtk2_ardour_sources = [ 'midi_time_axis.cc', 'midi_tracer.cc', 'midi_velocity_dialog.cc', + 'mini_timeline.cc', 'missing_file_dialog.cc', 'missing_plugin_dialog.cc', - 'mixer_actor.cc', 'mixer_group_tabs.cc', 'mixer_strip.cc', 'mixer_ui.cc', @@ -168,12 +179,18 @@ gtk2_ardour_sources = [ 'panner_interface.cc', 'panner_ui.cc', 'patch_change.cc', + 'patch_change_widget.cc', 'piano_roll_header.cc', 'pingback.cc', 'playlist_selector.cc', + 'plugin_display.cc', 'plugin_eq_gui.cc', + 'plugin_pin_dialog.cc', + 'plugin_setup_dialog.cc', 'plugin_selector.cc', 'plugin_ui.cc', + 'plugin_dspload_ui.cc', + 'plugin_dspload_window.cc', 'port_group.cc', 'port_insert_ui.cc', 'port_matrix.cc', @@ -184,9 +201,10 @@ gtk2_ardour_sources = [ 'port_matrix_labels.cc', 'port_matrix_row_labels.cc', 'processor_box.cc', + 'processor_selection.cc', 'patch_change_dialog.cc', 'progress_reporter.cc', - 'prompter.cc', + 'pt_import_selector.cc', 'public_editor.cc', 'quantize_dialog.cc', 'rc_option_editor.cc', @@ -205,10 +223,13 @@ gtk2_ardour_sources = [ 'route_ui.cc', 'ruler_dialog.cc', 'save_as_dialog.cc', + 'save_template_dialog.cc', 'search_path_option.cc', + 'script_selector.cc', 'selection.cc', 'selection_memento.cc', 'send_ui.cc', + 'session_archive_dialog.cc', 'session_dialog.cc', 'session_import_dialog.cc', 'session_metadata_dialog.cc', @@ -225,32 +246,38 @@ gtk2_ardour_sources = [ 'stereo_panner_editor.cc', 'streamview.cc', 'strip_silence_dialog.cc', + 'stripable_colorpicker.cc', + 'stripable_time_axis.cc', 'sys_ex.cc', 'tape_region_view.cc', + 'template_dialog.cc', + 'tempo_curve.cc', 'tempo_dialog.cc', - 'tempo_lines.cc', - 'theme_manager.cc', + 'grid_lines.cc', 'time_axis_view.cc', 'time_axis_view_item.cc', 'time_fx_dialog.cc', 'time_info_box.cc', 'time_selection.cc', 'timers.cc', - 'tooltips.cc', 'track_selection.cc', 'track_view_list.cc', 'transform_dialog.cc', + 'transport_control.cc', + 'transport_control_ui.cc', + 'transport_masters_dialog.cc', 'transpose_dialog.cc', 'ui_config.cc', 'utils.cc', + 'vca_master_strip.cc', 'verbose_cursor.cc', 'visibility_group.cc', - 'volume_controller.cc', 'window_manager.cc', # video-timeline related sources: 'video_image_frame.cc', 'add_video_dialog.cc', 'editor_videotimeline.cc', + 'vca_time_axis.cc', 'video_timeline.cc', 'video_monitor.cc', 'transcode_ffmpeg.cc', @@ -258,11 +285,15 @@ gtk2_ardour_sources = [ 'video_server_dialog.cc', 'utils_videotl.cc', 'export_video_dialog.cc', - 'export_video_infobox.cc', - 'video_tool_paths.cc' + 'export_video_infobox.cc' ] def enoify (major, minor): + # Code names based on + # https://en.wikipedia.org/wiki/Brian_Eno_discography + # + # sort Studio albums + Collaborative albums + Compilation albums by Month/Year. + # (no Singles, no EPs, no Video Albums, no Production) if major == 3: return "\\n\\\"E-No\\\"" elif major == 4: @@ -280,6 +311,55 @@ def enoify (major, minor): return "\\n\\\"Another Green World\\\"" elif minor == 6: return "\\n\\\"Evening Star\\\"" + elif minor == 7: + return "\\n\\\"Cluster and Eno\\\"" + elif major == 5: + if minor == 0: + return "\\n\\\"Before and After Science\\\"" + elif minor == 1: + return "\\n\\\"After the Heat\\\"" + elif minor == 2: + return "\\n\\\"Music for Airports\\\"" + elif minor == 3: + return "\\n\\\"Music for Films\\\"" + elif minor == 4: + return "\\n\\\"In a Land of Clear Colours\\\"" + elif minor == 5: + return "\\n\\\"The Plateaux of Mirror\\\"" + elif minor == 6: + return "\\n\\\"Possible Musics\\\"" # 1980 Collaborative + elif minor == 7: + return "\\n\\\"My Life in the Bush of Ghosts\\\"" # 1981 + elif minor == 8: + return "\\n\\\"Music for Airplay\\\"" # 1981 Compilation + elif minor == 9: + return "\\n\\\"On Land\\\"" # 1982 + elif minor == 10: # 6.0 ?? + return "\\n\\\"Atmospheres and Soundtracks\\\"" # 1983 + elif minor == 11: + return "\\n\\\"More Music for Films\\\"" # 1983 + elif minor == 12: + return "\\n\\\"Working Backwards\\\"" # 1984 Compilation + elif major == 6: + if minor == 0: + return "\\n\\\"The Pearl\\\"" # 1984 Collaborative + elif minor == 1: + return "\\n\\\"Begegnungen\\\"" # 1984 Compilation + ### From now on, no more compilations, names are not suitable + elif minor == 2: + return "\\n\\\"Thursday Afternoon\\\"" # 1985 + elif minor == 3: + return "\\n\\\"Music for Films III\\\"" # 1988 Collaborative + elif minor == 4: + return "\\n\\\"Wrong Way Up\\\"" # 1990 Collaborative + elif minor == 5: + return "\\n\\\"Nerve Net\\\"" # 1992 + elif minor == 6: + return "\\n\\\"The Shutov Assembly\\\"" # 1992 + elif minor == 7: + return "\\n\\\"Neroli\\\"" # 1993 + elif minor == 8: + return "\\n\\\"Headcandy\\\"" # 1994 return "\\\"\\\"" def options(opt): @@ -306,8 +386,26 @@ def configure(conf): atleast_version='2.18') 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, 'pangoft2', uselib_store='PANGOFT2', atleast_version='1.36.8', mandatory=False) autowaf.check_pkg(conf, 'fontconfig', uselib_store='FONTCONFIG') + + if sys.platform == 'darwin': + retval = conf.run_c_code (code='#include \n\ + int main(void) { (void) NSWindowWillStartLiveResizeNotification; return 0; }\n', + env = conf.env.derive (), + features = [ 'c' ], + compiler = 'cc', + compile_filename='test.m', + mandatory = False, + ) + + if retval == 0: + autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'ok') + conf.define ('HAVE_COCOA_LIVE_RESIZING', 1) + else: + autowaf.display_msg (conf, 'Checking for Cocoa live resizing constants', 'too old - AU plugin windows will be fixed size') + conf.write_config_header('gtk2ardour-config.h', remove=False) bak = conf.env['define_key'] @@ -340,7 +438,7 @@ def _doPyp(infileName, deps = False): inLines = fd.readlines() if fd != sys.stdin: fd.close() - + for line in inLines: bits = re_spaces.split(line) @@ -392,6 +490,77 @@ def build(bld): VERSION = "%s.%s" % (bld.env['MAJOR'], bld.env['MINOR']) I18N_PACKAGE = 'gtk2_ardour' + bld.env['MAJOR'] + # Tool to dump lua-bindings (of gtk2ardour + libs) + if re.search ("linux", sys.platform) != None and bld.env['LUABINDINGDOC']: + obj = bld (features = 'cxx c cxxprogram') + obj.install_path = None + obj.source = list(gtk2_ardour_sources) + obj.target = 'luadoc' + obj.includes = ['.', '../libs'] + obj.ldflags = ['-no-undefined'] + obj.use = [ + 'libpbd', + 'libardour', + 'libardour_cp', + 'libtemporal', + 'libmidipp', + 'libgtkmm2ext', + 'libcanvas', + 'libwaveview', + 'libwidgets', + 'libptformat', + ] + obj.defines = [ + 'NOMAIN', + 'PACKAGE="' + I18N_PACKAGE + '"', + 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', + 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', + 'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"', + ] + obj.linkflags = '' + obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML ' + obj.source += [ 'luadoc.cc', 'bundle_env_linux.cc' ] + if bld.is_defined('HAVE_SUIL'): + obj.source += [ 'lv2_plugin_ui.cc' ] + obj.use += [ 'SUIL' ] + if bld.is_defined('LXVST_SUPPORT'): + obj.source += [ 'vst_plugin_ui.cc' ] + obj.source += [ 'linux_vst_gui_support.cc', 'lxvst_plugin_ui.cc' ] + obj.defines += [ 'LXVST_SUPPORT' ] + obj.use += [ 'X11' ] + +# # Tool to test libcanvas +# if re.search ("linux", sys.platform) != None and bld.env['CANVASTESTUI']: +# obj = bld (features = 'cxx c cxxprogram') +# obj.install_path = None +# obj.source = list(gtk2_ardour_sources) +# obj.source = [ 'ardour_button.cc', 'ui_config.cc', 'tooltips.cc' ] +# obj.target = 'canvas_test' +# obj.includes = ['.', '../libs'] +# obj.ldflags = ['-no-undefined'] +# obj.use = [ +# 'libpbd', +# 'libardour', +# 'libardour_cp', +# 'libtemporal', +# 'libmidipp', +# 'libgtkmm2ext', +# 'libcanvas', +# 'libptformat', +# ] +# obj.defines = [ +# 'NOMAIN', +# 'PACKAGE="' + I18N_PACKAGE + '"', +# 'DATA_DIR="' + os.path.normpath(bld.env['DATADIR']) + '"', +# 'CONFIG_DIR="' + os.path.normpath(bld.env['SYSCONFDIR']) + '"', +# 'LOCALEDIR="' + os.path.normpath(bld.env['LOCALEDIR']) + '"', +# ] +# obj.linkflags = '' +# obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML ' +# # obj.source += [ 'canvas_test.cc', ] +# obj.source += [ 'toolbar_test.cc', 'enums.cc'] + + if bld.is_defined('WINDOWS_VST_SUPPORT') and bld.env['build_target'] != 'mingw': # Windows VST support w/wine # If we require VST support we build a stub main() and the FST library @@ -405,11 +574,13 @@ def build(bld): 'libmidipp', 'libardour', 'libardour_cp', - 'libtimecode', + 'libtemporal', 'libmidipp', 'libgtk2_ardour', 'libgtkmm2ext', 'libcanvas', + 'libwaveview', + 'libwidgets', 'libptformat', ] obj.target = 'ardour-' + str (bld.env['VERSION']) + '-vst.exe.so' @@ -422,10 +593,12 @@ def build(bld): # now the shared library containing the GTK GUI for ardour obj = bld (features = 'cxx c cxxshlib') - obj.source = gtk2_ardour_sources + # operate on copy to avoid adding sources twice + obj.source = list(gtk2_ardour_sources) obj.includes = [ '../libs/fst', '.' ] obj.name = 'libgtk2_ardour' obj.target = 'gtk2_ardour' + obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ] else: # just the normal executable version of the GTK GUI @@ -433,7 +606,8 @@ def build(bld): obj = bld (features = 'cxx c cxxprogram winres') else: obj = bld (features = 'cxx c cxxprogram') - obj.source = gtk2_ardour_sources + # operate on copy to avoid adding sources twice + obj.source = list(gtk2_ardour_sources) obj.target = 'ardour-' + str (bld.env['VERSION']) obj.includes = ['.'] obj.ldflags = ['-no-undefined'] @@ -448,10 +622,12 @@ def build(bld): obj.use = [ 'libpbd', 'libardour', 'libardour_cp', - 'libtimecode', + 'libtemporal', 'libmidipp', 'libgtkmm2ext', 'libcanvas', + 'libwaveview', + 'libwidgets', 'libptformat', ] @@ -463,13 +639,10 @@ def build(bld): ] obj.install_path = bld.env['DLLDIR'] obj.linkflags = '' - obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL' - obj.uselib += ' GTKMM CANVAS FFTW3F' - obj.uselib += ' AUDIOUNITS OSX GTKOSX LO ' - obj.uselib += ' TAGLIB ' + obj.uselib = 'UUID FLAC FONTCONFIG GLIBMM GTHREAD GTK OGG CURL DL GTKMM CANVAS FFTW3F LO TAGLIB XML ' if sys.platform == 'darwin': - obj.uselib += ' AUDIOUNITS OSX GTKOSX' + obj.uselib += ' AUDIOUNITS OSX ' obj.use += ' libappleutility' obj.source += [ 'cocoacarbon.mm', 'bundle_env_cocoa.cc' ] elif bld.env['build_target'] == 'mingw': @@ -484,13 +657,14 @@ def build(bld): if bld.env['build_target'] == 'mingw': obj.linkflags += ' -mwindows' + obj.use += [ 'PANGOFT2' ] if bld.is_defined('HAVE_SUIL'): obj.source += [ 'lv2_plugin_ui.cc' ] obj.use += [ 'SUIL' ] if bld.is_defined('HAVE_FFTW35F') and bld.env['build_target'] != 'mingw': - obj.linkflags += ' -lfftw3f_threads' + bld.env['LIB_FFTW3F'] += ['fftw3f_threads'] if bld.is_defined('NEED_INTL'): obj.linkflags += ' -lintl' @@ -500,15 +674,19 @@ def build(bld): obj.defines += [ 'WINDOWS_VST_SUPPORT' ] if bld.env['build_target'] != 'mingw': 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'): + if bld.is_defined('MACVST_SUPPORT'): + obj.source += [ 'mac_vst_plugin_ui.mm' ] + obj.defines += [ 'MACVST_SUPPORT' ] + + if bld.is_defined('WINDOWS_VST_SUPPORT') or bld.is_defined('LXVST_SUPPORT') or bld.is_defined ('MACVST_SUPPORT'): obj.source += [ 'vst_plugin_ui.cc' ] - + if bld.is_defined('PHONE_HOME'): obj.defines += [ 'PHONE_HOME' ] @@ -566,7 +744,7 @@ def build(bld): base_font = "" # Set up font sizes - if bld.is_defined('GTKOSX'): # OS X fonts + if sys.platform == 'darwin': basefont = "" font_sizes = { 'SMALLER' : '9', @@ -579,21 +757,19 @@ def build(bld): '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' : 'Monaco', - 'CLOCKFONT' : 'Lucida Grande', - } - else: # Linux/X11 fonts + if bld.env['build_target'] in ['panther', 'tiger', 'leopard'] or (Options.options.ppc and bld.env['build_target'] == 'snowleopard'): + # CTFontManagerRegisterFontsForURL for ArdourMono is 10.6 or newer + # "Lucida Grande" is not mono-spaced, but works for most cases, except big-clock-window + font_names = { + 'MONOSPACE' : 'Monaco', + 'CLOCKFONT' : 'Lucida Grande', + } + else: + font_names = { + 'MONOSPACE' : 'Monaco', + 'CLOCKFONT' : 'ArdourMono', + } + else: # Linux/X11 & Windows fonts basefont = '' # unspecified - use system defaults font_sizes = { 'SMALLER' : '6', @@ -621,9 +797,9 @@ def build(bld): else: key = "_".join (['FONT',sizename]) fontstyle = " ".join ([basefont,points]) - + font_subst_dict[key] = fontstyle - + # @FONT_SIZE_XXXX@ for sizename,points in iter(font_sizes.items()): key = "_".join (['FONT_SIZE',sizename]) @@ -650,8 +826,8 @@ def build(bld): # Menus menus_argv = [] - if bld.is_defined('GTKOSX'): - menus_argv = [ '-E', '-P', '-DGTKOSX' ] + if sys.platform == 'darwin': + menus_argv = [ '-E', '-P', '-D__APPLE__', '-' ] else: menus_argv = [ '-E', '-P' ] @@ -674,7 +850,9 @@ def build(bld): # Freedesktop freedesktop_subst_dict = { 'ARDOUR_EXEC' : str (bld.env['lwrcase_dirname']), - 'ARDOUR_ICON' : str (bld.env['lwrcase_dirname']) + 'ARDOUR_ICON' : str (bld.env['lwrcase_dirname']), + 'VERSION': str (bld.env['VERSION']), + 'DATE': str (bld.env['DATE']), } if bld.env['FREEDESKTOP']: @@ -702,33 +880,26 @@ def build(bld): # Keybindings - # 'SAE-de-keypad', 'SAE-de-nokeypad', 'SAE-us-keypad', - # 'SAE-us-nokeypad', 'ergonomic-us' - - # + # NATIVE ARDOUR BINDING FILES # explicitly state the use of perl here so that it works on windows too - # - a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap <${SRC} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] ) - for b in [ 'mnemonic-us' ] : + # + a_rule = 'perl ../tools/fmt-bindings --platform="%s" --winkey="%s" --accelmap ${SRC[0].abspath()} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] ) + for b in [ 'ardour' ] : obj = bld( - target = b + '.bindings', - source = b + '.bindings.in', + target = b + '.keys', + source = [ b + '.keys.in', 'mixer.bindings', 'processor_box.bindings', 'step_editing.bindings', 'monitor.bindings' ], rule = a_rule ) obj.install_path = bld.env['CONFDIR'] - # not modified at present - bld.install_files(bld.env['CONFDIR'], 'dark.colors') - bld.install_files(bld.env['CONFDIR'], 'step_editing.bindings') - bld.install_files(bld.env['CONFDIR'], 'mixer.bindings') - # Icons/Images bld.install_files(os.path.join (bld.env['DATADIR'], 'icons'), bld.path.ant_glob('icons/*.png')) - bld.install_files(os.path.join (bld.env['DATADIR'], 'pixmaps'), bld.path.ant_glob('pixmaps/*.xpm')) - bld.install_files(bld.env['DATADIR'], 'splash.png') - bld.install_files(bld.env['DATADIR'], 'small-splash.png') bld.install_files(bld.env['DATADIR'], 'ArdourMono.ttf') + # Application/Product specific resources (icon, splash) + pgmname = bld.env['PROGRAM_NAME'] + bld.install_files(os.path.join(bld.env['DATADIR'], 'resources'), bld.path.ant_glob('resources/' + pgmname + '*')) + if bld.env['build_target'] == 'mingw': # These icons need to overwrite the files already installed in the icons # directory above. Do this in the external packaging scripts for now. @@ -737,8 +908,9 @@ def build(bld): # Default UI configuration bld.install_files(bld.env['CONFDIR'], 'default_ui_config') - # Color Themes - bld.install_files(bld.env['CONFDIR'], 'dark.colors') + # Color Themes. Find each color file for this program only + # and install + bld.install_files (os.path.join(bld.env['DATADIR'], 'themes'), bld.path.ant_glob ('themes/*-' + pgmname.lower() + '.colors')); # Default export stuff bld.install_files(os.path.join(bld.env['CONFDIR'], 'export'), bld.path.ant_glob('export/*.format')) @@ -757,7 +929,7 @@ def i18n(bld): 'Paul Davis') appdata_i18n_pot(bld) appdata_i18n_po(bld) - + def i18n_pot(bld): I18N_PACKAGE = 'gtk2_ardour' + bld.env['MAJOR'] autowaf.build_i18n_pot(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources, @@ -769,21 +941,28 @@ def i18n_po(bld): autowaf.build_i18n_po(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources, 'Paul Davis') appdata_i18n_po(bld) - + def i18n_mo(bld): I18N_PACKAGE = 'gtk2_ardour' + bld.env['MAJOR'] autowaf.build_i18n_mo(bld, top, 'gtk2_ardour', I18N_PACKAGE, gtk2_ardour_sources, 'Paul Davis') def appdata_i18n_pot(bld): - Logs.info('Generating pot file from Ardour appdata') - itsfile = os.path.join(bld.top_dir, 'tools', 'as-metainfo.its') potfile = os.path.join(bld.top_dir, 'gtk2_ardour', 'appdata', 'ardour.appdata.pot') - adsource = os.path.join(bld.top_dir, 'gtk2_ardour', - 'ardour.appdata.xml.in.in') - Logs.info('Updating ' + potfile) - subprocess.call(('itstool', '-i', itsfile, '-o', potfile, adsource)) + if bld.cmd == 'i18n_pot': + Logs.info('Generating pot file from Ardour appdata') + itsfile = os.path.join(bld.top_dir, 'tools', 'as-metainfo.its') + adsource = os.path.join(bld.top_dir, 'gtk2_ardour', + 'ardour.appdata.xml.in.in') + Logs.info('Updating ' + potfile) + try: + subprocess.call(('itstool', '-i', itsfile, '-o', potfile, adsource)) + except: + print ('Error processing appdata pot file - ignored') + elif bld.cmd == 'clean' and os.path.exists(potfile): + Logs.info('Removing Ardour appdata pot file') + os.remove(potfile) def appdata_i18n_po(bld): autowaf.build_i18n_po(bld, bld.top_dir, os.path.join( @@ -794,13 +973,17 @@ def appdata_i18n_mo(bld): 'gtk2_ardour', 'appdata'), 'ardour.appdata', 'dummy', 'dummy') def appdata_i18n_xmlin(bld): - itsfile = os.path.join(bld.top_dir, 'tools', 'as-metainfo.its') - adxmlininfile = os.path.join(bld.top_dir, 'gtk2_ardour', - 'ardour.appdata.xml.in.in') adxmlinfile = os.path.join(bld.top_dir, 'gtk2_ardour', 'ardour.appdata.xml.in') - mo_glob = os.path.join(bld.top_dir, 'gtk2_ardour', 'appdata', 'po', '*.mo') - mo_files = glob.glob(mo_glob) - Logs.info('Generating ' + adxmlinfile) - subprocess.call(['itstool', '-i', itsfile, '-o', adxmlinfile, - '-j', adxmlininfile] + mo_files) + if bld.cmd == 'build': + itsfile = os.path.join(bld.top_dir, 'tools', 'as-metainfo.its') + adxmlininfile = os.path.join(bld.top_dir, 'gtk2_ardour', + 'ardour.appdata.xml.in.in') + mo_glob = os.path.join(bld.top_dir, 'gtk2_ardour', 'appdata', 'po', '*.mo') + mo_files = glob.glob(mo_glob) + Logs.info('Generating ' + adxmlinfile) + subprocess.call(['itstool', '-i', itsfile, '-o', adxmlinfile, + '-j', adxmlininfile] + mo_files) + elif bld.cmd == 'clean' and os.path.exists(adxmlinfile): + Logs.info('Removing ' + adxmlinfile) + os.remove(adxmlinfile)