summaryrefslogtreecommitdiff
path: root/src/lib/efl
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2018-08-12 15:26:29 +0200
committerMarcel Hollerbach <mail@marcel-hollerbach.de>2018-10-02 17:22:50 +0200
commit46d464e5bfc10398461a33a2256c1c58d509dd1a (patch)
tree8c1a9272c05f14033a4430bc122632461bd73608 /src/lib/efl
parent70ecf1056bb4be5a68b63044f938ccc2fe0a58c0 (diff)
here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <zmike@samsung.com> Differential Revision: https://phab.enlightenment.org/D7012 Depends on D7011
Diffstat (limited to 'src/lib/efl')
-rw-r--r--src/lib/efl/interfaces/meson.build155
-rw-r--r--src/lib/efl/meson.build33
2 files changed, 188 insertions, 0 deletions
diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build
new file mode 100644
index 0000000000..8d29c404a8
--- /dev/null
+++ b/src/lib/efl/interfaces/meson.build
@@ -0,0 +1,155 @@
1pub_legacy_eo_files = [
2 'efl_gfx_fill.eo',
3 'efl_gfx_entity.eo',
4 'efl_gfx_color.eo',
5 'efl_gfx_image.eo',
6 'efl_gfx_image_animation_controller.eo',
7 'efl_input_device.eo',
8 'efl_ui_draggable.eo',
9 'efl_ui_clickable.eo',
10 'efl_ui_scrollable.eo',
11 'efl_ui_scrollable_interactive.eo',
12 'efl_ui_scrollbar.eo',
13 'efl_ui_selectable.eo',
14 'efl_ui_zoom.eo',
15]
16
17pub_eo_file_target = []
18foreach eo_file : pub_legacy_eo_files
19 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
20 input : eo_file,
21 output : [eo_file + '.h', eo_file + '.legacy.h',],
22 install : true,
23 install_dir : join_paths(dir_package_include, 'interfaces'),
24 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
25 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
26 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
27 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
28 '-gchl', '@INPUT@'])
29
30endforeach
31
32pub_eo_files = [
33 'efl_playable.eo',
34 'efl_canvas_scene.eo',
35 'efl_canvas_pointer.eo',
36 'efl_config.eo',
37 'efl_control.eo',
38 'efl_duplicate.eo',
39 'efl_file.eo',
40 'efl_gfx_image_load_controller.eo',
41 'efl_part.eo',
42 'efl_player.eo',
43 'efl_text.eo',
44 'efl_text_font.eo',
45 'efl_text_style.eo',
46 'efl_text_format.eo',
47 'efl_text_cursor.eo',
48 'efl_text_annotate.eo',
49 'efl_text_markup.eo',
50 'efl_text_markup_util.eo',
51 'efl_gfx_stack.eo',
52 'efl_gfx_view.eo',
53 'efl_gfx_buffer.eo',
54 'efl_gfx_path.eo',
55 'efl_gfx_shape.eo',
56 'efl_gfx_gradient.eo',
57 'efl_gfx_gradient_linear.eo',
58 'efl_gfx_gradient_radial.eo',
59 'efl_gfx_filter.eo',
60 'efl_gfx_blur.eo',
61 'efl_gfx_size_hint.eo',
62 'efl_model.eo',
63 'efl_animator.eo',
64 'efl_orientation.eo',
65 'efl_container.eo',
66 'efl_content.eo',
67 'efl_pack.eo',
68 'efl_pack_layout.eo',
69 'efl_pack_linear.eo',
70 'efl_pack_table.eo',
71 'efl_ui_base.eo',
72 'efl_ui_direction.eo',
73 'efl_ui_drag.eo',
74 'efl_ui_range.eo',
75 'efl_ui_view.eo',
76 'efl_ui_model_connect.eo',
77 'efl_ui_factory.eo',
78 'efl_ui_multi_selectable.eo',
79 'efl_screen.eo',
80 'efl_io_closer.eo',
81 'efl_io_positioner.eo',
82 'efl_io_reader.eo',
83 'efl_io_sizer.eo',
84 'efl_io_writer.eo',
85 'efl_io_buffer.eo',
86 'efl_io_queue.eo',
87 'efl_observer.eo',
88 'efl_observable.eo',
89 'efl_ui_autorepeat.eo',
90 'efl_ui_format.eo',
91 'efl_gfx_color_class.eo',
92 'efl_gfx_text_class.eo',
93 'efl_gfx_size_class.eo',
94]
95
96eolian_include_directories += ['-I', join_paths(meson.source_root(), 'src', 'lib', 'evas', 'canvas')]
97
98foreach eo_file : pub_eo_files
99 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
100 input : eo_file,
101 output : [eo_file + '.h'],
102 install : true,
103 install_dir : join_paths(dir_package_include, 'interfaces'),
104 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
105 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
106 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
107 '-gch', '@INPUT@'])
108endforeach
109
110pub_eo_types_files = [
111 'efl_gfx_types.eot',
112 'efl_ui_types.eot',
113 'efl_input_types.eot',
114 'efl_types.eot',
115 'efl_text_types.eot',
116]
117
118foreach eo_file : pub_eo_types_files
119 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
120 input : eo_file,
121 output : [eo_file + '.h'],
122 install : true,
123 install_dir : join_paths(dir_package_include, 'interfaces'),
124 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
125 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
126 '-gh', '@INPUT@'])
127endforeach
128
129pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
130
131efl_src += files([
132 'efl_interfaces_main.c',
133 'efl_model_common.c',
134 'efl_gfx_path.c',
135 'efl_gfx_shape.c',
136 'efl_gfx_color.c',
137 'efl_input_device.c',
138 'efl_io_closer.c',
139 'efl_io_positioner.c',
140 'efl_io_reader.c',
141 'efl_io_sizer.c',
142 'efl_io_writer.c',
143 'efl_io_buffer.c',
144 'efl_io_queue.c',
145 'efl_observer.c',
146 'efl_file.c',
147 'efl_ui_format.c',
148 'efl_text_markup_util.c',
149])
150
151#efl_header_src += files([
152# 'efl_common_internal.h'
153#])
154
155eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build
new file mode 100644
index 0000000000..75acef3b54
--- /dev/null
+++ b/src/lib/efl/meson.build
@@ -0,0 +1,33 @@
1efl_deps = []
2efl_pub_deps = [eo]
3
4efl_header_src = [
5 'Efl.h',
6 'Efl_Model_Common.h'
7]
8
9efl_src = []
10
11subdir('interfaces')
12
13efl_lib = library('efl',
14 efl_src, pub_eo_file_target,
15 dependencies: [eina, eo, m],
16 install: true,
17 version : meson.project_version()
18)
19
20efl = declare_dependency(
21 include_directories: [include_directories('.'), config_dir],
22 link_with: efl_lib,
23 dependencies: efl_deps + efl_pub_deps,
24 sources : pub_eo_file_target
25)
26
27install_data(pub_eo_files,
28 install_dir: join_paths(eolian_include_dir, package_version_name)
29)
30
31install_headers(efl_header_src,
32 install_dir : dir_package_include,
33)