X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fwscript;h=4597ecefb2b3718340d1a062590723ba995f9098;hb=004b57e9f67c6b818357759005c8e53b041dead4;hp=9b864be6b475cad2ce18e271caabd40e5ec3a391;hpb=e6b06597b75010c955c6b44db0025a3e8642d9b0;p=ardour.git diff --git a/gtk2_ardour/wscript b/gtk2_ardour/wscript index 9b864be6b4..4597ecefb2 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 = [ @@ -28,7 +35,9 @@ gtk2_ardour_sources = [ 'ardour_dialog.cc', 'ardour_display.cc', 'ardour_dropdown.cc', + 'ardour_http.cc', 'ardour_knob.cc', + 'ardour_spinner.cc', 'ardour_ui.cc', 'ardour_ui2.cc', 'ardour_ui_dependents.cc', @@ -52,9 +61,11 @@ gtk2_ardour_sources = [ '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', @@ -122,6 +133,9 @@ gtk2_ardour_sources = [ 'led.cc', 'level_meter.cc', 'location_ui.cc', + 'lua_script_manager.cc', + 'luainstance.cc', + 'luawindow.cc', 'main.cc', 'main_clock.cc', 'marker.cc', @@ -141,7 +155,6 @@ gtk2_ardour_sources = [ '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', @@ -173,6 +186,8 @@ gtk2_ardour_sources = [ 'pingback.cc', 'playlist_selector.cc', 'plugin_eq_gui.cc', + 'plugin_pin_dialog.cc', + 'plugin_setup_dialog.cc', 'plugin_selector.cc', 'plugin_ui.cc', 'port_group.cc', @@ -207,6 +222,7 @@ gtk2_ardour_sources = [ 'ruler_dialog.cc', 'save_as_dialog.cc', 'search_path_option.cc', + 'script_selector.cc', 'selection.cc', 'selection_memento.cc', 'send_ui.cc', @@ -228,6 +244,7 @@ gtk2_ardour_sources = [ 'strip_silence_dialog.cc', 'sys_ex.cc', 'tape_region_view.cc', + 'tempo_curve.cc', 'tempo_dialog.cc', 'tempo_lines.cc', 'theme_manager.cc', @@ -244,6 +261,7 @@ gtk2_ardour_sources = [ 'transpose_dialog.cc', 'ui_config.cc', 'utils.cc', + 'vca_master_strip.cc', 'verbose_cursor.cc', 'visibility_group.cc', 'window_manager.cc', @@ -251,6 +269,7 @@ gtk2_ardour_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', @@ -287,8 +306,11 @@ def enoify (major, minor): return "\\n\\\"Evening Star\\\"" elif minor == 7: return "\\n\\\"Cluster and Eno\\\"" - elif minor == 8: + elif major == 5: + if minor == 0: return "\\n\\\"Before and After Science\\\"" + elif minor == 1: + return "\\n\\\"After the Heat\\\"" return "\\\"\\\"" def options(opt): @@ -317,6 +339,23 @@ def configure(conf): autowaf.check_pkg(conf, 'x11', uselib_store='X11', atleast_version='1.1', 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'] @@ -401,6 +440,44 @@ 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', + 'libtimecode', + '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 += [ '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' ] + + 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 @@ -475,13 +552,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': @@ -578,7 +652,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', @@ -662,8 +736,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' ] @@ -715,33 +789,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 = Options.options.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. @@ -750,8 +817,11 @@ 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, strip the program name + # and install. + for color_file in bld.path.ant_glob ('themes/*-' + Options.options.program_name.lower() + '.colors'): + shortname = os.path.basename (color_file.srcpath().replace ("-" + Options.options.program_name.lower(), "")) + bld.install_as (os.path.join(bld.env['DATADIR'], 'themes', shortname), color_file) # Default export stuff bld.install_files(os.path.join(bld.env['CONFDIR'], 'export'), bld.path.ant_glob('export/*.format')) @@ -791,7 +861,7 @@ def i18n_mo(bld): def appdata_i18n_pot(bld): potfile = os.path.join(bld.top_dir, 'gtk2_ardour', 'appdata', 'ardour.appdata.pot') - if bld.cmd == 'build': + 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',