Fix ExportFormatSpecification copy-c'tor
[ardour.git] / gtk2_ardour / wscript
index e1c349fc87cebd5a5aa0608292939b3b574f8d64..9ef81a268c12d03b08546c4b20cef7d583417600 100644 (file)
@@ -31,13 +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_http.cc',
-        'ardour_knob.cc',
-        'ardour_spinner.cc',
         'ardour_ui.cc',
         'ardour_ui2.cc',
         'ardour_ui_dependents.cc',
@@ -58,8 +53,8 @@ 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',
@@ -122,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',
@@ -134,6 +130,7 @@ gtk2_ardour_sources = [
         'level_meter.cc',
         'location_ui.cc',
         'lua_script_manager.cc',
+        'luadialog.cc',
         'luainstance.cc',
         'luawindow.cc',
         'main.cc',
@@ -145,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',
@@ -153,6 +149,7 @@ 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_group_tabs.cc',
@@ -182,14 +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',
@@ -200,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',
@@ -221,11 +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',
@@ -242,22 +246,26 @@ 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',
@@ -277,8 +285,7 @@ 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):
@@ -311,6 +318,48 @@ def enoify (major, minor):
             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):
@@ -337,6 +386,7 @@ 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')
 
 
@@ -452,10 +502,12 @@ def build(bld):
                 'libpbd',
                 'libardour',
                 'libardour_cp',
-                'libtimecode',
+                'libtemporal',
                 'libmidipp',
                 'libgtkmm2ext',
                 'libcanvas',
+                'libwaveview',
+                'libwidgets',
                 'libptformat',
                 ]
         obj.defines = [
@@ -477,6 +529,37 @@ def build(bld):
             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
@@ -491,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'
@@ -513,7 +598,7 @@ def build(bld):
         obj.includes  = [ '../libs/fst', '.' ]
         obj.name      = 'libgtk2_ardour'
         obj.target    = 'gtk2_ardour'
-        obj.cflags  = [ '-fPIC' ]
+        obj.cflags = [ bld.env['compiler_flags_dict']['pic'] ]
 
     else:
         # just the normal executable version of the GTK GUI
@@ -537,10 +622,12 @@ def build(bld):
     obj.use      = [ 'libpbd',
                      'libardour',
                      'libardour_cp',
-                     'libtimecode',
+                     'libtemporal',
                      'libmidipp',
                      'libgtkmm2ext',
                      'libcanvas',
+                     'libwaveview',
+                     'libwidgets',
                      'libptformat',
                      ]
 
@@ -570,6 +657,7 @@ 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' ]
@@ -592,7 +680,11 @@ def build(bld):
         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'):
@@ -665,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',
@@ -762,6 +852,7 @@ def build(bld):
                     'ARDOUR_EXEC' : 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']:
@@ -791,7 +882,7 @@ def build(bld):
 
     # 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[0].abspath()} >${TGT}' % (sys.platform, bld.env['WINDOWS_KEY'] )
     for b in [ 'ardour' ] :
         obj = bld(
@@ -800,13 +891,13 @@ def build(bld):
             rule = a_rule
             )
         obj.install_path = bld.env['CONFDIR']
-        
+
     # Icons/Images
     bld.install_files(os.path.join (bld.env['DATADIR'], 'icons'), bld.path.ant_glob('icons/*.png'))
     bld.install_files(bld.env['DATADIR'], 'ArdourMono.ttf')
 
     # Application/Product specific resources (icon, splash)
-    pgmname = Options.options.program_name;
+    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':
@@ -819,7 +910,7 @@ def build(bld):
     bld.install_files(bld.env['CONFDIR'], 'default_ui_config')
     # 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/*-' + Options.options.program_name.lower() + '.colors'));
+    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'))