summaryrefslogtreecommitdiff
path: root/src/lib/ector
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/ector
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/ector')
-rw-r--r--src/lib/ector/cairo/meson.build34
-rw-r--r--src/lib/ector/gl/meson.build37
-rw-r--r--src/lib/ector/meson.build88
-rw-r--r--src/lib/ector/software/meson.build36
4 files changed, 195 insertions, 0 deletions
diff --git a/src/lib/ector/cairo/meson.build b/src/lib/ector/cairo/meson.build
new file mode 100644
index 0000000000..2b45ce2b87
--- /dev/null
+++ b/src/lib/ector/cairo/meson.build
@@ -0,0 +1,34 @@
1
2ector_src += files([
3 'ector_renderer_cairo_gradient_linear.c',
4 'ector_renderer_cairo_gradient_radial.c',
5 'ector_renderer_cairo_shape.c',
6 'ector_renderer_cairo.c',
7 'ector_cairo_software_surface.c',
8 'ector_cairo_surface.c'
9])
10
11pub_eo_files = [
12 'ector_cairo_surface.eo',
13 'ector_cairo_software_surface.eo',
14 'ector_renderer_cairo.eo',
15 'ector_renderer_cairo_shape.eo',
16 'ector_renderer_cairo_gradient_linear.eo',
17 'ector_renderer_cairo_gradient_radial.eo'
18]
19
20foreach eo_file : pub_eo_files
21 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
22 input : eo_file,
23 output : [eo_file + '.h'],
24 install : false,
25 install_dir : dir_package_include,
26 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
27 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
28 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
29 '-gch', '@INPUT@'])
30endforeach
31
32install_data(pub_eo_files,
33 install_dir: join_paths(eolian_include_dir, package_version_name)
34)
diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build
new file mode 100644
index 0000000000..dad958c0fc
--- /dev/null
+++ b/src/lib/ector/gl/meson.build
@@ -0,0 +1,37 @@
1
2ector_src += files([
3 'ector_renderer_gl_gradient_linear.c',
4 'ector_renderer_gl_gradient_radial.c',
5 'ector_renderer_gl_shape.c',
6 'ector_renderer_gl.c',
7 'ector_gl_buffer.c',
8 'ector_gl_surface.c',
9 'ector_gl_private.h',
10 #'shader/ector_gl_shaders.x',
11 'ector_gl_shader.c'
12])
13
14pub_eo_files = [
15 'ector_gl_surface.eo',
16 'ector_gl_buffer.eo',
17 'ector_renderer_gl.eo',
18 'ector_renderer_gl_shape.eo',
19 'ector_renderer_gl_gradient_radial.eo',
20 'ector_renderer_gl_gradient_linear.eo'
21]
22
23foreach eo_file : pub_eo_files
24 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
25 input : eo_file,
26 output : [eo_file + '.h'],
27 install : false,
28 install_dir : dir_package_include,
29 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
30 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
31 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
32 '-gch', '@INPUT@'])
33endforeach
34
35install_data(pub_eo_files,
36 install_dir: join_paths(eolian_include_dir, package_version_name)
37)
diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build
new file mode 100644
index 0000000000..be3c6a5f62
--- /dev/null
+++ b/src/lib/ector/meson.build
@@ -0,0 +1,88 @@
1ector_deps = [eina, emile, eet, eo, efl]
2ector_pub_deps = [eina, efl]
3
4pub_eo_file_target = []
5
6ector_header_src = [
7 # nothing for now ector stays only intree
8]
9
10ector_src = [
11 'ector_main.c',
12 'ector_gl_internal.h',
13 'ector_buffer.c',
14 'ector_renderer_shape.c',
15 'ector_renderer.c',
16 'ector_renderer_gradient.c',
17 'ector_renderer_gradient_radial.c',
18 'ector_renderer_gradient_linear.c'
19]
20
21pub_eo_files = [
22 'ector_surface.eo',
23 'ector_buffer.eo',
24 'ector_renderer.eo',
25 'ector_renderer_shape.eo',
26 'ector_renderer_gradient.eo',
27 'ector_renderer_gradient_radial.eo',
28 'ector_renderer_gradient_linear.eo'
29]
30
31ector_pub_eo_files = pub_eo_files
32
33foreach eo_file : pub_eo_files
34 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
35 input : eo_file,
36 output : [eo_file + '.h'],
37 install : false,
38 install_dir : dir_package_include,
39 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
40 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
41 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
42 '-gch', '@INPUT@'])
43endforeach
44
45eolian_include_directories += ['-I', meson.current_source_dir()]
46
47subdir('cairo')
48subdir('gl')
49subdir('software')
50
51pub_eo_types_files = [
52 'ector_types.eot'
53]
54
55install_data(ector_pub_eo_files + pub_eo_types_files,
56 install_dir: join_paths(eolian_include_dir, package_version_name)
57)
58
59foreach eo_file : pub_eo_types_files
60 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
61 input : eo_file,
62 output : [eo_file + '.h'],
63 install : false,
64 install_dir : dir_package_include,
65 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
66 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
67 '-gh', '@INPUT@'])
68endforeach
69
70ector_lib = library('ector',
71 ector_src, pub_eo_file_target,
72 dependencies: ector_pub_deps + [triangulator, freetype, draw, m] + ector_deps,
73 include_directories : config_dir,
74 install: true,
75 version : meson.project_version()
76)
77
78ector = declare_dependency(
79 include_directories: [include_directories('.')],
80 link_with: ector_lib,
81 sources : pub_eo_file_target + priv_eo_file_target,
82 dependencies: ector_pub_deps,
83)
84
85install_headers(ector_header_src,
86 install_dir : dir_package_include,
87)
88
diff --git a/src/lib/ector/software/meson.build b/src/lib/ector/software/meson.build
new file mode 100644
index 0000000000..ceb08ef3f2
--- /dev/null
+++ b/src/lib/ector/software/meson.build
@@ -0,0 +1,36 @@
1
2ector_src += files([
3 'ector_renderer_software_gradient_linear.c',
4 'ector_renderer_software_gradient_radial.c',
5 'ector_renderer_software_shape.c',
6 'ector_software_gradient.c',
7 'ector_software_rasterizer.c',
8 'ector_software_surface.c',
9 'ector_software_buffer.c',
10])
11
12pub_eo_files = [
13 'ector_software_surface.eo',
14 'ector_software_buffer.eo',
15 'ector_software_buffer_base.eo',
16 'ector_renderer_software.eo',
17 'ector_renderer_software_shape.eo',
18 'ector_renderer_software_gradient_radial.eo',
19 'ector_renderer_software_gradient_linear.eo',
20]
21
22foreach eo_file : pub_eo_files
23 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
24 input : eo_file,
25 output : [eo_file + '.h'],
26 install : false,
27 install_dir : dir_package_include,
28 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
29 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
30 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
31 '-gch', '@INPUT@'])
32endforeach
33
34install_data(pub_eo_files,
35 install_dir: join_paths(eolian_include_dir, package_version_name)
36)