c4f790d76cb55453d9bb99b6dad66d92a926b5e4
[platform/upstream/efl.git] / src / lib / elementary / meson.build
1 pub_legacy_eo_files = [
2   'efl_ui_clock_legacy.eo',
3   'elm_ctxpopup_part.eo',
4   'elm_dayselector_part.eo',
5   'elm_entry_part.eo',
6   'elm_fileselector_entry_part.eo',
7   'elm_flip_part.eo',
8   'elm_hover_part.eo',
9   'elm_mapbuf_part.eo',
10   'elm_naviframe_part.eo',
11   'elm_notify_part.eo',
12   'elm_panel_part.eo',
13   'elm_player_part.eo',
14   'elm_popup_part.eo',
15   'elm_scroller_part.eo',
16   'elm_label_part.eo',
17   'elm_actionslider_part.eo',
18   'elm_bubble_part.eo',
19   'elm_fileselector_part.eo',
20 ]
21
22 pub_eo_file_target = []
23
24 foreach eo_file : pub_legacy_eo_files
25   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
26     input : eo_file,
27     output : [eo_file + '.legacy.h',],
28     depfile : eo_file + '.d',
29     install : true,
30     install_dir : dir_package_include,
31     command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
32                            '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
33                            '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
34                            '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
35                            '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
36                            '-gchld', '@INPUT@'])
37
38 endforeach
39
40 pub_eo_files = [
41   'efl_ui_widget.eo',
42   'efl_ui_animation_view.eo',
43   'efl_ui_bg.eo',
44   'efl_ui_button.eo',
45   'efl_ui_calendar.eo',
46   'efl_ui_calendar_item.eo',
47   'efl_ui_check.eo',
48   'efl_ui_flip.eo',
49   'efl_ui_frame.eo',
50   'efl_ui_stack.eo',
51   'efl_ui_image.eo',
52   'efl_ui_image_zoomable.eo',
53   'efl_ui_layout.eo',
54   'efl_ui_layout_base.eo',
55   'efl_ui_nstate.eo',
56   'efl_ui_navigation_bar.eo',
57   'efl_ui_navigation_bar_part.eo',
58   'efl_ui_navigation_bar_part_back_button.eo',
59   'efl_ui_navigation_layout.eo',
60   'efl_ui_panes.eo',
61   'efl_ui_progressbar.eo',
62   'efl_ui_radio.eo',
63   'efl_ui_slider.eo',
64   'efl_ui_slider_interval.eo',
65   'efl_ui_spin.eo',
66   'efl_ui_spin_button.eo',
67   'efl_ui_panel.eo',
68   'efl_ui_datepicker.eo',
69   'efl_ui_timepicker.eo',
70   'efl_ui_tags.eo',
71   'efl_ui_video.eo',
72   'efl_ui_win.eo',
73   'efl_ui_win_inlined.eo',
74   'efl_ui_win_socket.eo',
75   'efl_ui_box.eo',
76   'efl_ui_box_flow.eo',
77   'efl_ui_box_stack.eo',
78   'efl_ui_table.eo',
79   'efl_ui_table_static.eo',
80   'efl_text_interactive.eo',
81   'efl_ui_text.eo',
82   'efl_ui_popup.eo',
83   'efl_ui_popup_part_backwall.eo',
84   'efl_ui_alert_popup.eo',
85   'efl_ui_alert_popup_part.eo',
86   'efl_ui_scroll_alert_popup.eo',
87   'efl_ui_scroll_alert_popup_part.eo',
88   'efl_ui_text_alert_popup.eo',
89   'efl_ui_text_alert_popup_part.eo',
90   'efl_ui_anchor_popup.eo',
91   'efl_ui_text_editable.eo',
92   'efl_ui_text_async.eo',
93   'efl_ui_text_factory_images.eo',
94   'efl_ui_text_factory_emoticons.eo',
95   'efl_ui_text_factory_fallback.eo',
96   'efl_ui_textpath.eo',
97   'efl_ui_l10n.eo',
98   'efl_ui_clock.eo',
99   'efl_ui_image_factory.eo',
100   'efl_ui_focus_manager.eo',
101   'efl_ui_focus_manager_calc.eo',
102   'efl_ui_focus_manager_sub.eo',
103   'efl_ui_focus_manager_root_focus.eo',
104   'efl_ui_focus_object.eo',
105   'efl_ui_focus_layer.eo',
106   'efl_ui_focus_composition.eo',
107   'efl_ui_focus_util.eo',
108   'efl_ui_flip_part.eo',
109   'efl_ui_layout_factory.eo',
110   'efl_ui_layout_part.eo',
111   'efl_ui_layout_part_box.eo',
112   'efl_ui_layout_part_content.eo',
113   'efl_ui_layout_part_text.eo',
114   'efl_ui_layout_part_table.eo',
115   'efl_ui_layout_part_bg.eo',
116   'efl_ui_layout_part_legacy.eo',
117   'efl_ui_list_view.eo',
118   'efl_ui_list_view_model.eo',
119   'efl_ui_list_view_pan.eo',
120   'efl_ui_item.eo',
121   'efl_ui_list_item.eo',
122   'efl_ui_list_default_item_part_icon.eo',
123   'efl_ui_list_default_item_part_end.eo',
124   'efl_ui_list_default_item.eo',
125   'efl_ui_list_empty_item.eo',
126   'efl_ui_list.eo',
127   'efl_ui_grid_item.eo',
128   'efl_ui_grid_default_item_part_icon.eo',
129   'efl_ui_grid_default_item_part_end.eo',
130   'efl_ui_grid_default_item.eo',
131   'efl_ui_grid.eo',
132   'efl_ui_panes_part.eo',
133   'efl_ui_progressbar_part.eo',
134   'efl_ui_textpath_part.eo',
135   'efl_ui_widget_part.eo',
136   'efl_ui_widget_part_bg.eo',
137   'efl_ui_widget_part_shadow.eo',
138   'efl_ui_win_part.eo',
139   'efl_ui_scroller.eo',
140   'efl_ui_scroll_manager.eo',
141   'efl_ui_pan.eo',
142   'efl_access_object.eo',
143   'efl_access_action.eo',
144   'efl_access_component.eo',
145   'efl_access_editable_text.eo',
146   'efl_access_selection.eo',
147   'efl_access_text.eo',
148   'efl_access_value.eo',
149   'efl_access_widget_action.eo',
150   'efl_access_window.eo',
151   'efl_ui_theme.eo',
152   'efl_config_global.eo',
153   'elm_code_widget.eo',
154   'efl_ui_selection.eo',
155   'efl_ui_dnd.eo',
156   'efl_ui_dnd_container.eo',
157   'efl_ui_focus_manager_window_root.eo',
158   'efl_ui_pager.eo',
159   'efl_page_transition.eo',
160   'efl_page_transition_scroll.eo',
161   'efl_page_indicator.eo',
162   'efl_page_indicator_icon.eo',
163   'efl_ui_tab_pager.eo',
164   'efl_ui_tab_bar.eo',
165   'efl_ui_tab_page.eo',
166   'efl_ui_tab_page_part_tab.eo',
167   'efl_ui_widget_focus_manager.eo',
168   'efl_ui_legacy.eo',
169   'efl_ui_button_legacy_part.eo',
170   'efl_ui_radio_legacy_part.eo',
171   'efl_ui_check_legacy_part.eo',
172   'efl_ui_progressbar_legacy_part.eo',
173   'elm_multibuttonentry_part.eo',
174   'elm_interface_scrollable.eo',
175   'efl_ui_image_zoomable_pan.eo',
176   'efl_ui_text_part.eo',
177   'efl_ui_caching_factory.eo',
178   'efl_ui_widget_factory.eo',
179   'efl_ui_relative_layout.eo',
180 ]
181
182 foreach eo_file : pub_eo_files
183   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
184     input : eo_file,
185     output : [eo_file + '.h'],
186     depfile : eo_file + '.d',
187     install : true,
188     install_dir : dir_package_include,
189     command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
190                            '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
191                            '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
192                            '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
193                            '-gchd', '@INPUT@'])
194   pub_eo_file_target += custom_target('eolian_gen_legacy_' + eo_file,
195     input : eo_file,
196     output : [eo_file + '.legacy.h'],
197     depfile : eo_file + '.legacy.d',
198     install : true,
199     install_dir : dir_package_include,
200     command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
201                            '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
202                            '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.d'),
203                            '-gld', '@INPUT@'])
204 endforeach
205
206
207 pub_eo_types_files = [
208   'elm_general.eot',
209   'efl_ui.eot',
210   'efl_ui_list_view_types.eot',
211   'efl_ui_selection_types.eot',
212   'efl_ui_dnd_types.eot'
213 ]
214
215 foreach eo_file : pub_eo_types_files
216   pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
217     input : eo_file,
218     output : [eo_file + '.h'],
219     depfile : eo_file + '.d',
220     install : true,
221     install_dir : dir_package_include,
222     command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
223                            '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
224                            '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
225                            '-ghd', '@INPUT@'])
226 endforeach
227
228 priv_eo_files = [
229   'efl_ui_internal_text_interactive.eo',
230   'efl_ui_internal_text_scroller.eo',
231   'efl_ui_focus_composition_adapter.eo',
232   'efl_ui_focus_parent_provider.eo',
233   'efl_ui_focus_parent_provider_standard.eo',
234   'efl_ui_state_model.eo',
235   'efl_ui_selection_manager.eo',
236   'efl_datetime_manager.eo',
237   'efl_ui_list_view_precise_layouter.eo',
238   'efl_ui_list_view_relayout.eo',
239   'efl_ui_size_model.eo',
240   'efl_ui_homogeneous_model.eo',
241   'efl_ui_exact_model.eo',
242   'efl_ui_average_model.eo',
243 ]
244
245 priv_eo_file_target = []
246
247 foreach eo_file : priv_eo_files
248   priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
249     input : eo_file,
250     output : [eo_file + '.h'],
251     depfile : eo_file + '.d',
252     command : eolian_gen + [ '-I', meson.current_source_dir(), eolian_include_directories,
253                            '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
254                            '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
255                            '-o', 'd:' + join_paths(meson.current_build_dir(), eo_file + '.d'),
256                            '-gchd', '@INPUT@'])
257 endforeach
258
259 eolian_include_directories += ['-I', meson.current_source_dir()]
260
261 elementary_headers_unstable = [
262   'elm_gen_common.h',
263   'efl_access_object.h',
264   'efl_access_text.h',
265   'efl_access_widget_action.h',
266   'efl_access_window.h',
267   'elm_interface_fileselector.h',
268   'elm_interface_scrollable.h',
269   'elm_interfaces.h',
270   'elm_widget.h',
271   'elm_widget_actionslider.h',
272   'elm_widget_box.h',
273   'elm_widget_bubble.h',
274   'efl_ui_button_private.h',
275   'efl_ui_bg_private.h',
276   'elm_widget_calendar.h',
277   'efl_ui_calendar_private.h',
278   'efl_ui_check_private.h',
279   'elm_widget_clock.h',
280   'elm_widget_colorselector.h',
281   'elm_widget_conform.h',
282   'elm_widget_container.h',
283   'elm_widget_combobox.h',
284   'elm_widget_ctxpopup.h',
285   'elm_widget_dayselector.h',
286   'elm_widget_diskselector.h',
287   'elm_widget_entry.h',
288   'elm_widget_fileselector.h',
289   'elm_widget_fileselector_button.h',
290   'elm_widget_fileselector_entry.h',
291   'efl_ui_widget_flip.h',
292   'elm_widget_flipselector.h',
293   'efl_ui_widget_frame.h',
294   'efl_ui_stack_private.h',
295   'efl_ui_animation_view_private.h',
296   'elm_widget_gengrid.h',
297   'elm_widget_genlist.h',
298   'elm_widget_glview.h',
299   'elm_widget_grid.h',
300   'elm_widget_hover.h',
301   'elm_widget_hoversel.h',
302   'elm_widget_icon.h',
303   'efl_ui_widget_image.h',
304   'efl_ui_popup_private.h',
305   'efl_ui_alert_popup_private.h',
306   'efl_ui_scroll_alert_popup_private.h',
307   'efl_ui_text_alert_popup_private.h',
308   'efl_ui_anchor_popup_private.h',
309   'elm_widget_index.h',
310   'elm_widget_inwin.h',
311   'elm_widget_label.h',
312   'elm_widget_layout.h',
313   'elm_widget_list.h',
314   'elm_widget_map.h',
315   'elm_widget_mapbuf.h',
316   'elm_widget_menu.h',
317   'elm_widget_multibuttonentry.h',
318   'elm_widget_naviframe.h',
319   'efl_ui_navigation_bar_private.h',
320   'efl_ui_navigation_layout_private.h',
321   'elm_widget_notify.h',
322   'elm_widget_panel.h',
323   'efl_ui_panes_private.h',
324   'elm_widget_photo.h',
325   'efl_ui_image_zoomable_private.h',
326   'elm_widget_player.h',
327   'elm_widget_plug.h',
328   'elm_widget_popup.h',
329   'elm_widget_prefs.h',
330   'efl_ui_progressbar_private.h',
331   'efl_ui_radio_private.h',
332   'elm_widget_route.h',
333   'elm_widget_scroller.h',
334   'elm_widget_segment_control.h',
335   'elm_widget_separator.h',
336   'elm_widget_slider.h',
337   'efl_ui_slider_private.h',
338   'efl_ui_slider_interval_private.h',
339   'elm_widget_slideshow.h',
340   'elm_widget_spinner.h',
341   'efl_ui_spin_private.h',
342   'efl_ui_spin_button_private.h',
343   'efl_ui_panel_private.h',
344   'efl_ui_datepicker_private.h',
345   'efl_ui_timepicker_private.h',
346   'efl_ui_tags_private.h',
347   'elm_widget_table.h',
348   'elm_widget_thumb.h',
349   'elm_widget_toolbar.h',
350   'efl_ui_video_private.h',
351   'efl_ui_item_private.h',
352   'efl_ui_list_item_private.h',
353   'efl_ui_list_private.h',
354   'efl_ui_grid_item_private.h',
355   'efl_ui_grid_private.h',
356   'efl_ui_list_view_private.h',
357   'efl_ui_list_view_seg_array.h',
358   'elm_widget_web.h',
359   'efl_ui_clock.h',
360   'elm_code.h',
361   'elm_code_widget_legacy.h',
362   'elm_code_widget_selection.h',
363   'elm_code_diff_widget.h',
364   'elm_code_common.h',
365   'elm_code_line.h',
366   'elm_code_text.h',
367   'elm_code_indent.h',
368   'elm_code_file.h',
369   'elm_code_parse.h',
370   'elm_code_syntax.h',
371   'efl_ui_widget_scroller.h',
372   'efl_ui_widget_scroll_manager.h',
373   'efl_ui_widget_pan.h',
374   'efl_ui_nstate_private.h',
375   'Efl_Ui.h',
376   'efl_ui_widget_pager.h',
377   'efl_page_transition.h',
378   'efl_page_transition_scroll.h',
379   'efl_page_indicator.h',
380   'efl_page_indicator_icon.h',
381   'efl_ui_tab_pager_private.h',
382   'efl_ui_tab_bar_private.h',
383   'efl_ui_tab_page_private.h',
384   'efl_ui_relative_layout_private.h'
385 ]
386
387 elementary_pub_headers = [
388   'elc_ctxpopup.h',
389   'elc_ctxpopup_legacy.h',
390   'elc_combobox.h',
391   'elc_combobox_legacy.h',
392   'elc_fileselector.h',
393   'elc_fileselector_legacy.h',
394   'elc_fileselector_common.h',
395   'elc_fileselector_button.h',
396   'elc_fileselector_button_legacy.h',
397   'elc_fileselector_entry.h',
398   'elc_fileselector_entry_legacy.h',
399   'elc_hoversel.h',
400   'elc_hoversel_legacy.h',
401   'elc_multibuttonentry.h',
402   'elc_multibuttonentry_eo.h',
403   'elc_multibuttonentry_legacy.h',
404   'elc_multibuttonentry_common.h',
405   'elc_naviframe.h',
406   'elc_naviframe_legacy.h',
407   'elc_naviframe_common.h',
408   'elc_popup.h',
409   'elc_popup_legacy.h',
410   'efl_ui_animation_view.h',
411   'efl_ui_animation_view_legacy.h',
412   'elm_access.h',
413   'elm_actionslider.h',
414   'elm_actionslider_legacy.h',
415   'elm_app.h',
416   'elm_atspi_app_object.h',
417   'elm_atspi_app_object_eo.legacy.h',
418   'elm_atspi_bridge.h',
419   'elm_atspi_bridge_eo.legacy.h',
420   'elm_atspi_ewk_wrapper.h',
421   'elm_atspi_ewk_wrapper_eo.legacy.h',
422   'elm_atspi_proxy.h',
423   'elm_atspi_proxy_eo.legacy.h',
424   'elm_authors.h',
425   'elm_bg.h',
426   'elm_bg_legacy.h',
427   'elm_box.h',
428   'elm_box_legacy.h',
429   'elm_box_common.h',
430   'elm_bubble.h',
431   'elm_bubble_legacy.h',
432   'elm_button.h',
433   'efl_ui_widget_common.h',
434   'efl_ui_button_eo.h',
435   'elm_button_legacy.h',
436   'elm_cache.h',
437   'elm_calendar.h',
438   'elm_calendar_legacy.h',
439   'elm_calendar_common.h',
440   'efl_ui_calendar.h',
441   'elm_check.h',
442   'efl_ui_check_eo.h',
443   'elm_check_legacy.h',
444   'elm_clock.h',
445   'elm_clock_legacy.h',
446   'elm_cnp.h',
447   'elm_colorselector.h',
448   'elm_colorselector_legacy.h',
449   'elm_colorselector_common.h',
450   'elm_color_class.h',
451   'elm_config.h',
452   'elm_conform.h',
453   'elm_conform_legacy.h',
454   'elm_cursor.h',
455   'elm_datetime.h',
456   'elm_dayselector.h',
457   'elm_dayselector_legacy.h',
458   'elm_debug.h',
459   'elm_deprecated.h',
460   'elm_diskselector.h',
461   'elm_diskselector_common.h',
462   'elm_diskselector_legacy.h',
463   'elm_entry.h',
464   'elm_entry_common.h',
465   'elm_entry_eo.h',
466   'elm_entry_legacy.h',
467   'elm_finger.h',
468   'elm_flip.h',
469   'efl_ui_flip_eo.h',
470   'efl_ui_flip_legacy.h',
471   'elm_flipselector.h',
472   'elm_flipselector_legacy.h',
473   'elm_focus.h',
474   'elm_focus_item.h',
475   'elm_font.h',
476   'elm_frame.h',
477   'efl_ui_frame_eo.h',
478   'efl_ui_frame_legacy.h',
479   'elm_gen.h',
480   'elm_general.h',
481   'elm_gengrid.h',
482   'elm_gengrid_common.h',
483   'elm_gengrid_legacy.h',
484   'elm_genlist.h',
485   'elm_genlist_common.h',
486   'elm_genlist_legacy.h',
487   'elm_gesture_layer.h',
488   'elm_gesture_layer_common.h',
489   'elm_gesture_layer_legacy.h',
490   'elm_getting_started.h',
491   'elm_glview.h',
492   'elm_glview_common.h',
493   'elm_glview_legacy.h',
494   'elm_grid.h',
495   'elm_grid_legacy.h',
496   'elm_hover.h',
497   'elm_hover_legacy.h',
498   'elm_icon.h',
499   'elm_icon_legacy.h',
500   'elm_image.h',
501   'elm_image_eo.h',
502   'elm_image_legacy.h',
503   'elm_index.h',
504   'elm_index_legacy.h',
505   'elm_inwin.h',
506   'elm_inwin_legacy.h',
507   'elm_label.h',
508   'elm_label_legacy.h',
509   'elm_layout.h',
510   'elm_layout_common.h',
511   'elm_layout_legacy.h',
512   'elm_list.h',
513   'elm_list_legacy.h',
514   'elm_macros.h',
515   'elm_map.h',
516   'elm_map_common.h',
517   'elm_map_legacy.h',
518   'elm_mapbuf.h',
519   'elm_mapbuf_legacy.h',
520   'elm_menu.h',
521   'elm_menu_legacy.h',
522   'elm_mirroring.h',
523   'elm_need.h',
524   'elm_notify.h',
525   'elm_notify_common.h',
526   'elm_notify_legacy.h',
527   'efl_ui_nstate.h',
528   'elm_object.h',
529   'elm_object_item.h',
530   'elm_panel.h',
531   'elm_panel_common.h',
532   'elm_panel_legacy.h',
533   'elm_panes.h',
534   'efl_ui_panes_eo.h',
535   'elm_panes_legacy.h',
536   'elm_photo.h',
537   'elm_photo_legacy.h',
538   'elm_photocam.h',
539   'efl_ui_image_zoomable_eo.h',
540   'elm_photocam_legacy.h',
541   'elm_plug.h',
542   'elm_plug_legacy.h',
543   'elm_prefs.h',
544   'elm_prefs_common.h',
545   'elm_prefs_legacy.h',
546   'elm_prefs_data.h',
547   'elm_progressbar.h',
548   'elm_progressbar_common.h',
549   'efl_ui_progressbar_eo.h',
550   'elm_progressbar_legacy.h',
551   'elm_radio.h',
552   'efl_ui_radio_eo.h',
553   'elm_radio_legacy.h',
554   'elm_route.h',
555   'elm_route_legacy.h',
556   'elm_scale.h',
557   'elm_scroll.h',
558   'elm_scroller.h',
559   'elm_scroller_legacy.h',
560   'elm_segment_control.h',
561   'elm_segment_control_legacy.h',
562   'elm_separator.h',
563   'elm_separator_legacy.h',
564   'elm_slider.h',
565   'elm_slider_common.h',
566   'elm_slider_legacy.h',
567   'elm_slideshow.h',
568   'elm_slideshow_common.h',
569   'elm_slideshow_legacy.h',
570   'elm_spinner.h',
571   'elm_spinner_legacy.h',
572   'elm_store.h',
573   'elm_systray.h',
574   'elm_systray_common.h',
575   'elm_systray_watcher.h',
576   'elm_sys_notify.h',
577   'elm_table.h',
578   'elm_table_legacy.h',
579   'elm_theme.h',
580   'elm_thumb.h',
581   'elm_thumb_common.h',
582   'elm_thumb_legacy.h',
583   'elm_textpath.h',
584   'elm_textpath_legacy.h',
585   'elm_toolbar.h',
586   'elm_toolbar_common.h',
587   'elm_toolbar_eo.h',
588   'elm_toolbar_legacy.h',
589   'elm_tooltip.h',
590   'elm_transit.h',
591   'efl_ui_video.h',
592   'efl_ui_video_eo.h',
593   'efl_ui_video_legacy.h',
594   'elm_view_list.h',
595   'elm_view_form.h',
596   'elm_web.h',
597   'elm_web_common.h',
598   'elm_web_eo.h',
599   'elm_web_legacy.h',
600   'elm_win.h',
601   'elm_win_common.h',
602   'elm_win_eo.h',
603   'elm_win_legacy.h',
604   'elm_helper.h',
605   'elm_part_helper.h',
606   'efl_ui_animation_view_eo.legacy.h',
607   'efl_ui_bg_eo.legacy.h',
608   'efl_ui_bg_legacy_eo.legacy.h',
609   'efl_ui_button_eo.legacy.h',
610   'efl_ui_button_legacy_eo.legacy.h',
611   'efl_ui_check_eo.legacy.h',
612   'efl_ui_check_legacy_eo.legacy.h',
613   'efl_ui_flip_eo.legacy.h',
614   'efl_ui_flip_legacy_eo.legacy.h',
615   'efl_ui_frame_eo.legacy.h',
616   'efl_ui_frame_legacy_eo.legacy.h',
617   'efl_ui_image_legacy_eo.legacy.h',
618   'efl_ui_image_zoomable_eo.legacy.h',
619   'efl_ui_image_zoomable_legacy_eo.legacy.h',
620   'efl_ui_layout_legacy_eo.legacy.h',
621   'efl_ui_panes_eo.legacy.h',
622   'efl_ui_panes_legacy_eo.legacy.h',
623   'efl_ui_progressbar_legacy_eo.legacy.h',
624   'efl_ui_radio_eo.legacy.h',
625   'efl_ui_radio_legacy_eo.legacy.h',
626   'efl_ui_textpath_eo.legacy.h',
627   'efl_ui_textpath_legacy_eo.legacy.h',
628   'efl_ui_video_eo.legacy.h',
629   'efl_ui_video_legacy_eo.legacy.h',
630   'efl_ui_widget_eo.legacy.h',
631   'efl_ui_win_inlined_legacy_eo.legacy.h',
632   'efl_ui_win_legacy_eo.legacy.h',
633   'efl_ui_win_socket_legacy_eo.legacy.h',
634   'elm_access_eo.legacy.h',
635   'elm_actionslider_eo.legacy.h',
636   'elm_box_eo.legacy.h',
637   'elm_bubble_eo.legacy.h',
638   'elm_calendar_eo.legacy.h',
639   'elm_calendar_item_eo.legacy.h',
640   'elm_clock_eo.legacy.h',
641   'elm_code_widget_eo.legacy.h',
642   'elm_code_widget_legacy_eo.legacy.h',
643   'elm_color_item_eo.legacy.h',
644   'elm_colorselector_eo.legacy.h',
645   'elm_conformant_eo.legacy.h',
646   'elm_ctxpopup_eo.legacy.h',
647   'elm_ctxpopup_item_eo.legacy.h',
648   'elm_dayselector_eo.legacy.h',
649   'elm_dayselector_item_eo.legacy.h',
650   'elm_diskselector_eo.legacy.h',
651   'elm_diskselector_item_eo.legacy.h',
652   'elm_entry_eo.legacy.h',
653   'elm_fileselector_button_eo.legacy.h',
654   'elm_fileselector_entry_eo.legacy.h',
655   'elm_fileselector_eo.legacy.h',
656   'elm_flipselector_eo.legacy.h',
657   'elm_flipselector_item_eo.legacy.h',
658   'elm_gengrid_eo.legacy.h',
659   'elm_gengrid_item_eo.legacy.h',
660   'elm_gengrid_pan_eo.legacy.h',
661   'elm_genlist_eo.legacy.h',
662   'elm_genlist_item_eo.legacy.h',
663   'elm_genlist_pan_eo.legacy.h',
664   'elm_gesture_layer_eo.legacy.h',
665   'elm_glview_eo.legacy.h',
666   'elm_grid_eo.legacy.h',
667   'elm_hover_eo.legacy.h',
668   'elm_hoversel_eo.legacy.h',
669   'elm_hoversel_item_eo.legacy.h',
670   'elm_icon_eo.legacy.h',
671   'elm_index_eo.legacy.h',
672   'elm_index_item_eo.legacy.h',
673   'elm_interface_fileselector_eo.legacy.h',
674   'elm_inwin_eo.legacy.h',
675   'elm_label_eo.legacy.h',
676   'elm_list_eo.legacy.h',
677   'elm_list_item_eo.legacy.h',
678   'elm_mapbuf_eo.legacy.h',
679   'elm_map_eo.legacy.h',
680   'elm_map_pan_eo.legacy.h',
681   'elm_menu_eo.legacy.h',
682   'elm_menu_item_eo.legacy.h',
683   'elm_multibuttonentry_eo.legacy.h',
684   'elm_multibuttonentry_item_eo.legacy.h',
685   'elm_naviframe_eo.legacy.h',
686   'elm_naviframe_item_eo.legacy.h',
687   'elm_notify_eo.legacy.h',
688   'elm_panel_eo.legacy.h',
689   'elm_pan_eo.legacy.h',
690   'elm_photo_eo.legacy.h',
691   'elm_player_eo.legacy.h',
692   'elm_plug_eo.legacy.h',
693   'elm_popup_eo.legacy.h',
694   'elm_popup_item_eo.legacy.h',
695   'elm_prefs_eo.legacy.h',
696   'elm_route_eo.legacy.h',
697   'elm_scroller_eo.legacy.h',
698   'elm_segment_control_eo.legacy.h',
699   'elm_segment_control_item_eo.legacy.h',
700   'elm_separator_eo.legacy.h',
701   'elm_slider_eo.legacy.h',
702   'elm_slider_part_indicator_eo.legacy.h',
703   'elm_slideshow_eo.legacy.h',
704   'elm_slideshow_item_eo.legacy.h',
705   'elm_spinner_eo.legacy.h',
706   'elm_sys_notify_dbus_eo.legacy.h',
707   'elm_sys_notify_eo.legacy.h',
708   'elm_sys_notify_interface_eo.legacy.h',
709   'elm_systray_eo.legacy.h',
710   'elm_table_eo.legacy.h',
711   'elm_thumb_eo.legacy.h',
712   'elm_toolbar_eo.legacy.h',
713   'elm_toolbar_item_eo.legacy.h',
714   'elm_view_form_eo.legacy.h',
715   'elm_view_list_eo.legacy.h',
716   'elm_view_form_eo.h',
717   'elm_view_list_eo.h',
718   'elm_web_eo.legacy.h',
719   'elm_widget_item_container_eo.legacy.h',
720   'elm_widget_item_eo.legacy.h',
721   'elm_widget_item_static_focus_eo.legacy.h',
722 ]
723
724 elementary_header_src = [
725   'Elementary.h',
726   'Elementary_Cursor.h'
727 ] + elementary_pub_headers + elementary_headers_unstable
728
729 elementary_src = [
730   'elm_priv.h',
731   'elementary_config.h',
732   'els_box.h',
733   'elc_ctxpopup.c',
734   'elc_fileselector.c',
735   'elc_fileselector_button.c',
736   'elc_fileselector_entry.c',
737   'elc_hoversel.c',
738   'elc_multibuttonentry.c',
739   'elc_naviframe.c',
740   'efl_ui_navigation_bar.c',
741   'efl_ui_navigation_layout.c',
742   'elc_player.c',
743   'elc_popup.c',
744   'elc_scrolled_entry.c',
745   'elm_access.c',
746   'efl_ui_animation_view.c',
747   'elm_actionslider.c',
748   'elm_atspi_app_object.c',
749   'elm_atspi_bridge.c',
750   'elm_atspi_ewk_wrapper.c',
751   'elm_atspi_proxy.c',
752   'efl_ui_legacy.c',
753   'efl_ui_bg.c',
754   'elm_box.c',
755   'elm_bubble.c',
756   'efl_ui_button.c',
757   'elm_calendar.c',
758   'efl_ui_calendar.c',
759   'efl_ui_check.c',
760   'elm_clock.c',
761   'elm_code_line.c',
762   'elm_code_text.c',
763   'elm_code_indent.c',
764   'elm_code_file.c',
765   'elm_code_parse.c',
766   'elm_code_syntax.c',
767   'elm_code_widget_selection.c',
768   'elm_code_widget.c',
769   'elm_code_diff_widget.c',
770   'elm_code.c',
771   'elm_code_private.h',
772   'elm_code_widget_private.h',
773   'elm_colorselector.c',
774   'elm_color_class.c',
775   'elc_combobox.c',
776   'elm_config.c',
777   'elm_conform.c',
778   'elm_datetime.c',
779   'elm_dayselector.c',
780   'elm_dbus_menu.c',
781   'elm_diskselector.c',
782   'elm_entry.c',
783   'efl_ui_flip.c',
784   'efl_ui_internal_text_interactive.c',
785   'efl_ui_internal_text_interactive.h',
786   'efl_ui_internal_text_scroller.c',
787   'efl_ui_internal_text_scroller.h',
788   'elm_flipselector.c',
789   'elm_font.c',
790   'efl_ui_frame.c',
791   'efl_ui_stack.c',
792   'elm_gengrid.c',
793   'elm_genlist.c',
794   'elm_gesture_layer.c',
795   'elm_gesture_layer_extra_gestures.c',
796   'elm_glview.c',
797   'elm_grid.c',
798   'elm_hover.c',
799   'elm_icon.c',
800   'efl_ui_image.c',
801   'elm_index.c',
802   'efl_access_object.c',
803   'efl_access_action.c',
804   'efl_access_component.c',
805   'efl_access_editable_text.c',
806   'efl_access_selection.c',
807   'efl_access_text.c',
808   'efl_access_value.c',
809   'efl_access_widget_action.c',
810   'efl_access_window.c',
811   'elm_interface_fileselector.c',
812   'elm_interface_scrollable.c',
813   'elm_inwin.c',
814   'elm_label.c',
815   'efl_ui_layout.c',
816   'efl_ui_layout_pack.c',
817   'elm_list.c',
818   'elm_main.c',
819   'elm_map.c',
820   'elm_mapbuf.c',
821   'elm_menu.c',
822   'elm_module.c',
823   'elm_notify.c',
824   'efl_ui_nstate.c',
825   'elm_panel.c',
826   'efl_ui_panes.c',
827   'elm_photo.c',
828   'efl_ui_image_zoomable.c',
829   'elm_plug.c',
830   'elm_prefs.c',
831   'elm_prefs_data.c',
832   'efl_ui_progressbar.c',
833   'efl_ui_radio.c',
834   'elm_route.c',
835   'elm_scroller.c',
836   'elm_segment_control.c',
837   'elm_separator.c',
838   'elm_slider.c',
839   'efl_ui_slider.c',
840   'efl_ui_slider_interval.c',
841   'efl_ui_spin.c',
842   'efl_ui_spin_button.c',
843   'efl_ui_panel.c',
844   'efl_ui_datepicker.c',
845   'efl_ui_timepicker.c',
846   'efl_ui_tags.c',
847   'elm_slideshow.c',
848   'elm_spinner.c',
849   'elm_store.c',
850   'elm_systray.c',
851   'elm_systray_watcher.c',
852   'elm_sys_notify_interface.c',
853   'elm_sys_notify.c',
854   'elm_sys_notify_dbus.c',
855   'elm_table.c',
856   'elm_theme.c',
857   'elm_thumb.c',
858   'elm_toolbar.c',
859   'elm_transit.c',
860   'elm_util.c',
861   'efl_ui_video.c',
862   'elm_view_list.c',
863   'elm_view_form.c',
864   'elm_web2.c',
865   'efl_ui_widget.c',
866   'efl_ui_widget_common.c',
867   'efl_ui_win.c',
868   'efl_ui_win_inlined.c',
869   'efl_ui_win_socket.c',
870   'elm_helper.c',
871   'els_box.c',
872   'els_cursor.c',
873   'els_tooltip.c',
874   'elu_ews_wm.c',
875   'efl_ui_container_layout.c',
876   'efl_ui_container_layout.h',
877   'efl_ui_box.c',
878   'efl_ui_box_flow.c',
879   'efl_ui_box_stack.c',
880   'efl_ui_box_layout.c',
881   'efl_ui_box_private.h',
882   'efl_ui_popup.c',
883   'efl_ui_alert_popup.c',
884   'efl_ui_scroll_alert_popup.c',
885   'efl_ui_text_alert_popup.c',
886   'efl_ui_anchor_popup.c',
887   'efl_ui_table.c',
888   'efl_ui_table_static.c',
889   'efl_ui_table_layout.c',
890   'efl_ui_table_private.h',
891   'efl_ui_text.c',
892   'efl_ui_text_factory_images.c',
893   'efl_ui_text_factory_emoticons.c',
894   'efl_ui_text_factory_fallback.c',
895   'efl_ui_clock.c',
896   'efl_ui_clock_private.h',
897   'efl_ui_image_factory.c',
898   'efl_ui_focus_manager.c',
899   'efl_ui_focus_manager_calc.c',
900   'efl_ui_focus_manager_sub.c',
901   'efl_ui_focus_object.c',
902   'efl_ui_focus_manager_root_focus.c',
903   'efl_ui_textpath.c',
904   'efl_ui_focus_layer.c',
905   'efl_ui_focus_composition.c',
906   'efl_ui_focus_parent_provider.c',
907   'efl_ui_focus_parent_provider_standard.c',
908   'efl_ui_focus_parent_provider_gen.c',
909   'efl_ui_focus_util.c',
910   'elm_widget_item_static_focus.c',
911   'efl_ui_item.c',
912   'efl_ui_list_item.c',
913   'efl_ui_list_default_item.c',
914   'efl_ui_list_empty_item.c',
915   'efl_ui_list.c',
916   'efl_ui_grid_item.c',
917   'efl_ui_grid_default_item.c',
918   'efl_ui_grid.c',
919   'efl_ui_list_view.c',
920   'efl_ui_list_view_precise_layouter.c',
921   'efl_ui_list_view_seg_array.c',
922   'efl_ui_layout_factory.c',
923   'efl_ui_scroller.c',
924   'efl_ui_scroll_manager.c',
925   'efl_ui_pan.c',
926   'efl_ui_selection_manager.c',
927   'efl_ui_selection_manager_private.h',
928   'efl_ui_selection.c',
929   'efl_datetime_manager.c',
930   'efl_ui_dnd.c',
931   'elm_focus_legacy.c',
932   'efl_ui_pager.c',
933   'efl_page_transition.c',
934   'efl_page_transition_scroll.c',
935   'efl_page_indicator.c',
936   'efl_page_indicator_icon.c',
937   'efl_ui_focus_graph.h',
938   'efl_ui_focus_graph.c',
939   'efl_ui_tab_pager.c',
940   'efl_ui_tab_bar.c',
941   'efl_ui_tab_page.c',
942   'efl_ui_widget_focus_manager.c',
943   'efl_ui_caching_factory.c',
944   'efl_ui_widget_factory.c',
945   'efl_ui_size_model.c',
946   'efl_ui_homogeneous_model.c',
947   'efl_ui_exact_model.c',
948   'efl_ui_average_model.c',
949   'efl_ui_relative_layout.c'
950 ]
951
952 elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl]
953 elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con,
954                        edje, eldbus, efreet, efreet_mime, efreet_trash, ethumb_client, efl, elocation]
955
956 elm_options = configuration_data()
957
958 config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root())
959 config_h.set_quoted('MODULES_PATH', join_paths(dir_lib, 'modules'))
960 config_h.set_quoted('ELEMENTARY_BASE_DIR', get_option('elementary-base-dir'))
961 config_h.set_quoted('ICON_DIR', join_paths(dir_lib, 'icons'))
962
963 if sys_windows == false
964   elm_options.set('ELM_UNIX', '1')
965 else
966   elm_options.set('DLL_EXPORT', '1')
967 endif
968
969 elm_options.set('ELM_ELOCATION', '1')
970 elm_options.set('ELM_EFREET', '1')
971
972 if config_h.has('HAVE_ALLOCA_H')
973   elm_options.set('ELM_ALLOCA_H', '1')
974 endif
975
976 if config_h.has('HAVE_LIBINTL_H')
977   elm_options.set('ELM_LIBINTL_H', '1')
978 endif
979
980 if config_h.has('HAVE_DIRENT_H')
981   elm_options.set('ELM_DIRENT_H', '1')
982 endif
983
984 if get_option('x11')
985   config_h.set('HAVE_ELEMENTARY_X', '1')
986   elementary_deps += ecore_x
987 endif
988
989 if get_option('wl')
990   config_h.set('HAVE_ELEMENTARY_WL2', '1')
991   elementary_deps += ecore_wl2
992 endif
993
994 if get_option('drm')
995   config_h.set('HAVE_ELEMENTARY_DRM', '1')
996   elementary_deps += ecore_drm2
997 endif
998
999 if get_option('cocoa')
1000   config_h.set('HAVE_ELEMENTARY_COCOA', '1')
1001   elementary_deps += ecore_cocoa
1002 endif
1003
1004 c = configure_file(
1005   output: 'Elementary_Options.h',
1006   install : true,
1007   install_dir : dir_package_include,
1008   configuration: elm_options)
1009
1010 elm_package_c_args =  package_c_args + ['-DELEMENTARY_BUILD=1']
1011
1012 elementary_lib = library('elementary',
1013     elementary_src, pub_eo_file_target, priv_eo_file_target, c,
1014     dependencies: elementary_pub_deps + elementary_deps,
1015     include_directories : config_dir + [include_directories('.')] + [include_directories(join_paths('..', '..', '..'))] + [ecore_evas_wayland_engine_include_dir],
1016     install: true,
1017     c_args : elm_package_c_args,
1018     version : meson.project_version()
1019 )
1020
1021 elementary = declare_dependency(
1022   include_directories: [include_directories('.')],
1023   link_with: elementary_lib,
1024   sources : pub_eo_file_target + priv_eo_file_target,
1025   dependencies: elementary_pub_deps,
1026 )
1027
1028 install_data(pub_eo_files + pub_eo_types_files,
1029   install_dir: join_paths(eolian_include_dir, package_version_name)
1030 )
1031
1032 install_headers(elementary_header_src,
1033   install_dir : dir_package_include,
1034 )
1035
1036 elementary_config_dir = include_directories('.')
1037
1038 package_pc_variables = ['themes='+join_paths(dir_data, package_name, 'themes')]