diff options
author | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-08-12 15:26:29 +0200 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-10-02 17:22:50 +0200 |
commit | 46d464e5bfc10398461a33a2256c1c58d509dd1a (patch) | |
tree | 8c1a9272c05f14033a4430bc122632461bd73608 /src/lib/emotion/meson.build | |
parent | 70ecf1056bb4be5a68b63044f938ccc2fe0a58c0 (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/emotion/meson.build')
-rw-r--r-- | src/lib/emotion/meson.build | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/src/lib/emotion/meson.build b/src/lib/emotion/meson.build new file mode 100644 index 0000000000..56fda43cb9 --- /dev/null +++ b/src/lib/emotion/meson.build | |||
@@ -0,0 +1,70 @@ | |||
1 | pub_legacy_eo_files = [ | ||
2 | 'efl_canvas_video.eo' | ||
3 | ] | ||
4 | |||
5 | pub_eo_file_target = [] | ||
6 | priv_eo_file_target = [] | ||
7 | |||
8 | foreach eo_file : pub_legacy_eo_files | ||
9 | pub_eo_file_target += custom_target('eolian_gen_' + eo_file, | ||
10 | input : eo_file, | ||
11 | output : [eo_file + '.h', eo_file + '.legacy.h',], | ||
12 | install : true, | ||
13 | install_dir : dir_package_include, | ||
14 | command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories, | ||
15 | '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'), | ||
16 | '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'), | ||
17 | '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'), | ||
18 | '-gchl', '@INPUT@']) | ||
19 | |||
20 | endforeach | ||
21 | |||
22 | eolian_include_directories += ['-I', meson.current_source_dir()] | ||
23 | |||
24 | emotion_header_src = [ | ||
25 | 'Emotion.h', | ||
26 | 'Emotion_Legacy.h', | ||
27 | 'Emotion_Eo.h' | ||
28 | ] | ||
29 | |||
30 | emotion_src = [ | ||
31 | 'emotion_modules.h', | ||
32 | 'emotion_private.h', | ||
33 | 'emotion_smart.c', | ||
34 | 'emotion_webcam.c', | ||
35 | 'emotion_modules.c', | ||
36 | 'emotion_main.c' | ||
37 | ] | ||
38 | |||
39 | emotion_deps = [ecore, eet, evas, eio, emile] | ||
40 | emotion_pub_deps = [eina, eo, efl] | ||
41 | |||
42 | if get_option('eeze') == true | ||
43 | emotion_deps += [eeze] | ||
44 | endif | ||
45 | |||
46 | emotion_lib = library('emotion', | ||
47 | emotion_src, pub_eo_file_target, priv_eo_file_target, | ||
48 | dependencies: emotion_deps + emotion_pub_deps, | ||
49 | include_directories : config_dir + [include_directories('.')], | ||
50 | install: true, | ||
51 | c_args : package_c_args, | ||
52 | version : meson.project_version() | ||
53 | ) | ||
54 | |||
55 | emotion_package_c_args = package_c_args | ||
56 | |||
57 | emotion = declare_dependency( | ||
58 | include_directories: [include_directories('.')], | ||
59 | link_with: emotion_lib, | ||
60 | sources : pub_eo_file_target + priv_eo_file_target, | ||
61 | dependencies: emotion_pub_deps, | ||
62 | ) | ||
63 | |||
64 | install_data(pub_legacy_eo_files, | ||
65 | install_dir: join_paths(eolian_include_dir, package_version_name) | ||
66 | ) | ||
67 | |||
68 | install_headers(emotion_header_src, | ||
69 | install_dir : dir_package_include, | ||
70 | ) | ||