summaryrefslogtreecommitdiff
path: root/src/lib/eldbus
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/eldbus
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/eldbus')
-rw-r--r--src/lib/eldbus/meson.build114
1 files changed, 114 insertions, 0 deletions
diff --git a/src/lib/eldbus/meson.build b/src/lib/eldbus/meson.build
new file mode 100644
index 0000000..57f2981
--- /dev/null
+++ b/src/lib/eldbus/meson.build
@@ -0,0 +1,114 @@
1eldbus_deps = [ecore]
2eldbus_pub_deps = [eina, eo, efl]
3
4pub_eo_files = [
5 'eldbus_model_connection.eo',
6 'eldbus_model_object.eo',
7 'eldbus_model_proxy.eo',
8 'eldbus_model_method.eo',
9 'eldbus_model_arguments.eo',
10 'eldbus_model_signal.eo',
11 'eldbus_model.eo'
12]
13
14foreach eo_file : pub_eo_files
15 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
16 input : eo_file,
17 output : [eo_file + '.h'],
18 install : true,
19 install_dir : dir_package_include,
20 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
21 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
22 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
23 '-gch', '@INPUT@'])
24endforeach
25
26
27pub_eo_types_files = [
28 'eldbus_types.eot'
29]
30
31foreach eo_file : pub_eo_types_files
32 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
33 input : eo_file,
34 output : [eo_file + '.h'],
35 install : true,
36 install_dir : dir_package_include,
37 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
38 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
39 '-gh', '@INPUT@'])
40endforeach
41
42eolian_include_directories += ['-I', meson.current_source_dir()]
43
44eldbus_header_src = [
45 'Eldbus.h',
46 'eldbus_connection.h',
47 'eldbus_freedesktop.h',
48 'eldbus_message.h',
49 'eldbus_object.h',
50 'eldbus_pending.h',
51 'eldbus_proxy.h',
52 'eldbus_service.h',
53 'eldbus_signal_handler.h',
54 'eldbus_message_helper.h',
55 'eldbus_introspection.h',
56 'Eldbus_Model.h',
57 'eldbus_message_eina_value.h'
58]
59
60eldbus_src = [
61 'eldbus_private.h',
62 'eldbus_private_types.h',
63 'eldbus_model_private.h',
64 'eldbus_model_proxy_private.h',
65 'eldbus_model_object_private.h',
66 'eldbus_model_arguments_private.h',
67 'eldbus_model_connection_private.h',
68 'eldbus_model_signal_private.h',
69 'eldbus_model_method_private.h',
70 'eldbus_proxy.c',
71 'eldbus_core.c',
72 'eldbus_message.c',
73 'eldbus_object.c',
74 'eldbus_pending.c',
75 'eldbus_freedesktop.c',
76 'eldbus_service.c',
77 'eldbus_signal_handler.c',
78 'eldbus_message_helper.c',
79 'eldbus_message_to_eina_value.c',
80 'eldbus_message_from_eina_value.c',
81 'eldbus_model.c',
82 'eldbus_model_connection.c',
83 'eldbus_model_object.c',
84 'eldbus_model_proxy.c',
85 'eldbus_model_method.c',
86 'eldbus_model_arguments.c',
87 'eldbus_model_signal.c',
88 'eldbus_introspection.c'
89]
90
91eldbus_deps += dependency('dbus-1')
92
93eldbus_lib = library('eldbus',
94 eldbus_src, pub_eo_file_target,
95 dependencies: eldbus_pub_deps + eldbus_deps,
96 include_directories : config_dir,
97 install: true,
98 version : meson.project_version()
99)
100
101eldbus = declare_dependency(
102 include_directories: [include_directories('.')],
103 link_with: eldbus_lib,
104 sources : pub_eo_file_target + priv_eo_file_target,
105 dependencies: eldbus_pub_deps,
106)
107
108install_data(pub_eo_files + pub_eo_types_files,
109 install_dir: join_paths(eolian_include_dir, package_version_name)
110)
111
112install_headers(eldbus_header_src,
113 install_dir : dir_package_include,
114)