Remove useless checks.
[ardour.git] / gtk2_ardour / wscript
1 #!/usr/bin/env python
2 import autowaf
3 import os
4
5 # Version of this package (even if built as a child)
6 GTK2_ARDOUR_VERSION = '3.0.0'
7
8 # Variables for 'waf dist'
9 APPNAME = 'gtk2_ardour'
10 VERSION = GTK2_ARDOUR_VERSION
11
12 # Mandatory variables
13 srcdir = '.'
14 blddir = 'build'
15
16 def set_options(opt):
17         autowaf.set_options(opt)
18
19 def configure(conf):
20         autowaf.configure(conf)
21         autowaf.check_tool(conf, 'compiler_cxx')
22         
23         autowaf.check_pkg(conf, 'alsa', uselib_store='ALSA')
24         autowaf.check_pkg(conf, 'flac', uselib_store='FLAC', atleast_version='1.2.1')
25         autowaf.check_pkg(conf, 'gthread', uselib_store='GTHREAD', atleast_version='2.10.1')
26         autowaf.check_pkg(conf, 'gtk+-2.0', uselib_store='GTK', atleast_version='2.12.1')
27         autowaf.check_pkg(conf, 'gtkmm-2.4', uselib_store='GTKMM', atleast_version='2.8')
28         autowaf.check_pkg(conf, 'libgnomecanvas-2.0', uselib_store='GNOMECANVAS', atleast_version='2.0')
29         autowaf.check_pkg(conf, 'libgnomecanvasmm-2.6', uselib_store='GNOMECANVASMM', atleast_version='2.12.0')
30         autowaf.check_pkg(conf, 'ogg', uselib_store='OGG', atleast_version='1.1.2')
31         
32         conf.check_tool('misc') # subst tool
33
34         conf.env.append_value('CCFLAGS', '-D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE')
35         conf.env.append_value('CXXFLAGS', '-DENABLE_NLS')
36         
37         conf.env.append_value('CXXFLAGS', '-DHAVE_WAFCONFIG_H')
38         conf.write_config_header('wafconfig.h')
39
40         # Boost headers
41         autowaf.check_header(conf, 'boost/shared_ptr.hpp')
42         autowaf.check_header(conf, 'boost/weak_ptr.hpp')
43
44 def build(bld):
45         # Canvas library (plain C)
46         obj = bld.new_task_gen('cc', 'staticlib')
47         obj.source = '''
48                 canvas-simpleline.c
49                 canvas-simplerect.c
50                 canvas-waveview.c
51                 gtk-custom-hruler.c
52                 gtk-custom-ruler.c
53         '''
54         obj.includes     = ['.']
55         obj.name         = 'libgtk2_ardour_c'
56         obj.target       = 'gtk2_ardour_c'
57         obj.uselib       = 'GNOMECANVAS'
58         obj.uselib_local = 'libardour'
59         obj.install_path = ''
60         obj.cxxflags     = '-DVERSIONSTRING=\\\"' + GTK2_ARDOUR_VERSION + '\\\"'
61         obj.cxxflags     += ' -DPACKAGE=\\\"gtk2_ardour\\\"'
62         obj.cxxflags     += ' -DDATA_DIR=\\\"' + os.path.normpath(bld.env['DATADIRNAME']) + '\\\"'
63         obj.cxxflags     += ' -DCONFIG_DIR=\\\"' + os.path.normpath(bld.env['CONFIGDIRNAME']) + '\\\"'
64         obj.cxxflags     += ' -DMODULE_DIR=\\\"' + os.path.normpath(bld.env['LIBDIRNAME']) + '\\\"'
65         obj.cxxflags     += ' -DLOCALEDIR=\\\"' + os.path.join(
66                         os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '\\\"'
67
68         # Program
69         obj = bld.new_task_gen('cxx', 'program')
70         obj.source = '''
71                 about.cc
72                 actions.cc
73                 add_midi_cc_track_dialog.cc
74                 add_route_dialog.cc
75                 analysis_window.cc
76                 ardour_dialog.cc
77                 ardour_ui.cc
78                 ardour_ui2.cc
79                 ardour_ui_dependents.cc
80                 ardour_ui_dialogs.cc
81                 ardour_ui_ed.cc
82                 ardour_ui_mixer.cc
83                 ardour_ui_options.cc
84                 audio_clock.cc
85                 audio_region_editor.cc
86                 audio_region_view.cc
87                 audio_streamview.cc
88                 audio_time_axis.cc
89                 automation_controller.cc
90                 automation_line.cc
91                 automation_region_view.cc
92                 automation_streamview.cc
93                 automation_time_axis.cc
94                 axis_view.cc
95                 bundle_manager.cc
96                 canvas-note-event.cc
97                 canvas-note.cc
98                 canvas-flag.cc
99                 canvas-program-change.cc
100                 canvas-sysex.cc
101                 control_point.cc
102                 control_point_dialog.cc
103                 crossfade_edit.cc
104                 crossfade_view.cc
105                 curvetest.cc
106                 diamond.cc
107                 editing.cc
108                 editor.cc
109                 editor_actions.cc
110                 editor_audio_import.cc
111                 editor_audiotrack.cc
112                 editor_canvas.cc
113                 editor_canvas_events.cc
114                 editor_cursors.cc
115                 editor_edit_groups.cc
116                 editor_export_audio.cc
117                 editor_hscroller.cc
118                 editor_keyboard.cc
119                 editor_keys.cc
120                 editor_markers.cc
121                 editor_mixer.cc
122                 editor_mouse.cc
123                 editor_nudge.cc
124                 editor_ops.cc
125                 editor_region_list.cc
126                 editor_route_list.cc
127                 editor_rulers.cc
128                 editor_scrub.cc
129                 editor_selection.cc
130                 editor_selection_list.cc
131                 editor_tempodisplay.cc
132                 editor_timefx.cc
133                 engine_dialog.cc
134                 enums.cc
135                 export_channel_selector.cc
136                 export_dialog.cc
137                 export_filename_selector.cc
138                 export_file_notebook.cc
139                 export_format_dialog.cc
140                 export_format_selector.cc
141                 export_preset_selector.cc
142                 export_timespan_selector.cc
143                 fft.cc
144                 fft_graph.cc
145                 fft_result.cc
146                 plugin_eq_gui.cc
147                 gain_meter.cc
148                 generic_pluginui.cc
149                 ghostregion.cc
150                 global_port_matrix.cc
151                 io_selector.cc
152                 keyboard.cc
153                 keyeditor.cc
154                 latency_gui.cc
155                 level_meter.cc
156                 lineset.cc
157                 location_ui.cc
158                 main.cc
159                 marker.cc
160                 midi_channel_selector.cc
161                 midi_port_dialog.cc
162                 midi_region_view.cc
163                 midi_scroomer.cc
164                 midi_streamview.cc
165                 midi_time_axis.cc
166                 mixer_strip.cc
167                 mixer_ui.cc
168                 nag.cc
169                 new_session_dialog.cc
170                 option_editor.cc
171                 opts.cc
172                 panner.cc
173                 panner2d.cc
174                 panner_ui.cc
175                 piano_roll_header.cc
176                 playlist_selector.cc
177                 plugin_selector.cc
178                 plugin_ui.cc
179                 port_group.cc
180                 port_matrix.cc
181                 port_matrix_body.cc
182                 port_matrix_column_labels.cc
183                 port_matrix_component.cc
184                 port_matrix_grid.cc
185                 port_matrix_labels.cc
186                 port_matrix_row_labels.cc
187                 processor_box.cc
188                 prompter.cc
189                 public_editor.cc
190                 region_gain_line.cc
191                 region_selection.cc
192                 region_view.cc
193                 rhythm_ferret.cc
194                 route_params_ui.cc
195                 route_processor_selection.cc
196                 route_time_axis.cc
197                 route_ui.cc
198                 selection.cc
199                 send_ui.cc
200                 session_import_dialog.cc
201                 session_metadata_dialog.cc
202                 sfdb_ui.cc
203                 simpleline.cc
204                 simplerect.cc
205                 splash.cc
206                 streamview.cc
207                 tape_region_view.cc
208                 tempo_dialog.cc
209                 tempo_lines.cc
210                 theme_manager.cc
211                 time_axis_view.cc
212                 time_axis_view_item.cc
213                 time_selection.cc
214                 ui_config.cc
215                 utils.cc
216                 version.cc
217                 waveview.cc
218         '''
219         obj.source += 'x11.cc'
220         obj.includes     = ['.']
221         obj.name         = 'gtk2_ardour'
222         obj.target       = 'ardour-3.0'
223         obj.uselib       = 'UUID FLAC GLIBMM GTHREAD GTK GNOMECANVAS OGG ALSA'
224         obj.uselib       += ' GTKMM GNOMECANVASMM'
225         obj.uselib_local = '''libpbd libmidipp libevoral libvamp libtaglib libardour libsurfaces
226                               libgtkmm2ext libgtk2_ardour_c libtaglib'''
227         obj.install_path = ''
228         obj.cxxflags     = '-DVERSIONSTRING=\\\"' + GTK2_ARDOUR_VERSION + '\\\"'
229         obj.cxxflags     += ' -DPACKAGE=\\\"gtk2_ardour\\\"'
230         obj.cxxflags     += ' -DDATA_DIR=\\\"' + os.path.normpath(bld.env['DATADIRNAME']) + '\\\"'
231         obj.cxxflags     += ' -DCONFIG_DIR=\\\"' + os.path.normpath(bld.env['CONFIGDIRNAME']) + '\\\"'
232         obj.cxxflags     += ' -DMODULE_DIR=\\\"' + os.path.normpath(bld.env['LIBDIRNAME']) + '\\\"'
233         obj.cxxflags     += ' -DLOCALEDIR=\\\"' + os.path.join(
234                         os.path.normpath(bld.env['DATADIRNAME']), 'locale') + '\\\"'
235         
236         # Wrappers
237
238         wrapper_subst_dict = {
239                 'INSTALL_PREFIX' : bld.env['PREFIX'],
240                 'LIBDIR'         : os.path.normpath(bld.env['LIBDIRNAME']),
241                 'VERSION'        : '3.0',
242                 'EXECUTABLE'     : 'build/default/gtk2_ardour/ardour-3.0'
243         }
244
245         obj = bld.new_task_gen('subst')
246         obj.source = 'ardev-common-waf.sh.in'
247         obj.target = 'ardev-common-waf.sh'
248         obj.chmod  = 0755
249         obj.dict   = wrapper_subst_dict
250         
251 def shutdown():
252         autowaf.shutdown()
253