summaryrefslogtreecommitdiff
path: root/src/modules
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules')
-rw-r--r--src/modules/ecore/meson.build10
-rw-r--r--src/modules/ecore/system/systemd/meson.build9
-rw-r--r--src/modules/ecore/system/tizen/meson.build7
-rw-r--r--src/modules/ecore/system/upower/meson.build7
-rw-r--r--src/modules/ecore_buffer/meson.build25
-rw-r--r--src/modules/ecore_buffer/shm/meson.build5
-rw-r--r--src/modules/ecore_buffer/x11_dri2/meson.build5
-rw-r--r--src/modules/ecore_buffer/x11_dri3/meson.build7
-rw-r--r--src/modules/ecore_evas/engines/cocoa/meson.build16
-rw-r--r--src/modules/ecore_evas/engines/drm/meson.build21
-rw-r--r--src/modules/ecore_evas/engines/extn/meson.build10
-rw-r--r--src/modules/ecore_evas/engines/fb/meson.build11
-rw-r--r--src/modules/ecore_evas/engines/sdl/meson.build10
-rw-r--r--src/modules/ecore_evas/engines/wayland/meson.build26
-rw-r--r--src/modules/ecore_evas/engines/win32/meson.build9
-rw-r--r--src/modules/ecore_evas/engines/x/meson.build21
-rw-r--r--src/modules/ecore_evas/meson.build40
-rw-r--r--src/modules/ecore_evas/vnc_server/meson.build34
-rw-r--r--src/modules/ecore_imf/ibus/meson.build14
-rw-r--r--src/modules/ecore_imf/meson.build24
-rw-r--r--src/modules/ecore_imf/scim/meson.build14
-rw-r--r--src/modules/ecore_imf/wayland/meson.build13
-rw-r--r--src/modules/ecore_imf/xim/meson.build12
-rw-r--r--src/modules/ecore_wl2/engines/dmabuf/meson.build6
-rw-r--r--src/modules/ecore_wl2/meson.build9
-rw-r--r--src/modules/eeze/meson.build10
-rw-r--r--src/modules/eeze/sensor/fake/meson.build8
-rw-r--r--src/modules/eeze/sensor/tizen/meson.build8
-rw-r--r--src/modules/eeze/sensor/udev/meson.build8
-rw-r--r--src/modules/eina/meson.build9
-rw-r--r--src/modules/eina/mp/chained_pool/meson.build3
-rw-r--r--src/modules/eina/mp/one_big/meson.build3
-rw-r--r--src/modules/eina/mp/pass_through/meson.build3
-rw-r--r--src/modules/elementary/access_output/meson.build10
-rw-r--r--src/modules/elementary/clock_input_ctxpopup/meson.build10
-rw-r--r--src/modules/elementary/meson.build14
-rw-r--r--src/modules/elementary/prefs/meson.build24
-rw-r--r--src/modules/elementary/test_entry/meson.build10
-rw-r--r--src/modules/elementary/test_map/meson.build10
-rw-r--r--src/modules/elementary/web/meson.build1
-rw-r--r--src/modules/elementary/web/none/meson.build30
-rw-r--r--src/modules/emotion/generic/meson.build22
-rw-r--r--src/modules/emotion/gstreamer/meson.build18
-rw-r--r--src/modules/emotion/gstreamer1/meson.build25
-rw-r--r--src/modules/emotion/libvlc/meson.build14
-rw-r--r--src/modules/emotion/meson.build19
-rw-r--r--src/modules/emotion/xine/meson.build16
-rw-r--r--src/modules/ethumb/emotion/meson.build32
-rw-r--r--src/modules/ethumb/meson.build13
-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
71 files changed, 1302 insertions, 0 deletions
diff --git a/src/modules/ecore/meson.build b/src/modules/ecore/meson.build
new file mode 100644
index 0000000000..08c868a665
--- /dev/null
+++ b/src/modules/ecore/meson.build
@@ -0,0 +1,10 @@
+system_modules = [
+ 'systemd',
+ 'upower',
+ #'tizen',
+]
+
+foreach system_module : system_modules
+ mod_install_dir = join_paths(dir_lib, 'ecore', 'system', system_module, version_name)
+ subdir(join_paths('system', system_module))
+endforeach
diff --git a/src/modules/ecore/system/systemd/meson.build b/src/modules/ecore/system/systemd/meson.build
new file mode 100644
index 0000000000..7649611255
--- /dev/null
+++ b/src/modules/ecore/system/systemd/meson.build
@@ -0,0 +1,9 @@
+if get_option('systemd')
+ ecore_systemd_mod = shared_module('systemd',
+ 'ecore_system_systemd.c',
+ dependencies: [ecore, eldbus],
+ install: true,
+ install_dir: mod_install_dir,
+ )
+ module_files += join_paths(mod_install_dir, 'libsystemd.' + sys_mod_extension)
+endif
diff --git a/src/modules/ecore/system/tizen/meson.build b/src/modules/ecore/system/tizen/meson.build
new file mode 100644
index 0000000000..78c7640e4b
--- /dev/null
+++ b/src/modules/ecore/system/tizen/meson.build
@@ -0,0 +1,7 @@
+ecore_systemd_mod = shared_module('tizen',
+ 'ecore_system_tizen.c',
+ dependencies: [ecore, eldbus],
+ install: true,
+ install_dir: mod_install_dir,
+)
+module_files += join_paths(mod_install_dir, 'libtizen.' + sys_mod_extension)
diff --git a/src/modules/ecore/system/upower/meson.build b/src/modules/ecore/system/upower/meson.build
new file mode 100644
index 0000000000..ea1a20bec1
--- /dev/null
+++ b/src/modules/ecore/system/upower/meson.build
@@ -0,0 +1,7 @@
+ecore_systemd_mod = shared_module('upower',
+ 'ecore_system_upower.c',
+ dependencies: [ecore, eldbus],
+ install: true,
+ install_dir: mod_install_dir,
+)
+module_files += join_paths(mod_install_dir, 'libupower.' + sys_mod_extension)
diff --git a/src/modules/ecore_buffer/meson.build b/src/modules/ecore_buffer/meson.build
new file mode 100644
index 0000000000..00f393fdb4
--- /dev/null
+++ b/src/modules/ecore_buffer/meson.build
@@ -0,0 +1,25 @@
+
+
+subdir('shm')
+
+#common dri packages
+libtbm = dependency('libtbm', required: false)
+libdrm = dependency('libdrm', required: false)
+
+if libtbm.found() == true and libdrm.found() == true
+ libdri2 = dependency('libdri2', required: false)
+ if libdri2.found()
+ subdir('x11_dri2')
+ endif
+endif
+
+if libtbm.found() == true and libdrm.found() == true
+ xshmfence = dependency('xshmfence', required: false)
+ xcb = dependency('xcb', required: false)
+ x11_xcb = dependency('x11_xcb', required: false)
+ xcb_sync = dependency('xcb_sync', required: false)
+ xcb_dri3 = dependency('xkb_dri3', required: false)
+ if xshmfence.found() == true and xcb.found() == true and x11_xcb.found() and xcb_sync.found() and xkb_dri3.found()
+ subdir('x11_dri3')
+ endif
+endif
diff --git a/src/modules/ecore_buffer/shm/meson.build b/src/modules/ecore_buffer/shm/meson.build
new file mode 100644
index 0000000000..30da825227
--- /dev/null
+++ b/src/modules/ecore_buffer/shm/meson.build
@@ -0,0 +1,5 @@
+ecore_buffer_shm_mod = shared_module('ecore_buffer_shm_mod',
+ 'ecore_buffer_shm.c',
+ dependencies: [ecore, ecore_buffer],
+ install: true
+) \ No newline at end of file
diff --git a/src/modules/ecore_buffer/x11_dri2/meson.build b/src/modules/ecore_buffer/x11_dri2/meson.build
new file mode 100644
index 0000000000..37ed534bd3
--- /dev/null
+++ b/src/modules/ecore_buffer/x11_dri2/meson.build
@@ -0,0 +1,5 @@
+ecore_buffer_x11_dri2_mod = shared_module('ecore_buffer_x11_dri2_mod',
+ 'ecore_buffer_x11_dri2.c',
+ dependencies: [ecore, ecore_buffer, ecore_x],
+ install: true
+) \ No newline at end of file
diff --git a/src/modules/ecore_buffer/x11_dri3/meson.build b/src/modules/ecore_buffer/x11_dri3/meson.build
new file mode 100644
index 0000000000..5126fff6ca
--- /dev/null
+++ b/src/modules/ecore_buffer/x11_dri3/meson.build
@@ -0,0 +1,7 @@
+if dependency('libtbm', required: false).found() == true and dependency('libdrm', required: false).found()
+ ecore_buffer_x11_dri3_mod = shared_module('ecore_buffer_x11_dri3_mod',
+ 'ecore_buffer_x11_dri3.c',
+ dependencies: [ecore, ecore_buffer, ecore_x],
+ install: true
+ )
+endif \ No newline at end of file
diff --git a/src/modules/ecore_evas/engines/cocoa/meson.build b/src/modules/ecore_evas/engines/cocoa/meson.build
new file mode 100644
index 0000000000..63a904e36c
--- /dev/null
+++ b/src/modules/ecore_evas/engines/cocoa/meson.build
@@ -0,0 +1,16 @@
+if get_option('opengl') != 'none'
+ config_h.set('BUILD_ECORE_EVAS_OPENGL_COCOA', '1')
+endif
+
+engine_src = files(['ecore_evas_cocoa.c'])
+engine_deps = [ecore_cocoa, ecore_input, ecore_input_evas, ecore]
+
+engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'gl_cocoa'))
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/drm/meson.build b/src/modules/ecore_evas/engines/drm/meson.build
new file mode 100644
index 0000000000..584cc56159
--- /dev/null
+++ b/src/modules/ecore_evas/engines/drm/meson.build
@@ -0,0 +1,21 @@
+if get_option('opengl') != 'none'
+ config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1')
+endif
+
+engine_src = files(['ecore_evas_drm.c'])
+engine_deps = [ecore_drm2, ecore_input, eeze, elput, libdrm, engine_drm]
+
+if get_option('opengl') != 'none'
+ config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1')
+ engine_deps += [engine_gl_drm]
+endif
+
+engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'drm'))
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/extn/meson.build b/src/modules/ecore_evas/engines/extn/meson.build
new file mode 100644
index 0000000000..1afabb3916
--- /dev/null
+++ b/src/modules/ecore_evas/engines/extn/meson.build
@@ -0,0 +1,10 @@
+engine_src = files(['ecore_evas_extn.c', 'ecore_evas_extn_buf.c', 'ecore_evas_extn_engine.h'])
+engine_deps = [ecore_input, ecore_ipc]
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/fb/meson.build b/src/modules/ecore_evas/engines/fb/meson.build
new file mode 100644
index 0000000000..7da2c22612
--- /dev/null
+++ b/src/modules/ecore_evas/engines/fb/meson.build
@@ -0,0 +1,11 @@
+engine_src = files(['ecore_evas_fb.c'])
+engine_deps = [ecore_fb, ecore_input]
+engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'fb'))
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/sdl/meson.build b/src/modules/ecore_evas/engines/sdl/meson.build
new file mode 100644
index 0000000000..25dc49ef49
--- /dev/null
+++ b/src/modules/ecore_evas/engines/sdl/meson.build
@@ -0,0 +1,10 @@
+engine_src = files(['ecore_evas_sdl.c'])
+engine_deps = [ecore_sdl, ecore_input, ecore]
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/wayland/meson.build b/src/modules/ecore_evas/engines/wayland/meson.build
new file mode 100644
index 0000000000..fbc27a396b
--- /dev/null
+++ b/src/modules/ecore_evas/engines/wayland/meson.build
@@ -0,0 +1,26 @@
+if get_option('opengl') == 'es-egl'
+ config_h.set('BUILD_ECORE_EVAS_WAYLAND_EGL', '1')
+endif
+
+config_h.set('BUILD_ECORE_EVAS_WAYLAND_SHM', '1')
+
+engine_src = files([
+ 'ecore_evas_wayland_egl.c',
+ 'ecore_evas_wayland_common.c',
+ 'ecore_evas_wayland_shm.c',
+ 'ecore_evas_wayland_private.h'
+ ])
+
+engine_deps = [ecore_wl2, ecore_input]
+engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'wayland_common'))
+
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
+
+ecore_evas_wayland_engine_include_dir = include_directories('.')
diff --git a/src/modules/ecore_evas/engines/win32/meson.build b/src/modules/ecore_evas/engines/win32/meson.build
new file mode 100644
index 0000000000..6a6477dd8b
--- /dev/null
+++ b/src/modules/ecore_evas/engines/win32/meson.build
@@ -0,0 +1,9 @@
+engine_src = files(['ecore_evas_win32.c'])
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/engines/x/meson.build b/src/modules/ecore_evas/engines/x/meson.build
new file mode 100644
index 0000000000..582a782115
--- /dev/null
+++ b/src/modules/ecore_evas/engines/x/meson.build
@@ -0,0 +1,21 @@
+config_h.set('BUILD_ECORE_EVAS_X11', '1')
+config_h.set('BUILD_ECORE_EVAS_SOFTWARE_XLIB', '1')
+config_h.set('BUILD_ECORE_EVAS_SOFTWARE_X11', '1')
+
+engine_src = files(['ecore_evas_x.c'])
+engine_deps += [ecore_x, ecore_input]
+
+engine_deps += [engine_software_x11]
+
+if get_option('opengl') != 'none'
+ config_h.set('BUILD_ECORE_EVAS_OPENGL_X11', '1')
+ engine_deps += [engine_gl_x11]
+endif
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_evas/meson.build b/src/modules/ecore_evas/meson.build
new file mode 100644
index 0000000000..6ca8ca90a6
--- /dev/null
+++ b/src/modules/ecore_evas/meson.build
@@ -0,0 +1,40 @@
+engines = [
+['cocoa', ['cocoa']],
+['drm', ['drm']],
+['extn', []],
+['fb', ['fb']],
+['sdl', ['sdl']],
+['wayland', ['wl']],
+#['win32', ['ecore_win32']],
+['x', ['x11']],
+]
+
+
+foreach engine_conf : engines
+ engine = engine_conf[0]
+ build = true
+ engine_deps = []
+
+ if engine_conf[1].length() > 0
+ build = get_option(engine_conf[1])
+ endif
+
+ if build
+ engine_include_dir = []
+ engine_src = []
+
+ config_h.set('BUILD_ECORE_EVAS_'+engine.to_upper(), '1')
+
+ mod_full_name = engine
+ mod_install_dir = join_paths(dir_lib, package_name, 'engines', engine, version_name)
+
+ subdir(join_paths('engines', engine))
+
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+ endif
+endforeach
+
+
+if get_option('vnc-server')
+ subdir(join_paths('vnc_server'))
+endif
diff --git a/src/modules/ecore_evas/vnc_server/meson.build b/src/modules/ecore_evas/vnc_server/meson.build
new file mode 100644
index 0000000000..67f8f8e4a9
--- /dev/null
+++ b/src/modules/ecore_evas/vnc_server/meson.build
@@ -0,0 +1,34 @@
+config_h.set('BUILD_ECORE_EVAS_VNC_SERVER', '1')
+
+engine_src = files([
+ 'ecore_evas_vnc_server.c',
+ 'ecore_evas_vnc_server_fb_keymap.c',
+ 'ecore_evas_vnc_server_fb_keymap.h'
+])
+
+engine_deps = [ecore, ecore_input, ecore_evas, evas]
+engine_available = false
+
+if get_option('x11')
+ engine_deps += [ecore_x]
+ engine_available = true
+endif
+
+if get_option('fb')
+ engine_deps += [ecore_fb]
+ engine_available = true
+endif
+
+engine_include_dir += include_directories(join_paths('..', '..', '..', 'lib', 'ecore_fb'))
+
+if engine_available == false
+ error('at least x11 or fb needs to be build to build vnc')
+endif
+
+shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+)
diff --git a/src/modules/ecore_imf/ibus/meson.build b/src/modules/ecore_imf/ibus/meson.build
new file mode 100644
index 0000000000..dc37b3865e
--- /dev/null
+++ b/src/modules/ecore_imf/ibus/meson.build
@@ -0,0 +1,14 @@
+mod_src = files([
+ 'ibus_module.c',
+ 'ibus_imcontext.c',
+ 'ibus_imcontext.h'
+])
+
+mod_deps = [ecore, ecore_imf, ecore_x, dependency('ibus-1.0'), dependency('glib-2.0'), ecore_evas]
+
+shared_module(mod_name,
+ mod_src,
+ dependencies: mod_deps,
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/ecore_imf/meson.build b/src/modules/ecore_imf/meson.build
new file mode 100644
index 0000000000..b8a495a280
--- /dev/null
+++ b/src/modules/ecore_imf/meson.build
@@ -0,0 +1,24 @@
+mods = []
+
+if get_option('x11')
+ mods +=['ibus', 'xim', 'scim']
+endif
+
+if get_option('wl')
+ mods += ['wayland']
+endif
+
+
+loader_disabler = get_option('ecore-imf-loaders-disabler')
+
+foreach mod_name : mods
+ mod_src = []
+ mod_deps = []
+
+ if loader_disabler.contains(mod_name) == false
+ mod_install_dir = join_paths(dir_package_modules, mod_name, version_name)
+ subdir(mod_name)
+ module_files += join_paths(mod_install_dir, 'lib'+mod_name+'.'+sys_mod_extension)
+ config_h.set('BUILD_ECORE_IMF_'+mod_name.to_upper(), '1')
+ endif
+endforeach
diff --git a/src/modules/ecore_imf/scim/meson.build b/src/modules/ecore_imf/scim/meson.build
new file mode 100644
index 0000000000..c1bf1d23fd
--- /dev/null
+++ b/src/modules/ecore_imf/scim/meson.build
@@ -0,0 +1,14 @@
+mod_src = files([
+ 'scim_module.cpp',
+ 'scim_imcontext.cpp',
+ 'scim_imcontext.h'
+])
+mod_deps = [ecore, ecore_imf, ecore_x, dependency('scim-1.0'), dependency('glib-2.0')]
+
+
+shared_module(mod_name,
+ mod_src,
+ dependencies: mod_deps,
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/ecore_imf/wayland/meson.build b/src/modules/ecore_imf/wayland/meson.build
new file mode 100644
index 0000000000..f2c6e53dde
--- /dev/null
+++ b/src/modules/ecore_imf/wayland/meson.build
@@ -0,0 +1,13 @@
+mod_src = files([
+ 'wayland_module.c',
+ 'wayland_imcontext.c',
+ 'wayland_imcontext.h'
+])
+mod_deps = [ecore, ecore_imf, ecore_wl2, wayland_protocol, ecore_evas, ecore_input]
+
+shared_module(mod_name,
+ mod_src,
+ dependencies: mod_deps,
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/ecore_imf/xim/meson.build b/src/modules/ecore_imf/xim/meson.build
new file mode 100644
index 0000000000..5db9e187c5
--- /dev/null
+++ b/src/modules/ecore_imf/xim/meson.build
@@ -0,0 +1,12 @@
+mod_src = files([
+ 'ecore_imf_xim.c',
+])
+
+mod_deps = [ecore, ecore_imf, ecore_input, ecore_x, ecore_evas]
+
+shared_module(mod_name,
+ mod_src,
+ dependencies: mod_deps,
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/ecore_wl2/engines/dmabuf/meson.build b/src/modules/ecore_wl2/engines/dmabuf/meson.build
new file mode 100644
index 0000000000..c6b976daca
--- /dev/null
+++ b/src/modules/ecore_wl2/engines/dmabuf/meson.build
@@ -0,0 +1,6 @@
+shared_module('dmabuf',
+ 'ecore_wl2_surface_module_dmabuf.c',
+ dependencies: [ecore_wl2, wayland_protocol],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/ecore_wl2/meson.build b/src/modules/ecore_wl2/meson.build
new file mode 100644
index 0000000000..986391ab96
--- /dev/null
+++ b/src/modules/ecore_wl2/meson.build
@@ -0,0 +1,9 @@
+ecore_wl2_engines = [
+ 'dmabuf'
+]
+
+foreach engine : ecore_wl2_engines
+ mod_install_dir = join_paths(dir_lib, 'ecore_wl2', 'engines', engine, version_name)
+ subdir(join_paths('engines', engine))
+ module_files += join_paths(mod_install_dir, 'lib'+engine+'.'+sys_mod_extension)
+endforeach
diff --git a/src/modules/eeze/meson.build b/src/modules/eeze/meson.build
new file mode 100644
index 0000000000..e25ab50999
--- /dev/null
+++ b/src/modules/eeze/meson.build
@@ -0,0 +1,10 @@
+sensors = [
+['fake', [ecore]],
+#['tizen', []],
+['udev', [ecore]],
+]
+
+foreach sensor_conf : sensors
+ module_name = sensor_conf[0]
+ subdir(join_paths('sensor', module_name))
+endforeach
diff --git a/src/modules/eeze/sensor/fake/meson.build b/src/modules/eeze/sensor/fake/meson.build
new file mode 100644
index 0000000000..c87f2cb68d
--- /dev/null
+++ b/src/modules/eeze/sensor/fake/meson.build
@@ -0,0 +1,8 @@
+shared_module(module_name,
+ module_name+'.c',
+ dependencies: [eina, eeze, ecore],
+ install: true,
+ install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name),
+)
+
+module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension)
diff --git a/src/modules/eeze/sensor/tizen/meson.build b/src/modules/eeze/sensor/tizen/meson.build
new file mode 100644
index 0000000000..c87f2cb68d
--- /dev/null
+++ b/src/modules/eeze/sensor/tizen/meson.build
@@ -0,0 +1,8 @@
+shared_module(module_name,
+ module_name+'.c',
+ dependencies: [eina, eeze, ecore],
+ install: true,
+ install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name),
+)
+
+module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension)
diff --git a/src/modules/eeze/sensor/udev/meson.build b/src/modules/eeze/sensor/udev/meson.build
new file mode 100644
index 0000000000..c87f2cb68d
--- /dev/null
+++ b/src/modules/eeze/sensor/udev/meson.build
@@ -0,0 +1,8 @@
+shared_module(module_name,
+ module_name+'.c',
+ dependencies: [eina, eeze, ecore],
+ install: true,
+ install_dir : join_paths(dir_package_modules, 'sensor', module_name, version_name),
+)
+
+module_files += join_paths(dir_package_modules, 'sensor', module_name, version_name, 'lib' + module_name + '.' + sys_lib_extension)
diff --git a/src/modules/eina/meson.build b/src/modules/eina/meson.build
new file mode 100644
index 0000000000..17396a198c
--- /dev/null
+++ b/src/modules/eina/meson.build
@@ -0,0 +1,9 @@
+eina_mp_sources = []
+
+subdir(join_paths('mp', 'chained_pool'))
+subdir(join_paths('mp', 'one_big'))
+subdir(join_paths('mp', 'pass_through'))
+
+eina_mem_pools = declare_dependency(
+ sources: eina_mp_sources
+)
diff --git a/src/modules/eina/mp/chained_pool/meson.build b/src/modules/eina/mp/chained_pool/meson.build
new file mode 100644
index 0000000000..d4b222c6f2
--- /dev/null
+++ b/src/modules/eina/mp/chained_pool/meson.build
@@ -0,0 +1,3 @@
+config_h.set10('EINA_BUILD_CHAINED_POOL', true)
+config_h.set10('EINA_STATIC_BUILD_CHAINED_POOL', true)
+eina_mp_sources += files('eina_chained_mempool.c')
diff --git a/src/modules/eina/mp/one_big/meson.build b/src/modules/eina/mp/one_big/meson.build
new file mode 100644
index 0000000000..fabe80352c
--- /dev/null
+++ b/src/modules/eina/mp/one_big/meson.build
@@ -0,0 +1,3 @@
+config_h.set10('EINA_BUILD_ONE_BIG', true)
+config_h.set10('EINA_STATIC_BUILD_ONE_BIG', true)
+eina_mp_sources += files('eina_one_big.c')
diff --git a/src/modules/eina/mp/pass_through/meson.build b/src/modules/eina/mp/pass_through/meson.build
new file mode 100644
index 0000000000..a60ab6204b
--- /dev/null
+++ b/src/modules/eina/mp/pass_through/meson.build
@@ -0,0 +1,3 @@
+config_h.set10('EINA_BUILD_PASS_THROUGH', true)
+config_h.set10('EINA_STATIC_BUILD_PASS_THROUGH', true)
+eina_mp_sources += files('eina_pass_through.c')
diff --git a/src/modules/elementary/access_output/meson.build b/src/modules/elementary/access_output/meson.build
new file mode 100644
index 0000000000..178ab16618
--- /dev/null
+++ b/src/modules/elementary/access_output/meson.build
@@ -0,0 +1,10 @@
+src = files([
+ 'mod.c',
+])
+
+shared_module(mod,
+ src,
+ dependencies: [elementary],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/elementary/clock_input_ctxpopup/meson.build b/src/modules/elementary/clock_input_ctxpopup/meson.build
new file mode 100644
index 0000000000..04435773fe
--- /dev/null
+++ b/src/modules/elementary/clock_input_ctxpopup/meson.build
@@ -0,0 +1,10 @@
+src = files([
+ 'clock_input_ctxpopup.c',
+])
+
+shared_module(mod,
+ src,
+ dependencies: [elementary],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/elementary/meson.build b/src/modules/elementary/meson.build
new file mode 100644
index 0000000000..ed77fe240e
--- /dev/null
+++ b/src/modules/elementary/meson.build
@@ -0,0 +1,14 @@
+mods = [
+ 'access_output',
+ 'clock_input_ctxpopup',
+ 'prefs',
+ 'test_entry',
+ 'test_map',
+ join_paths('web', 'none')
+]
+
+foreach mod : mods
+ mod_install_dir = join_paths(dir_lib, 'elementary', 'modules', mod, version_name)
+ subdir(mod)
+ module_files += join_paths(mod_install_dir, 'lib'+mod+'.'+sys_mod_extension)
+endforeach
diff --git a/src/modules/elementary/prefs/meson.build b/src/modules/elementary/prefs/meson.build
new file mode 100644
index 0000000000..9ec2c9a475
--- /dev/null
+++ b/src/modules/elementary/prefs/meson.build
@@ -0,0 +1,24 @@
+src = files([
+ 'private.h',
+ 'prefs_iface.c',
+ 'elm_button.c',
+ 'elm_check.c',
+ 'elm_datetime.c',
+ 'elm_entry.c',
+ 'elm_label.c',
+ 'elm_separator.c',
+ 'elm_slider.c',
+ 'elm_spinner.c',
+ 'elm_swallow.c',
+ 'elm_vertical_box.c',
+ 'elm_horizontal_box.c',
+ 'elm_vertical_frame.c',
+ 'elm_horizontal_frame.c'
+])
+
+shared_module(mod,
+ src,
+ dependencies: [elementary],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/elementary/test_entry/meson.build b/src/modules/elementary/test_entry/meson.build
new file mode 100644
index 0000000000..178ab16618
--- /dev/null
+++ b/src/modules/elementary/test_entry/meson.build
@@ -0,0 +1,10 @@
+src = files([
+ 'mod.c',
+])
+
+shared_module(mod,
+ src,
+ dependencies: [elementary],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/elementary/test_map/meson.build b/src/modules/elementary/test_map/meson.build
new file mode 100644
index 0000000000..178ab16618
--- /dev/null
+++ b/src/modules/elementary/test_map/meson.build
@@ -0,0 +1,10 @@
+src = files([
+ 'mod.c',
+])
+
+shared_module(mod,
+ src,
+ dependencies: [elementary],
+ install: true,
+ install_dir : mod_install_dir
+)
diff --git a/src/modules/elementary/web/meson.build b/src/modules/elementary/web/meson.build
new file mode 100644
index 0000000000..13c563c96a
--- /dev/null
+++ b/src/modules/elementary/web/meson.build
@@ -0,0 +1 @@
+subdir('none')
diff --git a/src/modules/elementary/web/none/meson.build b/src/modules/elementary/web/none/meson.build
new file mode 100644
index 0000000000..ddbd9c2f2e
--- /dev/null
+++ b/src/modules/elementary/web/none/meson.build
@@ -0,0 +1,30 @@
+pub_eo_files = [
+ 'elm_web_none.eo'
+]
+
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+src = files([
+ 'elm_web_none.c'
+]) + pub_eo_file_target
+
+shared_module('none',
+ src,
+ dependencies: [elementary, elementary_deps],
+ install: true,
+ install_dir : mod_install_dir
+)
+
+mod = 'none'
diff --git a/src/modules/emotion/generic/meson.build b/src/modules/emotion/generic/meson.build
new file mode 100644
index 0000000000..d0da87861b
--- /dev/null
+++ b/src/modules/emotion/generic/meson.build
@@ -0,0 +1,22 @@
+generic_src = files([
+ 'emotion_generic.c',
+ 'emotion_generic.h',
+])
+
+emotion_generic = declare_dependency(
+ include_directories: include_directories('.'),
+ dependencies: emotion,
+)
+
+shared_module(emotion_loader,
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [eina, evas, emotion, generic_deps],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
+
+install_headers('Emotion_Generic_Plugin.h',
+ install_dir : dir_package_include,
+)
diff --git a/src/modules/emotion/gstreamer/meson.build b/src/modules/emotion/gstreamer/meson.build
new file mode 100644
index 0000000000..dccc9302bd
--- /dev/null
+++ b/src/modules/emotion/gstreamer/meson.build
@@ -0,0 +1,18 @@
+generic_src = files([
+ 'emotion_gstreamer.h',
+ 'emotion_gstreamer.c',
+ 'emotion_alloc.c',
+ 'emotion_convert.c',
+ 'emotion_sink.c'
+])
+
+generic_deps = [dependency('gstreamer-0.1')]
+
+shared_module(emotion_loader,
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [eina, evas, emotion, generic_deps],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
diff --git a/src/modules/emotion/gstreamer1/meson.build b/src/modules/emotion/gstreamer1/meson.build
new file mode 100644
index 0000000000..aae7f5f8ea
--- /dev/null
+++ b/src/modules/emotion/gstreamer1/meson.build
@@ -0,0 +1,25 @@
+generic_src = files([
+ 'emotion_gstreamer.h',
+ 'emotion_gstreamer.c',
+ 'emotion_alloc.c',
+ 'emotion_convert.c',
+ 'emotion_sink.c'
+])
+
+generic_deps = [
+ dependency('gstreamer-1.0'),
+ dependency('gstreamer-plugins-base-1.0'),
+ dependency('gstreamer-video-1.0'),
+ dependency('gstreamer-audio-1.0'),
+ dependency('gstreamer-tag-1.0'),
+ dependency('gstreamer-pbutils-1.0'),
+ ]
+
+shared_module(emotion_loader,
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [eina, evas, emotion, generic_deps],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
diff --git a/src/modules/emotion/libvlc/meson.build b/src/modules/emotion/libvlc/meson.build
new file mode 100644
index 0000000000..e5646a414d
--- /dev/null
+++ b/src/modules/emotion/libvlc/meson.build
@@ -0,0 +1,14 @@
+generic_src = files([
+ 'emotion_libvlc.c',
+])
+
+generic_deps = [dependency('libvlc', version: '>= 3.0')]
+
+shared_module(emotion_loader,
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [eina, evas, emotion, generic_deps],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
diff --git a/src/modules/emotion/meson.build b/src/modules/emotion/meson.build
new file mode 100644
index 0000000000..f16eaec262
--- /dev/null
+++ b/src/modules/emotion/meson.build
@@ -0,0 +1,19 @@
+emotion_loaders = [
+'generic',
+'gstreamer',
+'gstreamer1',
+'libvlc',
+'xine'
+]
+
+foreach emotion_loader : emotion_loaders
+ generic_src = []
+ generic_deps = []
+ mod_install_dir = join_paths(dir_lib, 'emotion', 'modules', emotion_loader, version_name)
+
+ if get_option('emotion-loaders-disabler').contains(emotion_loader) == false
+ subdir(emotion_loader)
+ module_files += join_paths(mod_install_dir, 'lib'+emotion_loader+'.'+sys_mod_extension)
+ config_h.set('EMOTION_BUILD_'+emotion_loader.to_upper(), 1)
+ endif
+endforeach
diff --git a/src/modules/emotion/xine/meson.build b/src/modules/emotion/xine/meson.build
new file mode 100644
index 0000000000..038d6d2eb1
--- /dev/null
+++ b/src/modules/emotion/xine/meson.build
@@ -0,0 +1,16 @@
+generic_src = files([
+ 'emotion_xine.h',
+ 'emotion_xine.c',
+ 'emotion_xine_vo_out.c',
+])
+
+generic_deps = dependency('libxine')
+
+shared_module(emotion_loader,
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [eina, evas, emotion, generic_deps],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
diff --git a/src/modules/ethumb/emotion/meson.build b/src/modules/ethumb/emotion/meson.build
new file mode 100644
index 0000000000..52f4b442a6
--- /dev/null
+++ b/src/modules/ethumb/emotion/meson.build
@@ -0,0 +1,32 @@
+themes = []
+
+edc_files = [
+ 'template.edc'
+]
+
+foreach edc_file : edc_files
+ themes += custom_target('edje_cc_' + edc_file,
+ input : edc_file,
+ output : '@BASENAME@.edj',
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
+ '-id', meson.current_source_dir(),
+ '-fd', meson.current_source_dir(),
+ '-sd', meson.current_source_dir(),
+ '-vd', meson.current_source_dir(),
+ '-dd', meson.current_source_dir(),
+ '-md', meson.current_source_dir(),
+ '-td', meson.current_source_dir(),
+ '@INPUT@', '@OUTPUT@'],
+ depends : edje_cc)
+endforeach
+
+generic_src = [files(['emotion.c']) + themes]
+
+shared_module(emotion_loader+'_el',
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [ethumb, edje, eina, eo, eet, ecore_file, ecore, evas, ecore_evas, emotion],
+ install: true,
+ install_dir : mod_install_dir,
+ c_args : package_c_args,
+)
diff --git a/src/modules/ethumb/meson.build b/src/modules/ethumb/meson.build
new file mode 100644
index 0000000000..015a182ee6
--- /dev/null
+++ b/src/modules/ethumb/meson.build
@@ -0,0 +1,13 @@
+emotion_loaders = [
+'emotion'
+]
+
+foreach emotion_loader : emotion_loaders
+ generic_src = []
+ generic_deps = []
+ mod_install_dir = join_paths(dir_lib, 'ethumb', 'modules', emotion_loader, version_name)
+
+ subdir(emotion_loader)
+
+ module_files += join_paths(mod_install_dir, 'lib'+emotion_loader+'_el.'+sys_mod_extension)
+endforeach
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 @@
+engine_src = files([
+ 'Evas_Engine_Buffer.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c'
+])
+
+engine_deps = []
+
+evas_include_directories += include_directories('.')
+
+install_headers('Evas_Engine_Buffer.h',
+ install_dir : dir_package_include,
+)
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_Drm.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c'
+])
+
+engine_deps = [ecore_drm2, libdrm]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_FB.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c',
+ 'evas_fb.h',
+ 'evas_fb_main.c',
+])
+
+engine_deps = [ecore_fb]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_GL_Cocoa.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.m',
+])
+
+engine_deps = [ecore_cocoa, gl_deps]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'evas_gl_private.h',
+ 'evas_gl_common.h',
+ 'evas_gl_define.h',
+ 'evas_gl_context.c',
+ 'evas_gl_file_cache.c',
+ 'evas_gl_shader.c',
+ 'evas_gl_rectangle.c',
+ 'evas_gl_texture.c',
+ 'evas_gl_preload.c',
+ 'evas_gl_image.c',
+ 'evas_gl_font.c',
+ 'evas_gl_polygon.c',
+ 'evas_gl_line.c',
+ 'evas_gl_core.c',
+ 'evas_gl_api_ext.h',
+ 'evas_gl_api_ext_def.h',
+ 'evas_gl_core.h',
+ 'evas_gl_core_private.h',
+ 'evas_gl_api.c',
+ 'evas_gl_api_def.h',
+ 'evas_gl_api_gles1.c',
+ 'evas_gl_api_gles3_def.h',
+ 'evas_gl_api_ext.c',
+ 'evas_gl_3d_common.h',
+ 'evas_gl_3d_private.h',
+ 'evas_gl_3d.c',
+ 'evas_gl_3d_renderer.c',
+ 'evas_gl_3d_shader.c',
+ #join_paths('shader_3d', 'evas_gl_3d_shaders.x'),
+ #join_paths('shader','evas_gl_shaders.x'),
+])
+
+engine_deps = [gl_deps]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_GL_Drm.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c',
+])
+
+engine_deps = [ecore_drm2, libdrm, gl_deps]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'evas_engine.c',
+ 'Evas_Engine_GL_Generic.h',
+ 'Evas_Engine_GL_Shared.h',
+ 'evas_ector_gl.h',
+ 'evas_ector_gl_buffer.c',
+ 'evas_ector_gl_image_buffer.c',
+ join_paths('filters','gl_engine_filter.h'),
+ join_paths('filters','gl_filter_blend.c'),
+ join_paths('filters','gl_filter_blur.c'),
+ join_paths('filters','gl_filter_curve.c'),
+ join_paths('filters','gl_filter_displace.c'),
+ join_paths('filters','gl_filter_fill.c'),
+ join_paths('filters','gl_filter_mask.c'),
+])
+
+
+pub_eo_files = [
+ 'evas_ector_gl_buffer.eo',
+ 'evas_ector_gl_image_buffer.eo'
+]
+
+foreach eo_file : pub_eo_files
+ engine_src += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+engine_deps = [gl_common]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_GL_X11.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_x_main.c',
+])
+
+engine_deps = [ecore_x_deps, gl_deps]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_Software_DDraw.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c',
+ 'evas_ddraw_buffer.c',
+ 'evas_ddraw_main.c',
+])
+
+engine_deps = []
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'Evas_Engine_Software_Gdi.h',
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c',
+ 'evas_gdi_buffer.c',
+ 'evas_gdi_main.c',
+])
+
+engine_deps = []
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_include_dir += include_directories('.')
+
+engine_src += files([
+ 'evas_engine_filter.h',
+ 'evas_filter_blend.c',
+ 'evas_filter_blur.c',
+ 'evas_filter_bump.c',
+ 'evas_filter_curve.c',
+ 'evas_filter_displace.c',
+ 'evas_filter_fill.c',
+ 'evas_filter_mask.c',
+ 'evas_filter_transform.c',
+]) \ 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 @@
+engine_src = files([
+ 'evas_engine.c',
+ 'Evas_Engine_Software_Generic.h',
+ 'Evas_Engine_Software_Shared.h',
+ 'evas_native_tbm.c',
+ 'evas_native_dmabuf.c',
+ 'evas_ector_software_buffer.c',
+ 'evas_native_common.h',
+ 'evas_ector_software.h',
+])
+
+
+pub_eo_files = [
+ 'evas_ector_software_buffer.eo'
+]
+
+subdir('filters')
+
+foreach eo_file : pub_eo_files
+ engine_src += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+engine_deps = [draw, dl]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_x_egl.c',
+ 'evas_x_egl.h',
+ 'Evas_Engine_Software_X11.h',
+ 'evas_xlib_swapbuf.c',
+ 'evas_xlib_outbuf.c',
+ 'evas_xlib_buffer.c',
+ 'evas_xlib_color.c',
+ 'evas_xlib_main.c',
+ 'evas_xlib_swapper.c',
+ 'evas_xlib_image.c',
+ 'evas_xlib_dri_image.c',
+ 'evas_xlib_outbuf.h',
+ 'evas_xlib_swapbuf.h',
+ 'evas_xlib_buffer.h',
+ 'evas_xlib_color.h',
+ 'evas_xlib_swapper.h',
+ 'evas_xlib_image.h',
+ 'evas_xlib_dri_image.h'
+])
+
+#xcb is DEAD ... we only use xlib
+config_h.set('BUILD_ENGINE_SOFTWARE_XLIB', '1')
+
+#ecore_x_deps carries all the extensions etc. so we dont have to search them twice
+#it looks weird but is right, gl_deps is needed for evas_x_egl.c
+engine_deps = [x11, ecore_x, ecore_x_deps, gl_deps]
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_wl_main.c'
+])
+
+engine_deps = [ecore_wl2, dependency('wayland-egl'), gl_deps]
+
+engine_include_dir = include_directories(join_paths('..','wayland_common'))
+
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+engine_src = files([
+ 'evas_engine.c',
+ 'evas_engine.h',
+ 'evas_outbuf.c'
+])
+
+engine_deps = [ecore_wl2]
+
+engine_include_dir = include_directories(join_paths('..','wayland_common'))
+
+if get_option('evas-modules') == 'shared' and not evas_force_static.contains(engine)
+ shared_module(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ install : true,
+ install_dir : mod_install_dir,
+ name_suffix : sys_mod_extension
+ )
+ module_files += join_paths(mod_install_dir, 'lib'+mod_full_name + '.' + sys_mod_extension)
+endif
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 @@
+evas_image_loaders_file = [
+ ['bmp', []],
+ ['eet', [eet]],
+ ['generic', [rt]],
+ ['gif', [giflib]],
+ ['ico', []],
+ ['jpeg', [jpeg]],
+ ['pmaps', []],
+ ['png', [png]],
+ ['psd', []],
+ ['tga', []],
+ ['tgv', [rg_etc, lz4]],
+ ['tiff', [tiff]],
+ ['wbmp', []],
+ ['webp', [webp]],
+ ['xpm', []],
+]
+
+foreach loader_inst : evas_image_loaders_file
+ loader = loader_inst[0]
+ loader_deps = loader_inst[1]
+
+
+ if get_option('evas-loaders-disabler').contains(loader) == false
+ file = join_paths(loader, 'evas_image_load_'+loader+'.c')
+
+ tmp = static_library('image_loader_'+loader, file,
+ include_directories : config_dir,
+ dependencies : [evas_pre] + loader_deps
+ )
+
+ evas_static_list += [declare_dependency(
+ sources: file,
+ dependencies: loader_deps,
+ )]
+
+ config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
+ config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
+ else
+ message('Image loader '+loader+' disabled')
+ endif
+endforeach \ 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 @@
+
+evas_image_savers_file = [
+['eet', [eet]],
+['jpeg', [jpeg]],
+['png', [png]],
+['tgv', [rg_etc, lz4]],
+['tiff', [tiff]],
+['webp', []]
+]
+
+foreach loader_inst : evas_image_savers_file
+ loader = loader_inst[0]
+ loader_deps = loader_inst[1]
+
+ if get_option('evas-loaders-disabler').contains(loader) == false
+ file = join_paths(loader, 'evas_image_save_'+loader+'.c')
+
+ tmp = static_library('image_saver_'+loader, file,
+ include_directories : config_dir,
+ dependencies : [evas_pre] + loader_deps
+ )
+
+ evas_static_list += [declare_dependency(
+ sources: file,
+ dependencies: loader_deps,
+ )]
+
+ config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1')
+ else
+ message('Image saver '+loader+' disabled')
+ endif
+endforeach
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 @@
+engines = [
+ ['buffer', []],
+ ['software_generic', []],
+ ['fb', ['fb']],
+ ['drm', ['drm']],
+ ['software_x11', ['x11']],
+ ['wayland_shm', ['wl']],
+]
+
+if get_option('opengl') != 'none'
+ engines += [
+ ['gl_common', []],
+ ['gl_generic', []],
+ ['gl_x11', ['x11']],
+ ['gl_drm', ['drm']],
+ ['gl_cocoa', ['cocoa']],
+ ]
+endif
+
+if get_option('opengl') == 'es-egl'
+ engines += [['wayland_egl', ['wl']]]
+endif
+
+#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later
+evas_force_static = ['software_generic', 'gl_common']
+evas_static_list = []
+
+#fixed dependencies by efl
+png = dependency('libpng')
+tiff = dependency('libtiff-4')
+giflib = cc.find_library('gif')
+
+webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false)
+
+subdir('image_loaders')
+subdir('image_savers')
+subdir('model_savers')
+subdir('model_loaders')
+subdir('vg_savers')
+subdir('vg_loaders')
+
+foreach engine_conf : engines
+ engine = engine_conf[0]
+ build = true
+ if engine_conf[1].length() > 0
+ build = get_option(engine_conf[1][0])
+ endif
+ if build
+ engine_include_dir = []
+ engine_src = []
+ engine_deps = []
+ engine_dep = declare_dependency(
+ include_directories: include_directories(join_paths('engines', engine)),
+ )
+
+ var_name = 'engine_'+engine
+ set_variable(var_name, engine_dep)
+
+ mod_full_name = engine
+ mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name)
+
+ subdir(join_paths('engines', engine))
+
+ if get_option('evas-modules') == 'static' or evas_force_static.contains(engine)
+ tmp = static_library(mod_full_name, engine_src,
+ include_directories : config_dir + [engine_include_dir],
+ dependencies : [eina, evas_pre] + engine_deps,
+ )
+
+ if engine == 'gl_common'
+ #gl_common will only be used by gl_generic, NOT by libevas.so, so we work arround the static list
+ gl_common = declare_dependency(
+ include_directories : include_directories(join_paths('engines', 'gl_common')),
+ link_with: tmp,
+ )
+ else
+ evas_static_list += declare_dependency(
+ include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
+ link_with: tmp,
+ dependencies : [eina, evas_pre] + engine_deps,
+ sources : engine_src
+ )
+ if engine == 'gl_generic'
+ #special case, see evas_module.c
+ config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
+ else
+ config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
+ endif
+ endif
+ else
+ #nothing here shared building is handled directly on the engine configuration side
+ #reason for this is that the .so files have to be placed in the correct directory in order
+ # to make them discoverable by evas module code
+ endif
+ config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
+ endif
+endforeach
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 @@
+evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply']
+
+foreach loader : evas_model_loaders_file
+ file = join_paths(loader, 'evas_model_load_'+loader+'.c')
+
+ tmp = static_library('model_loader_'+loader, file,
+ include_directories : config_dir,
+ dependencies : [evas_pre]
+ )
+
+ evas_static_list += [declare_dependency(
+ include_directories: include_directories('.'),
+ sources: file,
+ dependencies: evas_pre,
+ )]
+endforeach
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 @@
+evas_model_savers_file = ['eet', 'obj', 'ply']
+
+foreach loader : evas_model_savers_file
+ file = join_paths(loader, 'evas_model_save_'+loader+'.c')
+
+ tmp = static_library('model_saver_'+loader, file,
+ include_directories : config_dir,
+ dependencies : evas_pre
+ )
+
+ evas_static_list += [declare_dependency(
+ include_directories: include_directories('.'),
+ sources: file,
+ dependencies: evas_pre,
+ )]
+endforeach
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 @@
+evas_vg_loaders_file = ['eet', 'svg']
+
+foreach loader : evas_vg_loaders_file
+ file = join_paths(loader, 'evas_vg_load_'+loader+'.c')
+ static_library('vg_loader_'+loader, file,
+ include_directories : config_dir,
+ dependencies : evas_pre
+ )
+ evas_static_list += [declare_dependency(
+ sources: file,
+ )]
+ config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1')
+endforeach
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 @@
+evas_vg_savers_file = ['eet', 'svg']
+
+foreach loader : evas_vg_savers_file
+ file = join_paths(loader, 'evas_vg_save_'+loader+'.c')
+ tmp = static_library('vg_saver_'+loader, file,
+ include_directories : config_dir,
+ dependencies: [eo, ector, emile, freetype, eet, evas_pre],
+ )
+ evas_static_list += [declare_dependency(
+ sources: file,
+ dependencies: [eo, ector, emile, freetype, eet, evas_pre],
+ )]
+ config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1')
+endforeach \ No newline at end of file