summaryrefslogtreecommitdiff
path: root/src/modules/evas
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/modules/evas
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/modules/evas')
-rw-r--r--src/modules/evas/engines/buffer/meson.build25
-rw-r--r--src/modules/evas/engines/drm/meson.build19
-rw-r--r--src/modules/evas/engines/fb/meson.build21
-rw-r--r--src/modules/evas/engines/gl_cocoa/meson.build19
-rw-r--r--src/modules/evas/engines/gl_common/meson.build45
-rw-r--r--src/modules/evas/engines/gl_drm/meson.build19
-rw-r--r--src/modules/evas/engines/gl_generic/meson.build44
-rw-r--r--src/modules/evas/engines/gl_x11/meson.build19
-rw-r--r--src/modules/evas/engines/software_ddraw/meson.build21
-rw-r--r--src/modules/evas/engines/software_gdi/meson.build21
-rw-r--r--src/modules/evas/engines/software_generic/filters/meson.build13
-rw-r--r--src/modules/evas/engines/software_generic/meson.build40
-rw-r--r--src/modules/evas/engines/software_x11/meson.build40
-rw-r--r--src/modules/evas/engines/wayland_egl/meson.build21
-rw-r--r--src/modules/evas/engines/wayland_shm/meson.build20
-rw-r--r--src/modules/evas/image_loaders/meson.build42
-rw-r--r--src/modules/evas/image_savers/meson.build32
-rw-r--r--src/modules/evas/meson.build97
-rw-r--r--src/modules/evas/model_loaders/meson.build16
-rw-r--r--src/modules/evas/model_savers/meson.build16
-rw-r--r--src/modules/evas/vg_loaders/meson.build13
-rw-r--r--src/modules/evas/vg_savers/meson.build14
22 files changed, 617 insertions, 0 deletions
diff --git a/src/modules/evas/engines/buffer/meson.build b/src/modules/evas/engines/buffer/meson.build
new file mode 100644
index 0000000000..e5a2510db9
--- /dev/null
+++ b/src/modules/evas/engines/buffer/meson.build
@@ -0,0 +1,25 @@
1engine_src = files([
2 'Evas_Engine_Buffer.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c'
6])
7
8engine_deps = []
9
10evas_include_directories += include_directories('.')
11
12install_headers('Evas_Engine_Buffer.h',
13 install_dir : dir_package_include,
14)
15
16if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
17 shared_module(mod_full_name, engine_src,
18 include_directories : config_dir + [engine_include_dir],
19 dependencies : [eina, evas_pre] + engine_deps,
20 install : true,
21 install_dir : mod_install_dir,
22 name_suffix : sys_mod_extension
23 )
24 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
25endif
diff --git a/src/modules/evas/engines/drm/meson.build b/src/modules/evas/engines/drm/meson.build
new file mode 100644
index 0000000000..6445a560f2
--- /dev/null
+++ b/src/modules/evas/engines/drm/meson.build
@@ -0,0 +1,19 @@
1engine_src = files([
2 'Evas_Engine_Drm.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c'
6])
7
8engine_deps = [ecore_drm2, libdrm]
9
10if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
11 shared_module(mod_full_name, engine_src,
12 include_directories : config_dir + [engine_include_dir],
13 dependencies : [eina, evas_pre] + engine_deps,
14 install : true,
15 install_dir : mod_install_dir,
16 name_suffix : sys_mod_extension
17 )
18 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
19endif
diff --git a/src/modules/evas/engines/fb/meson.build b/src/modules/evas/engines/fb/meson.build
new file mode 100644
index 0000000000..2900f4afc6
--- /dev/null
+++ b/src/modules/evas/engines/fb/meson.build
@@ -0,0 +1,21 @@
1engine_src = files([
2 'Evas_Engine_FB.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c',
6 'evas_fb.h',
7 'evas_fb_main.c',
8])
9
10engine_deps = [ecore_fb]
11
12if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
13 shared_module(mod_full_name, engine_src,
14 include_directories : config_dir + [engine_include_dir],
15 dependencies : [eina, evas_pre] + engine_deps,
16 install : true,
17 install_dir : mod_install_dir,
18 name_suffix : sys_mod_extension
19 )
20 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
21endif
diff --git a/src/modules/evas/engines/gl_cocoa/meson.build b/src/modules/evas/engines/gl_cocoa/meson.build
new file mode 100644
index 0000000000..9900862904
--- /dev/null
+++ b/src/modules/evas/engines/gl_cocoa/meson.build
@@ -0,0 +1,19 @@
1engine_src = files([
2 'Evas_Engine_GL_Cocoa.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.m',
6])
7
8engine_deps = [ecore_cocoa, gl_deps]
9
10if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
11 shared_module(mod_full_name, engine_src,
12 include_directories : config_dir + [engine_include_dir],
13 dependencies : [eina, evas_pre] + engine_deps,
14 install : true,
15 install_dir : mod_install_dir,
16 name_suffix : sys_mod_extension
17 )
18 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
19endif
diff --git a/src/modules/evas/engines/gl_common/meson.build b/src/modules/evas/engines/gl_common/meson.build
new file mode 100644
index 0000000000..0242012759
--- /dev/null
+++ b/src/modules/evas/engines/gl_common/meson.build
@@ -0,0 +1,45 @@
1engine_src = files([
2 'evas_gl_private.h',
3 'evas_gl_common.h',
4 'evas_gl_define.h',
5 'evas_gl_context.c',
6 'evas_gl_file_cache.c',
7 'evas_gl_shader.c',
8 'evas_gl_rectangle.c',
9 'evas_gl_texture.c',
10 'evas_gl_preload.c',
11 'evas_gl_image.c',
12 'evas_gl_font.c',
13 'evas_gl_polygon.c',
14 'evas_gl_line.c',
15 'evas_gl_core.c',
16 'evas_gl_api_ext.h',
17 'evas_gl_api_ext_def.h',
18 'evas_gl_core.h',
19 'evas_gl_core_private.h',
20 'evas_gl_api.c',
21 'evas_gl_api_def.h',
22 'evas_gl_api_gles1.c',
23 'evas_gl_api_gles3_def.h',
24 'evas_gl_api_ext.c',
25 'evas_gl_3d_common.h',
26 'evas_gl_3d_private.h',
27 'evas_gl_3d.c',
28 'evas_gl_3d_renderer.c',
29 'evas_gl_3d_shader.c',
30 #join_paths('shader_3d', 'evas_gl_3d_shaders.x'),
31 #join_paths('shader','evas_gl_shaders.x'),
32])
33
34engine_deps = [gl_deps]
35
36if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
37 shared_module(mod_full_name, engine_src,
38 include_directories : config_dir + [engine_include_dir],
39 dependencies : [eina, evas_pre] + engine_deps,
40 install : true,
41 install_dir : mod_install_dir,
42 name_suffix : sys_mod_extension
43 )
44 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
45endif
diff --git a/src/modules/evas/engines/gl_drm/meson.build b/src/modules/evas/engines/gl_drm/meson.build
new file mode 100644
index 0000000000..0821638149
--- /dev/null
+++ b/src/modules/evas/engines/gl_drm/meson.build
@@ -0,0 +1,19 @@
1engine_src = files([
2 'Evas_Engine_GL_Drm.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c',
6])
7
8engine_deps = [ecore_drm2, libdrm, gl_deps]
9
10if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
11 shared_module(mod_full_name, engine_src,
12 include_directories : config_dir + [engine_include_dir],
13 dependencies : [eina, evas_pre] + engine_deps,
14 install : true,
15 install_dir : mod_install_dir,
16 name_suffix : sys_mod_extension
17 )
18 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
19endif
diff --git a/src/modules/evas/engines/gl_generic/meson.build b/src/modules/evas/engines/gl_generic/meson.build
new file mode 100644
index 0000000000..bfa7e82a6d
--- /dev/null
+++ b/src/modules/evas/engines/gl_generic/meson.build
@@ -0,0 +1,44 @@
1engine_src = files([
2 'evas_engine.c',
3 'Evas_Engine_GL_Generic.h',
4 'Evas_Engine_GL_Shared.h',
5 'evas_ector_gl.h',
6 'evas_ector_gl_buffer.c',
7 'evas_ector_gl_image_buffer.c',
8 join_paths('filters','gl_engine_filter.h'),
9 join_paths('filters','gl_filter_blend.c'),
10 join_paths('filters','gl_filter_blur.c'),
11 join_paths('filters','gl_filter_curve.c'),
12 join_paths('filters','gl_filter_displace.c'),
13 join_paths('filters','gl_filter_fill.c'),
14 join_paths('filters','gl_filter_mask.c'),
15])
16
17
18pub_eo_files = [
19 'evas_ector_gl_buffer.eo',
20 'evas_ector_gl_image_buffer.eo'
21]
22
23foreach eo_file : pub_eo_files
24 engine_src += custom_target('eolian_gen_' + eo_file,
25 input : eo_file,
26 output : [eo_file + '.h'],
27 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
28 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
29 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
30 '-gch', '@INPUT@'])
31endforeach
32
33engine_deps = [gl_common]
34
35if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
36 shared_module(mod_full_name, engine_src,
37 include_directories : config_dir + [engine_include_dir],
38 dependencies : [eina, evas_pre] + engine_deps,
39 install : true,
40 install_dir : mod_install_dir,
41 name_suffix : sys_mod_extension
42 )
43 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
44endif
diff --git a/src/modules/evas/engines/gl_x11/meson.build b/src/modules/evas/engines/gl_x11/meson.build
new file mode 100644
index 0000000000..910c72a917
--- /dev/null
+++ b/src/modules/evas/engines/gl_x11/meson.build
@@ -0,0 +1,19 @@
1engine_src = files([
2 'Evas_Engine_GL_X11.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_x_main.c',
6])
7
8engine_deps = [ecore_x_deps, gl_deps]
9
10if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
11 shared_module(mod_full_name, engine_src,
12 include_directories : config_dir + [engine_include_dir],
13 dependencies : [eina, evas_pre] + engine_deps,
14 install : true,
15 install_dir : mod_install_dir,
16 name_suffix : sys_mod_extension
17 )
18 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
19endif
diff --git a/src/modules/evas/engines/software_ddraw/meson.build b/src/modules/evas/engines/software_ddraw/meson.build
new file mode 100644
index 0000000000..9d3724f5b1
--- /dev/null
+++ b/src/modules/evas/engines/software_ddraw/meson.build
@@ -0,0 +1,21 @@
1engine_src = files([
2 'Evas_Engine_Software_DDraw.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c',
6 'evas_ddraw_buffer.c',
7 'evas_ddraw_main.c',
8])
9
10engine_deps = []
11
12if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
13 shared_module(mod_full_name, engine_src,
14 include_directories : config_dir + [engine_include_dir],
15 dependencies : [eina, evas_pre] + engine_deps,
16 install : true,
17 install_dir : mod_install_dir,
18 name_suffix : sys_mod_extension
19 )
20 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
21endif
diff --git a/src/modules/evas/engines/software_gdi/meson.build b/src/modules/evas/engines/software_gdi/meson.build
new file mode 100644
index 0000000000..9347ecd4d8
--- /dev/null
+++ b/src/modules/evas/engines/software_gdi/meson.build
@@ -0,0 +1,21 @@
1engine_src = files([
2 'Evas_Engine_Software_Gdi.h',
3 'evas_engine.c',
4 'evas_engine.h',
5 'evas_outbuf.c',
6 'evas_gdi_buffer.c',
7 'evas_gdi_main.c',
8])
9
10engine_deps = []
11
12if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
13 shared_module(mod_full_name, engine_src,
14 include_directories : config_dir + [engine_include_dir],
15 dependencies : [eina, evas_pre] + engine_deps,
16 install : true,
17 install_dir : mod_install_dir,
18 name_suffix : sys_mod_extension
19 )
20 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
21endif
diff --git a/src/modules/evas/engines/software_generic/filters/meson.build b/src/modules/evas/engines/software_generic/filters/meson.build
new file mode 100644
index 0000000000..6ccd5f59a1
--- /dev/null
+++ b/src/modules/evas/engines/software_generic/filters/meson.build
@@ -0,0 +1,13 @@
1engine_include_dir += include_directories('.')
2
3engine_src += files([
4 'evas_engine_filter.h',
5 'evas_filter_blend.c',
6 'evas_filter_blur.c',
7 'evas_filter_bump.c',
8 'evas_filter_curve.c',
9 'evas_filter_displace.c',
10 'evas_filter_fill.c',
11 'evas_filter_mask.c',
12 'evas_filter_transform.c',
13]) \ No newline at end of file
diff --git a/src/modules/evas/engines/software_generic/meson.build b/src/modules/evas/engines/software_generic/meson.build
new file mode 100644
index 0000000000..7571ca3bc1
--- /dev/null
+++ b/src/modules/evas/engines/software_generic/meson.build
@@ -0,0 +1,40 @@
1engine_src = files([
2 'evas_engine.c',
3 'Evas_Engine_Software_Generic.h',
4 'Evas_Engine_Software_Shared.h',
5 'evas_native_tbm.c',
6 'evas_native_dmabuf.c',
7 'evas_ector_software_buffer.c',
8 'evas_native_common.h',
9 'evas_ector_software.h',
10])
11
12
13pub_eo_files = [
14 'evas_ector_software_buffer.eo'
15]
16
17subdir('filters')
18
19foreach eo_file : pub_eo_files
20 engine_src += custom_target('eolian_gen_' + eo_file,
21 input : eo_file,
22 output : [eo_file + '.h'],
23 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
24 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
25 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
26 '-gch', '@INPUT@'])
27endforeach
28
29engine_deps = [draw, dl]
30
31if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
32 shared_module(mod_full_name, engine_src,
33 include_directories : config_dir + [engine_include_dir],
34 dependencies : [eina, evas_pre] + engine_deps,
35 install : true,
36 install_dir : mod_install_dir,
37 name_suffix : sys_mod_extension
38 )
39 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
40endif
diff --git a/src/modules/evas/engines/software_x11/meson.build b/src/modules/evas/engines/software_x11/meson.build
new file mode 100644
index 0000000000..950c93ed04
--- /dev/null
+++ b/src/modules/evas/engines/software_x11/meson.build
@@ -0,0 +1,40 @@
1engine_src = files([
2 'evas_engine.c',
3 'evas_engine.h',
4 'evas_x_egl.c',
5 'evas_x_egl.h',
6 'Evas_Engine_Software_X11.h',
7 'evas_xlib_swapbuf.c',
8 'evas_xlib_outbuf.c',
9 'evas_xlib_buffer.c',
10 'evas_xlib_color.c',
11 'evas_xlib_main.c',
12 'evas_xlib_swapper.c',
13 'evas_xlib_image.c',
14 'evas_xlib_dri_image.c',
15 'evas_xlib_outbuf.h',
16 'evas_xlib_swapbuf.h',
17 'evas_xlib_buffer.h',
18 'evas_xlib_color.h',
19 'evas_xlib_swapper.h',
20 'evas_xlib_image.h',
21 'evas_xlib_dri_image.h'
22])
23
24#xcb is DEAD ... we only use xlib
25config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
26
27#ecore_x_deps carries all the extensions etc. so we dont have to search them twice
28#it looks weird but is right, gl_deps is needed for evas_x_egl.c
29engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps]
30
31if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
32 shared_module(mod_full_name, engine_src,
33 include_directories : config_dir + [engine_include_dir],
34 dependencies : [eina, evas_pre] + engine_deps,
35 install : true,
36 install_dir : mod_install_dir,
37 name_suffix : sys_mod_extension
38 )
39 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
40endif
diff --git a/src/modules/evas/engines/wayland_egl/meson.build b/src/modules/evas/engines/wayland_egl/meson.build
new file mode 100644
index 0000000000..7dc76cac37
--- /dev/null
+++ b/src/modules/evas/engines/wayland_egl/meson.build
@@ -0,0 +1,21 @@
1engine_src = files([
2 'evas_engine.c',
3 'evas_engine.h',
4 'evas_wl_main.c'
5])
6
7engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps]
8
9engine_include_dir = include_directories(join_paths('..','wayland_common'))
10
11
12if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
13 shared_module(mod_full_name, engine_src,
14 include_directories : config_dir + [engine_include_dir],
15 dependencies : [eina, evas_pre] + engine_deps,
16 install : true,
17 install_dir : mod_install_dir,
18 name_suffix : sys_mod_extension
19 )
20 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
21endif
diff --git a/src/modules/evas/engines/wayland_shm/meson.build b/src/modules/evas/engines/wayland_shm/meson.build
new file mode 100644
index 0000000000..5c1fe875a4
--- /dev/null
+++ b/src/modules/evas/engines/wayland_shm/meson.build
@@ -0,0 +1,20 @@
1engine_src = files([
2 'evas_engine.c',
3 'evas_engine.h',
4 'evas_outbuf.c'
5])
6
7engine_deps = [ecore_wl2]
8
9engine_include_dir = include_directories(join_paths('..','wayland_common'))
10
11if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
12 shared_module(mod_full_name, engine_src,
13 include_directories : config_dir + [engine_include_dir],
14 dependencies : [eina, evas_pre] + engine_deps,
15 install : true,
16 install_dir : mod_install_dir,
17 name_suffix : sys_mod_extension
18 )
19 module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
20endif
diff --git a/src/modules/evas/image_loaders/meson.build b/src/modules/evas/image_loaders/meson.build
new file mode 100644
index 0000000000..df0d8968ac
--- /dev/null
+++ b/src/modules/evas/image_loaders/meson.build
@@ -0,0 +1,42 @@
1evas_image_loaders_file = [
2 ['bmp', []],
3 ['eet', [eet]],
4 ['generic', [rt]],
5 ['gif', [giflib]],
6 ['ico', []],
7 ['jpeg', [jpeg]],
8 ['pmaps', []],
9 ['png', [png]],
10 ['psd', []],
11 ['tga', []],
12 ['tgv', [rg_etc, lz4]],
13 ['tiff', [tiff]],
14 ['wbmp', []],
15 ['webp', [webp]],
16 ['xpm', []],
17]
18
19foreach loader_inst : evas_image_loaders_file
20 loader = loader_inst[0]
21 loader_deps = loader_inst[1]
22
23
24 if get_option('evas-loaders-disabler').contains(loader) == false
25 file = join_paths(loader, 'evas_image_load_'+loader+'.c')
26
27 tmp = static_library('image_loader_'+loader, file,
28 include_directories : config_dir,
29 dependencies : [evas_pre] + loader_deps
30 )
31
32 evas_static_list += [declare_dependency(
33 sources: file,
34 dependencies: loader_deps,
35 )]
36
37 config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
38 config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
39 else
40 message('Image loader '+loader+' disabled')
41 endif
42endforeach \ No newline at end of file
diff --git a/src/modules/evas/image_savers/meson.build b/src/modules/evas/image_savers/meson.build
new file mode 100644
index 0000000000..81bdbd9f55
--- /dev/null
+++ b/src/modules/evas/image_savers/meson.build
@@ -0,0 +1,32 @@
1
2evas_image_savers_file = [
3['eet', [eet]],
4['jpeg', [jpeg]],
5['png', [png]],
6['tgv', [rg_etc, lz4]],
7['tiff', [tiff]],
8['webp', []]
9]
10
11foreach loader_inst : evas_image_savers_file
12 loader = loader_inst[0]
13 loader_deps = loader_inst[1]
14
15 if get_option('evas-loaders-disabler').contains(loader) == false
16 file = join_paths(loader, 'evas_image_save_'+loader+'.c')
17
18 tmp = static_library('image_saver_'+loader, file,
19 include_directories : config_dir,
20 dependencies : [evas_pre] + loader_deps
21 )
22
23 evas_static_list += [declare_dependency(
24 sources: file,
25 dependencies: loader_deps,
26 )]
27
28 config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
29 else
30 message('Image saver '+loader+' disabled')
31 endif
32endforeach
diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build
new file mode 100644
index 0000000000..e97ff1b2a0
--- /dev/null
+++ b/src/modules/evas/meson.build
@@ -0,0 +1,97 @@
1engines = [
2 ['buffer', []],
3 ['software_generic', []],
4 ['fb', ['fb']],
5 ['drm', ['drm']],
6 ['software_x11', ['x11']],
7 ['wayland_shm', ['wl']],
8]
9
10if get_option('opengl') != 'none'
11 engines += [
12 ['gl_common', []],
13 ['gl_generic', []],
14 ['gl_x11', ['x11']],
15 ['gl_drm', ['drm']],
16 ['gl_cocoa', ['cocoa']],
17 ]
18endif
19
20if get_option('opengl') == 'es-egl'
21 engines += [['wayland_egl', ['wl']]]
22endif
23
24#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later
25evas_force_static = ['software_generic', 'gl_common']
26evas_static_list = []
27
28#fixed dependencies by efl
29png = dependency('libpng')
30tiff = dependency('libtiff-4')
31giflib = cc.find_library('gif')
32
33webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false)
34
35subdir('image_loaders')
36subdir('image_savers')
37subdir('model_savers')
38subdir('model_loaders')
39subdir('vg_savers')
40subdir('vg_loaders')
41
42foreach engine_conf : engines
43 engine = engine_conf[0]
44 build = true
45 if engine_conf[1].length() > 0
46 build = get_option(engine_conf[1][0])
47 endif
48 if build
49 engine_include_dir = []
50 engine_src = []
51 engine_deps = []
52 engine_dep = declare_dependency(
53 include_directories: include_directories(join_paths('engines', engine)),
54 )
55
56 var_name = 'engine_'+engine
57 set_variable(var_name, engine_dep)
58
59 mod_full_name = engine
60 mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name)
61
62 subdir(join_paths('engines', engine))
63
64 if get_option('evas-modules') == 'static' or evas_force_static.contains(engine)
65 tmp = static_library(mod_full_name, engine_src,
66 include_directories : config_dir + [engine_include_dir],
67 dependencies : [eina, evas_pre] + engine_deps,
68 )
69
70 if engine == 'gl_common'
71 #gl_common will only be used by gl_generic, NOT by libevas.so, so we work arround the static list
72 gl_common = declare_dependency(
73 include_directories : include_directories(join_paths('engines', 'gl_common')),
74 link_with: tmp,
75 )
76 else
77 evas_static_list += declare_dependency(
78 include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
79 link_with: tmp,
80 dependencies : [eina, evas_pre] + engine_deps,
81 sources : engine_src
82 )
83 if engine == 'gl_generic'
84 #special case, see evas_module.c
85 config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
86 else
87 config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
88 endif
89 endif
90 else
91 #nothing here shared building is handled directly on the engine configuration side
92 #reason for this is that the .so files have to be placed in the correct directory in order
93 # to make them discoverable by evas module code
94 endif
95 config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
96 endif
97endforeach
diff --git a/src/modules/evas/model_loaders/meson.build b/src/modules/evas/model_loaders/meson.build
new file mode 100644
index 0000000000..7aae3611cc
--- /dev/null
+++ b/src/modules/evas/model_loaders/meson.build
@@ -0,0 +1,16 @@
1evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply']
2
3foreach loader : evas_model_loaders_file
4 file = join_paths(loader, 'evas_model_load_'+loader+'.c')
5
6 tmp = static_library('model_loader_'+loader, file,
7 include_directories : config_dir,
8 dependencies : [evas_pre]
9 )
10
11 evas_static_list += [declare_dependency(
12 include_directories: include_directories('.'),
13 sources: file,
14 dependencies: evas_pre,
15 )]
16endforeach
diff --git a/src/modules/evas/model_savers/meson.build b/src/modules/evas/model_savers/meson.build
new file mode 100644
index 0000000000..bb0dca2e3a
--- /dev/null
+++ b/src/modules/evas/model_savers/meson.build
@@ -0,0 +1,16 @@
1evas_model_savers_file = ['eet', 'obj', 'ply']
2
3foreach loader : evas_model_savers_file
4 file = join_paths(loader, 'evas_model_save_'+loader+'.c')
5
6 tmp = static_library('model_saver_'+loader, file,
7 include_directories : config_dir,
8 dependencies : evas_pre
9 )
10
11 evas_static_list += [declare_dependency(
12 include_directories: include_directories('.'),
13 sources: file,
14 dependencies: evas_pre,
15 )]
16endforeach
diff --git a/src/modules/evas/vg_loaders/meson.build b/src/modules/evas/vg_loaders/meson.build
new file mode 100644
index 0000000000..584501a825
--- /dev/null
+++ b/src/modules/evas/vg_loaders/meson.build
@@ -0,0 +1,13 @@
1evas_vg_loaders_file = ['eet', 'svg']
2
3foreach loader : evas_vg_loaders_file
4 file = join_paths(loader, 'evas_vg_load_'+loader+'.c')
5 static_library('vg_loader_'+loader, file,
6 include_directories : config_dir,
7 dependencies : evas_pre
8 )
9 evas_static_list += [declare_dependency(
10 sources: file,
11 )]
12 config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1')
13endforeach
diff --git a/src/modules/evas/vg_savers/meson.build b/src/modules/evas/vg_savers/meson.build
new file mode 100644
index 0000000000..414a695c27
--- /dev/null
+++ b/src/modules/evas/vg_savers/meson.build
@@ -0,0 +1,14 @@
1evas_vg_savers_file = ['eet', 'svg']
2
3foreach loader : evas_vg_savers_file
4 file = join_paths(loader, 'evas_vg_save_'+loader+'.c')
5 tmp = static_library('vg_saver_'+loader, file,
6 include_directories : config_dir,
7 dependencies: [eo, ector, emile, freetype, eet, evas_pre],
8 )
9 evas_static_list += [declare_dependency(
10 sources: file,
11 dependencies: [eo, ector, emile, freetype, eet, evas_pre],
12 )]
13 config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1')
14endforeach \ No newline at end of file