summaryrefslogtreecommitdiff
path: root/src/lib/edje/meson.build
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/edje/meson.build
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 '')
-rw-r--r--src/lib/edje/meson.build160
1 files changed, 160 insertions, 0 deletions
diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build
new file mode 100644
index 0000000000..bcfcd9b569
--- /dev/null
+++ b/src/lib/edje/meson.build
@@ -0,0 +1,160 @@
1edje_deps = [
2 eina, eo, efl, m,
3 luajit, eet, evas, ecore_evas,
4 ecore_file, ecore_input,
5 ecore_imf, ecore_imf_evas,
6 embryo, efreet, eio, intl
7]
8
9
10edje_pub_deps = [m, evas, eo, efl, luajit]
11
12if (get_option('physics'))
13 edje_deps += ephysics
14 edje_pub_deps += ephysics
15endif
16
17config_h.set('EDJE_CALC_CACHE', '1')
18
19if get_option('edje-sound-and-video')
20 config_h.set('ENABLE_MULTISENSE', '1')
21 edje_deps += ecore_audio
22endif
23
24pub_legacy_eo_files = [
25 'edje_edit.eo',
26 'efl_layout_calc.eo',
27 'efl_layout_signal.eo',
28 'efl_layout_group.eo',
29 'efl_canvas_layout.eo',
30 'efl_canvas_layout_part.eo',
31 'efl_canvas_layout_part_box.eo',
32 'efl_canvas_layout_part_external.eo',
33 'efl_canvas_layout_part_invalid.eo',
34 'efl_canvas_layout_part_swallow.eo',
35 'efl_canvas_layout_part_table.eo',
36 'efl_canvas_layout_part_text.eo',
37]
38
39pub_eo_files = pub_legacy_eo_files
40pub_eo_file_target = []
41
42foreach eo_file : pub_legacy_eo_files
43 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
44 input : eo_file,
45 output : [eo_file + '.h', eo_file + '.legacy.h',],
46 install : true,
47 install_dir : dir_package_include,
48 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
49 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
50 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
51 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
52 '-gchl', '@INPUT@'])
53
54endforeach
55
56pub_eo_types_files = [
57 'edje_types.eot'
58]
59
60foreach eo_file : pub_eo_types_files
61 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
62 input : eo_file,
63 output : [eo_file + '.h'],
64 install : true,
65 install_dir : dir_package_include,
66 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
67 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
68 '-gh', '@INPUT@'])
69endforeach
70
71priv_eo_files = [
72 'edje_global.eo',
73]
74
75priv_eo_file_target = []
76foreach eo_file : priv_eo_files
77 priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
78 input : eo_file,
79 output : [eo_file + '.h'],
80 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
81 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
82 '-gch', '@INPUT@'])
83endforeach
84
85
86eolian_include_directories += ['-I', meson.current_source_dir()]
87
88edje_header_src = [
89 'Edje.h',
90 'Edje_Common.h',
91 'Edje_Eo.h',
92 'Edje_Legacy.h',
93 'Edje_Edit.h'
94]
95
96edje_src = [
97 'edje_private.h',
98 'edje_convert.h',
99 'edje_box_layout.c',
100 'edje_cache.c',
101 'edje_calc.c',
102 'edje_callbacks.c',
103 'edje_data.c',
104 'edje_edit.c',
105 'edje_embryo.c',
106 'edje_entry.c',
107 'edje_external.c',
108 'edje_load.c',
109 'edje_lua.c',
110 'edje_lua2.c',
111 'edje_lua_script_only.c',
112 'edje_main.c',
113 'edje_match.c',
114 'edje_message_queue.c',
115 'edje_misc.c',
116 'edje_module.c',
117 'edje_multisense.c',
118 'edje_program.c',
119 'edje_smart.c',
120 'edje_text.c',
121 'edje_textblock.c',
122 'edje_textblock_styles.c',
123 'edje_util.c',
124 'edje_legacy.c',
125 'edje_var.c',
126 'edje_signal.c',
127 'edje_part.c',
128 'edje_part_helper.h',
129 'edje_part_external.c',
130 'edje_part_swallow.c',
131 'edje_part_table.c',
132 'edje_part_box.c',
133 'edje_part_text.c',
134 'edje_part_invalid.c'
135
136]
137
138edje_lib = library('edje',
139 edje_src, pub_eo_file_target, priv_eo_file_target,
140 dependencies: [edje_deps],
141 include_directories : config_dir + [include_directories('.')],
142 install: true,
143 c_args : [package_c_args],
144 version : meson.project_version()
145)
146
147edje = declare_dependency(
148 include_directories: [include_directories('.')],
149 link_with: edje_lib,
150 sources : pub_eo_file_target + priv_eo_file_target,
151 dependencies: edje_pub_deps,
152)
153
154install_data(pub_eo_files + pub_eo_types_files,
155 install_dir: join_paths(eolian_include_dir, package_version_name)
156)
157
158install_headers(edje_header_src,
159 install_dir : dir_package_include,
160)