summaryrefslogtreecommitdiff
path: root/src/lib/ecore
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/ecore
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/ecore')
-rw-r--r--src/lib/ecore/meson.build222
1 files changed, 222 insertions, 0 deletions
diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build
new file mode 100644
index 0000000000..f5872ffb76
--- /dev/null
+++ b/src/lib/ecore/meson.build
@@ -0,0 +1,222 @@
1ecore_deps = [intl]
2ecore_pub_deps = [eina, eo, efl]
3
4pub_legacy_eo_files = [
5 'ecore_exe.eo',
6 'ecore_event_message.eo',
7 'ecore_event_message_handler.eo',
8 'efl_loop_timer.eo'
9]
10
11pub_eo_file_target = []
12foreach eo_file : pub_legacy_eo_files
13 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
14 input : eo_file,
15 output : [eo_file + '.h', eo_file + '.legacy.h',],
16 install : true,
17 install_dir : dir_package_include,
18 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
19 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
20 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
21 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
22 '-gchl', '@INPUT@'])
23
24endforeach
25
26pub_eo_files = [
27 'efl_app.eo',
28 'efl_loop.eo',
29 'efl_loop_consumer.eo',
30 'efl_loop_fd.eo',
31 'efl_loop_handler.eo',
32 'efl_loop_message.eo',
33 'efl_loop_message_handler.eo',
34 'efl_exe.eo',
35 'efl_thread.eo',
36 'efl_threadio.eo',
37 'efl_appthread.eo',
38 'efl_task.eo',
39 'efl_io_closer_fd.eo',
40 'efl_io_positioner_fd.eo',
41 'efl_io_reader_fd.eo',
42 'efl_io_sizer_fd.eo',
43 'efl_io_writer_fd.eo',
44 'efl_io_stdin.eo',
45 'efl_io_stdout.eo',
46 'efl_io_stderr.eo',
47 'efl_io_file.eo',
48 'efl_io_copier.eo',
49 'efl_io_buffered_stream.eo',
50 'efl_interpolator.eo',
51 'efl_interpolator_linear.eo',
52 'efl_interpolator_accelerate.eo',
53 'efl_interpolator_decelerate.eo',
54 'efl_interpolator_sinusoidal.eo',
55 'efl_interpolator_divisor.eo',
56 'efl_interpolator_bounce.eo',
57 'efl_interpolator_spring.eo',
58 'efl_interpolator_cubic_bezier.eo',
59 'efl_loop_message_future_handler.eo',
60 'efl_loop_message_future.eo',
61 'efl_model_item.eo',
62 'efl_model_container.eo',
63 'efl_model_container_item.eo',
64 'efl_model_composite_boolean.eo',
65 'efl_model_composite_boolean_children.eo',
66 'efl_model_composite_selection.eo',
67 'efl_model_composite_selection_children.eo',
68 'efl_model_composite.eo'
69]
70
71foreach eo_file : pub_eo_files
72 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
73 input : eo_file,
74 output : [eo_file + '.h'],
75 install : true,
76 install_dir : dir_package_include,
77 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
78 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
79 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
80 '-gch', '@INPUT@'])
81endforeach
82
83# special handling, because this is already eo API and legacy API
84pub_eo_files += ['efl_loop_timer.eo']
85
86pub_eo_types_files = []
87
88eolian_include_directories += ['-I', meson.current_source_dir()]
89
90ecore_header_src = [
91 'Ecore.h',
92 'Ecore_Common.h',
93 'Ecore_Legacy.h',
94 'Ecore_Eo.h',
95 'Efl_Core.h',
96 'efl_general.h',
97 'Ecore_Getopt.h'
98]
99
100ecore_src = [
101 'efl_app.c',
102 'ecore.c',
103 'ecore_alloc.c',
104 'ecore_anim.c',
105 'ecore_app.c',
106 'ecore_events.c',
107 'ecore_getopt.c',
108 'ecore_glib.c',
109 'ecore_idle_enterer.c',
110 'ecore_idle_exiter.c',
111 'ecore_idler.c',
112 'ecore_job.c',
113 'ecore_main.c',
114 'ecore_event_message.c',
115 'ecore_event_message_handler.c',
116 'efl_loop.c',
117 'efl_loop_consumer.c',
118 'efl_loop_fd.c',
119 'efl_loop_handler.c',
120 'efl_loop_message.c',
121 'efl_loop_message_future.c',
122 'efl_loop_message_handler.c',
123 'efl_loop_message_future_handler.c',
124 'efl_task.c',
125 'efl_io_closer_fd.c',
126 'efl_io_positioner_fd.c',
127 'efl_io_reader_fd.c',
128 'efl_io_sizer_fd.c',
129 'efl_io_writer_fd.c',
130 'efl_io_stdin.c',
131 'efl_io_stdout.c',
132 'efl_io_stderr.c',
133 'efl_io_file.c',
134 'efl_io_copier.c',
135 'efl_io_buffered_stream.c',
136 'efl_model_item.c',
137 'efl_model_container.c',
138 'efl_model_container_item.c',
139 'efl_model_container_private.h',
140 'efl_model_composite.c',
141 'efl_model_composite_boolean.c',
142 'efl_model_composite_selection.c',
143 'efl_model_accessor_view.c',
144 'efl_model_accessor_view_private.h',
145 'efl_interpolator.c',
146 'efl_interpolator_linear.c',
147 'efl_interpolator_accelerate.c',
148 'efl_interpolator_decelerate.c',
149 'efl_interpolator_sinusoidal.c',
150 'efl_interpolator_divisor.c',
151 'efl_interpolator_bounce.c',
152 'efl_interpolator_spring.c',
153 'efl_interpolator_cubic_bezier.c',
154 'ecore_main_timechanges.c',
155 'ecore_pipe.c',
156 'ecore_poller.c',
157 'ecore_time.c',
158 'ecore_timer.c',
159 'ecore_thread.c',
160 'ecore_throttle.c',
161 'ecore_exe.c',
162 'ecore_exe_private.h',
163 'ecore_private.h',
164 'ecore_internal.h',
165 'ecore_main_common.h'
166]
167
168if target_machine.system() == 'windows'
169 #nothing for now ... needs testing
170else
171 ecore_src += ['ecore_signal.c', 'ecore_exe_posix.c']
172endif
173
174if get_option('glib') == true
175 ecore_deps += dependency('glib-2.0')
176 ecore_deps += dependency('gthread-2.0')
177 config_h.set('GLIB_INTEGRATION_ALWAYS', '1')
178 config_h.set('HAVE_GLIB', '1')
179endif
180
181if get_option('g-mainloop') == true
182 config_h.set('USE_G_MAIN_LOOP', '1')
183endif
184
185if get_option('gstreamer') == true
186 gstreamer = dependency('gstreamer-1.0')
187 ecore_deps += gstreamer
188endif
189
190if get_option('systemd') == true
191 ecore_deps += systemd
192endif
193
194ecore_lib = library('ecore',
195 ecore_src, pub_eo_file_target,
196 dependencies: ecore_pub_deps + [m, buildsystem, ecore_deps],
197 include_directories : config_dir + [include_directories(join_paths('..','..'))],
198 install: true,
199 c_args : package_c_args,
200 version : meson.project_version()
201)
202
203ecore = declare_dependency(
204 include_directories: [include_directories('.')],
205 link_with: ecore_lib,
206 sources : pub_eo_file_target + priv_eo_file_target,
207 dependencies: ecore_pub_deps,
208)
209
210eolian_ecore_dir = join_paths(eolian_include_dir, package_version_name)
211
212install_data(pub_eo_files + pub_eo_types_files,
213 install_dir: eolian_ecore_dir
214)
215
216install_headers(ecore_header_src,
217 install_dir : dir_package_include,
218)
219
220#TODO:
221# HAVE_TIZEN_CONFIGUREATION_MANAGER
222# avahi