aboutsummaryrefslogtreecommitdiffstats
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
parentecore_cocoa: stop leaking init counts (diff)
downloadefl-46d464e5bfc10398461a33a2256c1c58d509dd1a.tar.gz
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 https://phab.enlightenment.org/D7011
-rw-r--r--README.meson51
-rw-r--r--data/edje/include/meson.build3
-rw-r--r--data/edje/meson.build5
-rw-r--r--data/elementary/config/default/meson.build7
-rw-r--r--data/elementary/config/meson.build21
-rw-r--r--data/elementary/config/mobile/meson.build7
-rw-r--r--data/elementary/config/standard/meson.build7
-rw-r--r--data/elementary/desktop/meson.build10
-rw-r--r--data/elementary/edje_externals/meson.build11
-rw-r--r--data/elementary/meson.build10
-rw-r--r--data/elementary/objects/meson.build42
-rw-r--r--data/elementary/themes/meson.build37
-rw-r--r--data/embryo/meson.build3
-rw-r--r--data/eo/meson.build13
-rw-r--r--data/ethumb/frames/meson.build14
-rw-r--r--data/meson.build12
-rw-r--r--header_checks/meson.build177
-rw-r--r--meson.build346
-rw-r--r--meson/clean_check.sh3
-rwxr-xr-xmeson/evas_loader_conf.sh18
-rwxr-xr-xmeson/meson_modules.sh8
-rw-r--r--meson_options.txt311
-rw-r--r--po/meson.build22
-rwxr-xr-xscripts/check_options.sh10
-rw-r--r--scripts/create_all_options.lua52
-rw-r--r--src/benchmarks/eina/meson.build41
-rw-r--r--src/benchmarks/eo/meson.build16
-rw-r--r--src/bin/ecore_buffer/meson.build5
-rw-r--r--src/bin/ecore_con/meson.build6
-rw-r--r--src/bin/ecore_evas/meson.build11
-rw-r--r--src/bin/edje/epp/meson.build38
-rw-r--r--src/bin/edje/meson.build87
-rw-r--r--src/bin/eet/meson.build10
-rw-r--r--src/bin/eeze/meson.build10
-rw-r--r--src/bin/efl/meson.build10
-rw-r--r--src/bin/efl_wl/meson.build11
-rw-r--r--src/bin/efreet/meson.build41
-rw-r--r--src/bin/eina/eina_btlog/meson.build5
-rw-r--r--src/bin/eina/eina_modinfo/meson.build5
-rw-r--r--src/bin/eina/meson.build2
-rw-r--r--src/bin/eldbus/meson.build13
-rw-r--r--src/bin/elementary/meson.build228
-rw-r--r--src/bin/elua/meson.build5
-rw-r--r--src/bin/embryo/meson.build24
-rw-r--r--src/bin/eolian/meson.build19
-rw-r--r--src/bin/ethumb/meson.build6
-rw-r--r--src/bin/ethumb_client/meson.build24
-rw-r--r--src/bindings/luajit/meson.build7
-rw-r--r--src/edje_external/elementary/meson.build50
-rw-r--r--src/edje_external/emotion/meson.build8
-rw-r--r--src/edje_external/meson.build12
-rw-r--r--src/examples/ecore/meson.build76
-rw-r--r--src/examples/ecore_avahi/meson.build8
-rw-r--r--src/examples/edje/meson.build135
-rw-r--r--src/examples/eet/meson.build13
-rw-r--r--src/examples/eina/meson.build47
-rw-r--r--src/examples/eio/meson.build15
-rw-r--r--src/examples/eldbus/meson.build17
-rw-r--r--src/examples/emile/meson.build7
-rw-r--r--src/examples/emotion/meson.build14
-rw-r--r--src/examples/ethumb_client/meson.build10
-rw-r--r--src/examples/evas/meson.build57
-rw-r--r--src/generic/emotion/meson.build8
-rw-r--r--src/generic/emotion/vlc/meson.build8
-rw-r--r--src/generic/evas/common/meson.build6
-rw-r--r--src/generic/evas/gst/meson.build14
-rw-r--r--src/generic/evas/meson.build42
-rw-r--r--src/generic/evas/pdf/meson.build14
-rw-r--r--src/generic/evas/ps/meson.build5
-rw-r--r--src/generic/evas/raw/meson.build6
-rw-r--r--src/generic/evas/svg/meson.build12
-rw-r--r--src/generic/evas/xcf/meson.build8
-rw-r--r--src/lib/ecore/meson.build222
-rw-r--r--src/lib/ecore_audio/meson.build92
-rw-r--r--src/lib/ecore_avahi/meson.build26
-rw-r--r--src/lib/ecore_buffer/meson.build37
-rw-r--r--src/lib/ecore_cocoa/meson.build48
-rw-r--r--src/lib/ecore_con/meson.build220
-rw-r--r--src/lib/ecore_drm/meson.build39
-rw-r--r--src/lib/ecore_drm2/meson.build34
-rw-r--r--src/lib/ecore_evas/meson.build47
-rw-r--r--src/lib/ecore_fb/meson.build34
-rw-r--r--src/lib/ecore_file/meson.build39
-rw-r--r--src/lib/ecore_imf/meson.build34
-rw-r--r--src/lib/ecore_imf_evas/meson.build30
-rw-r--r--src/lib/ecore_input/meson.build38
-rw-r--r--src/lib/ecore_input_evas/meson.build32
-rw-r--r--src/lib/ecore_ipc/meson.build30
-rw-r--r--src/lib/ecore_sdl/meson.build31
-rw-r--r--src/lib/ecore_wayland/meson.build42
-rw-r--r--src/lib/ecore_wl2/meson.build38
-rw-r--r--src/lib/ecore_x/meson.build142
-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
-rw-r--r--src/lib/edje/meson.build160
-rw-r--r--src/lib/eet/meson.build38
-rw-r--r--src/lib/eeze/meson.build101
-rw-r--r--src/lib/efl/interfaces/meson.build155
-rw-r--r--src/lib/efl/meson.build33
-rw-r--r--src/lib/efl_wl/meson.build32
-rw-r--r--src/lib/efreet/meson.build96
-rw-r--r--src/lib/eina/meson.build398
-rw-r--r--src/lib/eio/meson.build90
-rw-r--r--src/lib/eldbus/meson.build114
-rw-r--r--src/lib/elementary/meson.build951
-rw-r--r--src/lib/elocation/gen/meson.build5
-rw-r--r--src/lib/elocation/meson.build28
-rw-r--r--src/lib/elput/meson.build43
-rw-r--r--src/lib/elua/meson.build24
-rw-r--r--src/lib/embryo/meson.build40
-rw-r--r--src/lib/emile/meson.build42
-rw-r--r--src/lib/emotion/meson.build70
-rw-r--r--src/lib/eo/meson.build73
-rw-r--r--src/lib/eolian/meson.build55
-rw-r--r--src/lib/ephysics/meson.build41
-rw-r--r--src/lib/ethumb/meson.build32
-rw-r--r--src/lib/ethumb_client/meson.build34
-rw-r--r--src/lib/evas/cache/meson.build6
-rw-r--r--src/lib/evas/canvas/meson.build204
-rw-r--r--src/lib/evas/common/language/meson.build7
-rw-r--r--src/lib/evas/common/meson.build87
-rw-r--r--src/lib/evas/common3d/meson.build2
-rw-r--r--src/lib/evas/common3d/primitives/meson.build5
-rw-r--r--src/lib/evas/common3d/primitives/solids_of_revolution/meson.build6
-rw-r--r--src/lib/evas/common3d/primitives/surfaces/meson.build4
-rw-r--r--src/lib/evas/common3d/primitives/tabulated_primitives/meson.build4
-rw-r--r--src/lib/evas/common3d/save_load/meson.build6
-rw-r--r--src/lib/evas/file/meson.build6
-rw-r--r--src/lib/evas/filters/lua/meson.build3
-rw-r--r--src/lib/evas/filters/meson.build19
-rw-r--r--src/lib/evas/gesture/meson.build69
-rw-r--r--src/lib/evas/include/meson.build18
-rw-r--r--src/lib/evas/meson.build175
-rw-r--r--src/lib/evas/vg/meson.build1
-rw-r--r--src/lib/evas_goal/empty.c0
-rw-r--r--src/lib/evas_goal/meson.build29
-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
-rw-r--r--src/scripts/elua/meson.build11
-rw-r--r--src/scripts/eo/meson.build11
-rw-r--r--src/scripts/meson.build2
-rw-r--r--src/static_libs/atspi/meson.build3
-rw-r--r--src/static_libs/buildsystem/buildsystem_meson.c49
-rw-r--r--src/static_libs/buildsystem/meson.build20
-rw-r--r--src/static_libs/draw/meson.build23
-rw-r--r--src/static_libs/freetype/meson.build23
-rw-r--r--src/static_libs/http-parser/meson.build11
-rw-r--r--src/static_libs/libdrm/meson.build3
-rw-r--r--src/static_libs/libunibreak/meson.build32
-rw-r--r--src/static_libs/lz4/meson.build17
-rw-r--r--src/static_libs/rg_etc/meson.build16
-rw-r--r--src/static_libs/triangulator/meson.build21
-rw-r--r--src/static_libs/vg_common/meson.build13
-rw-r--r--src/tests/ecore/meson.build56
-rw-r--r--src/tests/ecore_con/meson.build20
-rw-r--r--src/tests/ector/meson.build1
-rw-r--r--src/tests/ector/suite/meson.build18
-rw-r--r--src/tests/edje/data/meson.build37
-rw-r--r--src/tests/edje/meson.build26
-rw-r--r--src/tests/edje/tests/meson.build19
-rw-r--r--src/tests/eet/meson.build27
-rw-r--r--src/tests/eeze/meson.build20
-rw-r--r--src/tests/efl/meson.build18
-rw-r--r--src/tests/efreet/meson.build66
-rw-r--r--src/tests/eina/meson.build73
-rw-r--r--src/tests/eio/meson.build30
-rw-r--r--src/tests/eldbus/meson.build28
-rw-r--r--src/tests/elementary/meson.build122
-rw-r--r--src/tests/elput/meson.build17
-rw-r--r--src/tests/elua/meson.build31
-rw-r--r--src/tests/emile/meson.build18
-rw-r--r--src/tests/emotion/data/meson.build21
-rw-r--r--src/tests/emotion/meson.build21
-rw-r--r--src/tests/eo/access/meson.build20
-rw-r--r--src/tests/eo/children/meson.build17
-rw-r--r--src/tests/eo/composite_objects/meson.build19
-rw-r--r--src/tests/eo/constructors/meson.build31
-rw-r--r--src/tests/eo/function_overrides/meson.build23
-rw-r--r--src/tests/eo/interface/meson.build21
-rw-r--r--src/tests/eo/meson.build9
-rw-r--r--src/tests/eo/mixin/meson.build27
-rw-r--r--src/tests/eo/signals/meson.build17
-rw-r--r--src/tests/eo/suite/meson.build33
-rw-r--r--src/tests/eolian/meson.build38
-rw-r--r--src/tests/evas/meson.build31
-rw-r--r--src/tests/meson.build1
-rw-r--r--src/wayland_protocol/meson.build67
258 files changed, 9752 insertions, 0 deletions
diff --git a/README.meson b/README.meson
new file mode 100644
index 0000000000..ad76faa3f7
--- /dev/null
+++ b/README.meson
@@ -0,0 +1,51 @@
+# BUILDING EFL WITH MESON
+
+ Building, testing, installing:
+ mkdir build
+ cd build
+ meson ..
+ ninja all
+ ninja test
+ sudo ninja install
+
+In autotools there have been a few flags that are used to disable loaders. In meson the following four disbler arrays are used:
+
+ emotion-generic-loaders-disabler
+
+ emotion-loaders-disabler
+
+ ecore-imf-loaders-disabler
+
+ evas-loaders-disabler
+
+Autotools options that are converted are:
+
+ --disable-poppler -> Disable pdf loader
+ --disable-spectre -> Disable ps loader
+ --disable-libraw -> Disable raw loader
+ --disable-librsvg -> Disable svg loader
+ --disable-xcf -> Disable xcf loader
+ --disable-xim -> Disable xim loader
+ --disable-scim -> Disable scim loader
+ --disable-ibus -> Disable ibus loader
+ --enable-xine -> Disable xine loader
+ --enable-libvlc -> Disable vlc loader
+ --disable-librsvg -> Disable svg loader
+
+The following options are dropped as they did not affect compilation
+ --enable-lua-old
+ --enable-cancel-ok
+ --enable-debug
+ --disable-quick-launch
+ --enable-tile-rotate
+
+The following options are merged into the pixman option
+ --enable-pixman-font
+ --enable-pixman-rect
+ --enable-pixman-line
+ --enable-pixman-poly
+ --enable-pixman-image
+ --enable-pixman-image-scale-sample
+
+
+--disable-valgrind Is dropped, and handled due to the build profile, this can be handled with --buildtype release or plain.
diff --git a/data/edje/include/meson.build b/data/edje/include/meson.build
new file mode 100644
index 0000000000..943eb8a6c9
--- /dev/null
+++ b/data/edje/include/meson.build
@@ -0,0 +1,3 @@
+install_data('edje.inc',
+ install_dir : join_paths(dir_data, 'edje', 'include')
+) \ No newline at end of file
diff --git a/data/edje/meson.build b/data/edje/meson.build
new file mode 100644
index 0000000000..05f4f39a03
--- /dev/null
+++ b/data/edje/meson.build
@@ -0,0 +1,5 @@
+subdir('include')
+
+install_data(files('edje.xml'),
+ install_dir : join_paths(dir_data, 'mime', 'packages')
+)
diff --git a/data/elementary/config/default/meson.build b/data/elementary/config/default/meson.build
new file mode 100644
index 0000000000..983eb9d8d4
--- /dev/null
+++ b/data/elementary/config/default/meson.build
@@ -0,0 +1,7 @@
+custom_target('config_'+config,
+ input: config_file,
+ output: 'base.cfg',
+ command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
+ install: true,
+ install_dir: join_paths(dir_data, 'elementary', 'config', config),
+)
diff --git a/data/elementary/config/meson.build b/data/elementary/config/meson.build
new file mode 100644
index 0000000000..12a81ef03f
--- /dev/null
+++ b/data/elementary/config/meson.build
@@ -0,0 +1,21 @@
+configs = ['default', 'mobile', 'standard']
+
+foreach config : configs
+ config_file = join_paths(meson.current_source_dir(), config, 'base.src.in')
+ config_icon = join_paths(meson.current_source_dir(), config, 'icon.png')
+ config_desktop = join_paths(meson.current_source_dir(), config, 'profile.desktop')
+
+ install_data([config_icon, config_desktop],
+ install_dir : join_paths(dir_data, 'elementary', 'config', config)
+ )
+
+ subdir(config)
+endforeach
+
+custom_target('config_profile',
+ input: 'profile.src',
+ output: 'profile.cfg',
+ command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
+ install: true,
+ install_dir: join_paths(dir_data, 'elementary', 'config'),
+)
diff --git a/data/elementary/config/mobile/meson.build b/data/elementary/config/mobile/meson.build
new file mode 100644
index 0000000000..c3a8a44de9
--- /dev/null
+++ b/data/elementary/config/mobile/meson.build
@@ -0,0 +1,7 @@
+ custom_target('config_'+config,
+ input: config_file,
+ output: 'base.cfg',
+ command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
+ install: true,
+ install_dir: join_paths(dir_data, 'elementary', 'config', config),
+ )
diff --git a/data/elementary/config/standard/meson.build b/data/elementary/config/standard/meson.build
new file mode 100644
index 0000000000..c3a8a44de9
--- /dev/null
+++ b/data/elementary/config/standard/meson.build
@@ -0,0 +1,7 @@
+ custom_target('config_'+config,
+ input: config_file,
+ output: 'base.cfg',
+ command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
+ install: true,
+ install_dir: join_paths(dir_data, 'elementary', 'config', config),
+ )
diff --git a/data/elementary/desktop/meson.build b/data/elementary/desktop/meson.build
new file mode 100644
index 0000000000..9acaa8f1fb
--- /dev/null
+++ b/data/elementary/desktop/meson.build
@@ -0,0 +1,10 @@
+desktop_files = files('elementary_config.desktop', 'elementary_test.desktop')
+elementary_icon = files('elementary.png')
+
+install_data(desktop_files,
+ install_dir : join_paths(dir_data, 'applications')
+)
+
+install_data(elementary_icon,
+ install_dir : join_paths(dir_data, 'icons', 'hicolor', '128x128', 'apps')
+)
diff --git a/data/elementary/edje_externals/meson.build b/data/elementary/edje_externals/meson.build
new file mode 100644
index 0000000000..cc24430052
--- /dev/null
+++ b/data/elementary/edje_externals/meson.build
@@ -0,0 +1,11 @@
+custom_target('edje_cc_edje_externals',
+ input : 'icons.edc',
+ output : '@BASENAME@.edj',
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
+ '-id', join_paths(meson.current_source_dir()),
+ '-id', elm_themes_image_include,
+ '@INPUT@', '@OUTPUT@'],
+ depends : edje_cc,
+ install : true,
+ install_dir : join_paths(dir_data, 'elementary', 'edje_externals'),
+)
diff --git a/data/elementary/meson.build b/data/elementary/meson.build
new file mode 100644
index 0000000000..ed7d1e4204
--- /dev/null
+++ b/data/elementary/meson.build
@@ -0,0 +1,10 @@
+subdir('config')
+subdir('desktop')
+subdir('themes')
+subdir('objects')
+subdir('edje_externals')
+
+install_subdir('images',
+ install_dir : join_paths(dir_data, 'elementary'),
+ exclude_files : ['Makefile.am']
+)
diff --git a/data/elementary/objects/meson.build b/data/elementary/objects/meson.build
new file mode 100644
index 0000000000..a25a719852
--- /dev/null
+++ b/data/elementary/objects/meson.build
@@ -0,0 +1,42 @@
+edc_files = [
+ 'test.edc',
+ 'test_external.edc',
+ 'test_focus_style.edc',
+ 'test_masking.edc',
+ 'test_tab_pager.edc',
+ 'test_tooltip.edc',
+ 'test_prefs.edc',
+ 'cursors.edc',
+ 'font_preview.edc',
+ 'multibuttonentry.edc',
+ 'multip.edc',
+ 'postit_ent.edc'
+]
+
+elm_themes = []
+
+foreach edc_file : edc_files
+ elm_themes += custom_target('edje_cc_elm_' + edc_file,
+ input : edc_file,
+ output : '@BASENAME@.edj',
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
+ '-sd', join_paths(meson.current_source_dir()),
+ '-id', elm_themes_image_include,
+ '-id', join_paths(meson.current_source_dir()),
+ '-fd', join_paths(meson.current_source_dir()),
+ '@INPUT@', '@OUTPUT@'],
+ depends : edje_cc,
+ install : true,
+ install_dir : join_paths(dir_data, 'elementary', 'objects'),
+ )
+endforeach
+
+custom_target('prefs_compile',
+ input: 'test_prefs.epc',
+ output: 'test_prefs.epb',
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path(),
+ '@INPUT@', '@OUTPUT@'],
+ depends : elm_prefs_cc,
+ install : true,
+ install_dir : join_paths(dir_data, 'elementary', 'objects'),
+)
diff --git a/data/elementary/themes/meson.build b/data/elementary/themes/meson.build
new file mode 100644
index 0000000000..c8c8816470
--- /dev/null
+++ b/data/elementary/themes/meson.build
@@ -0,0 +1,37 @@
+edc_files = [
+ 'default.edc',
+]
+
+elm_themes = []
+
+elm_themes_image_include = join_paths(meson.current_source_dir(), 'img')
+
+foreach edc_file : edc_files
+ elm_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',
+ '-sd', join_paths(meson.current_source_dir(), 'snd'),
+ '-id', elm_themes_image_include,
+ '-id', join_paths(meson.current_source_dir(), 'fdo'),
+ '-fd', join_paths(meson.current_source_dir(), 'fnt'),
+ '@INPUT@', '@OUTPUT@'],
+ depends : edje_cc,
+ install : true,
+ install_dir : join_paths(dir_data, 'elementary', 'themes'),
+ )
+endforeach
+
+install_subdir('fdo',
+ install_dir : join_paths(dir_data, 'icons', 'Enlightenment-X'),
+ strip_directory : true,
+ exclude_directories : [
+ join_paths('status', '128-svg'),
+ join_paths('places', '16-svg'),
+ join_paths('places', '128-svg'),
+ join_paths('emblems', '96-svg'),
+ join_paths('devices', '128-svg'),
+ join_paths('categories', '128-svg'),
+ join_paths('actions', '128-svg'),
+ ]
+)
diff --git a/data/embryo/meson.build b/data/embryo/meson.build
new file mode 100644
index 0000000000..d1f049e467
--- /dev/null
+++ b/data/embryo/meson.build
@@ -0,0 +1,3 @@
+install_data('default.inc',
+ install_dir : join_paths(dir_data, 'embryo', 'include')
+)
diff --git a/data/eo/meson.build b/data/eo/meson.build
new file mode 100644
index 0000000000..8ccb578f7d
--- /dev/null
+++ b/data/eo/meson.build
@@ -0,0 +1,13 @@
+install_data('eo_gdb.py',
+ install_dir : join_paths(dir_data, 'eo', 'gdb')
+)
+
+configuration = configuration_data()
+configuration.set('datadir', dir_data)
+
+configure_file(
+ input: 'libeo-gdb.py.in',
+ output: 'libeo.so.'+meson.project_version()+'-gdb.py',
+ configuration: configuration,
+ install_dir: join_paths(dir_data, 'gdb', 'autoload', 'usr', 'lib')
+)
diff --git a/data/ethumb/frames/meson.build b/data/ethumb/frames/meson.build
new file mode 100644
index 0000000000..a696af0c41
--- /dev/null
+++ b/data/ethumb/frames/meson.build
@@ -0,0 +1,14 @@
+ethumb_frame = files('default.edc')
+
+custom_target('edje_cc_ethumb_frame',
+ input : ethumb_frame,
+ output : '@BASENAME@.edj',
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
+ '-sd', join_paths(meson.current_source_dir()),
+ '-id', join_paths(meson.current_source_dir()),
+ '-fd', join_paths(meson.current_source_dir()),
+ '@INPUT@', '@OUTPUT@'],
+ depends : edje_cc,
+ install : true,
+ install_dir : join_paths(dir_data, 'ethumb', 'frames'),
+)
diff --git a/data/meson.build b/data/meson.build
new file mode 100644
index 0000000000..4e1f68d406
--- /dev/null
+++ b/data/meson.build
@@ -0,0 +1,12 @@
+checkme_files = ['ecore', 'ecore_imf', 'ecore_x', 'eeze', 'efreet', 'elua', 'emotion', 'ethumb', 'ethumb_client', 'evas']
+foreach checkme : checkme_files
+ install_data(join_paths(checkme, 'checkme'),
+ install_dir : join_paths(dir_data, checkme)
+ )
+endforeach
+
+subdir('eo')
+subdir('edje')
+subdir('embryo')
+subdir(join_paths('ethumb', 'frames'))
+subdir('elementary')
diff --git a/header_checks/meson.build b/header_checks/meson.build
new file mode 100644
index 0000000000..e54e17943c
--- /dev/null
+++ b/header_checks/meson.build
@@ -0,0 +1,177 @@
+header_checks = [
+ 'alloca.h',
+ 'asm/hwcap.h',
+ 'bsd/string.h',
+ 'dirent.h',
+ 'execinfo.h',
+ 'mcheck.h',
+ 'netinet/in.h',
+ 'netinet/ssl.h',
+ 'netinet/tcp.h',
+ 'netinet/udp.h',
+ 'net/if.h',
+ 'stdlib.h',
+ 'mman.h',
+ 'sys/auxv.h',
+ 'sys/inotify.h',
+ 'sys/ioctl.h',
+ 'sys/mman.h',
+ 'sys/types.h',
+ 'sys/socket.h',
+ 'sys/filio.h',
+ 'arpa/inet.h',
+ 'sys/epoll.h',
+ 'sys/un.h',
+ 'sys/wait.h',
+ 'sys/resource.h',
+ 'sys/times.h',
+ 'dirent.h',
+ 'longinfo.h',
+ 'exotic.h',
+ 'ieeefp.h',
+ 'node/uv.h',
+ 'sys/timerfd.h',
+ 'features.h',
+ 'langinfo.h',
+ 'locale.h',
+ 'uv.h',
+ 'ws2tcpip.h'
+]
+
+function_checks = [
+# function name | headers that are needed | libraries to include | Defines that are needed
+ ['alloca', ['alloca.h']],
+ ['backtrace', ['execinfo.h']],
+ ['backtrace_symbols', ['execinfo.h']],
+ ['clock_gettime', ['time.h']],
+ ['dirfd', ['dirent.h sys/types.h']],
+ ['fchmod', ['sys/stat.h']],
+ ['fcntl', ['fcntl.h']],
+ ['fork', ['unistd.h']],
+ ['fpathconf', ['unistd.h']],
+ ['geteuid', ['unistd.h']],
+ ['getpagesize', ['unistd.h']],
+ ['getpwent', ['sys/types.h', 'pwd.h']],
+ ['getuid', ['unistd.h']],
+ ['getxattr', ['sys/types.h', 'sys/xattr.h']],
+ ['iconv', ['iconv.h']],
+ ['listxattr', ['sys/types.h', 'sys/xattr.h']],
+ ['mallinfo', ['malloc.h']],
+ ['malloc_info', ['malloc.h']],
+ ['malloc_usable_size', ['malloc.h']],
+ ['mkdirat', ['sys/stat.h']],
+ ['mmap', ['sys/mman.h']],
+ ['mtrace', ['mcheck.h']],
+ ['prctl', ['sys/prctl.h']],
+ ['realpath', ['stdlib.h']],
+ ['setxattr', ['sys/types.h', 'sys/xattr.h']],
+ ['siglongjmp', ['setjmp.h']],
+ ['strerror_r', ['string.h']],
+ ['gettimeofday', ['sys/time.h']],
+ ['execvp', ['unistd.h']],
+ ['pause', ['unistd.h']],
+ ['isfinite', ['math.h']],
+#FIXME strlcpy is detected by meson but drops at compilation time
+# ['strlcpy', ['string.h']],
+ ['siginfo_t', ['signal.h']],
+ ['strerror_r', ['string.h']],
+ ['pthread_getcpuclockid', ['pthread.h', 'time.h']],
+ ['timerfd_create', ['sys/timerfd.h']],
+ ['kevent', ['sys/types.h', 'sys/event.h', 'sys/time.h']],
+#from here on we specify the dependencies
+ ['dlopen', ['dlfcn.h'], ['dl']],
+ ['dlsym', ['dlfcn.h'], ['dl']],
+ ['lround', ['math.h'], ['m']],
+ ['shm_open', ['sys/mman.h', 'sys/stat.h', 'fcntl.h'], ['rt']],
+#from here on we specify arguments
+ ['splice', ['fcntl.h'], [], '-D_GNU_SOURCE=1'],
+ ['sched_getcpu', ['sched.h'], [], '-D_GNU_SOURCE=1'],
+ ['dladdr', ['dlfcn.h'], ['dl'], '-D_GNU_SOURCE=1']
+]
+
+strerror_r_char_p = cc.compiles('''#define _GNU_SOURCE
+ #include <string.h>
+ int func (void)
+ {
+ char error_string[256];
+ char *ptr = strerror_r (-2, error_string, 256);
+ char c = *strerror_r (-2, error_string, 256);
+ return c != 0 && ptr != (void*) 0L;
+ }
+ ''',
+ name : 'strerror_r() returns char *')
+
+if strerror_r_char_p
+ config_h.set('STRERROR_R_CHAR_P', '1')
+endif
+
+#for later use, a bunch of librarie findings
+m = cc.find_library('m')
+#just keep this here as required false, if it is not inplace the library rt will just be linked as NOP
+dl = cc.find_library('dl', required: false)
+rt = cc.find_library('rt', required: false)
+
+thread_dep = dependency('threads')
+
+#check for the headers
+foreach header : header_checks
+ if cc.has_header(header)
+ config_h.set10('HAVE_'+header.underscorify().to_upper(), true)
+ endif
+endforeach
+
+foreach function : function_checks
+ function_name = function[0]
+ headers_to_search = function[1]
+ dependencies = []
+ args = []
+
+ # if there is a library, make sure they exist
+ if function.length() > 2
+ foreach library : function[2]
+ lib = cc.find_library(library, required : false)
+ if lib.found() == true
+ dependencies += lib
+ endif
+ endforeach
+ endif
+
+ #check if there are args
+ if function.length() > 3
+ args = function[3]
+ endif
+
+ # Only check the header if the dependencies are ready
+ foreach header : headers_to_search
+ if cc.has_header_symbol(header, function_name,
+ dependencies : dependencies,
+ args : args)
+ config_h.set10('HAVE_'+function_name.to_upper(), true)
+ endif
+ endforeach
+endforeach
+
+# The next checks are manually for now due to the fact that some names are not within the default pattern
+if (cc.has_header_symbol('sys/stat.h', 'fstatat'))
+ config_h.set10('HAVE_ATFILE_SOURCE', true)
+endif
+
+if (cc.has_header('sys/mman.h'))
+ config_h.set10('HAVE_MMAN_H', true)
+endif
+
+config_h.set('VMAJ', version_major)
+config_h.set('VMIN', version_minor)
+config_h.set('VMIC', version_micro)
+config_h.set('VREV', '0')
+
+#jpeg detection ... life is a bit more complex there
+
+jpeg = dependency('libjpeg', required: false)
+if jpeg.found() == false
+ jpeg = cc.find_library('jpeg')
+endif
+
+if config_h.has('HAVE_KEVENT')
+ config_h.set('HAVE_NOTIFY_KEVENT', '1')
+endif \ No newline at end of file
diff --git a/meson.build b/meson.build
new file mode 100644
index 0000000000..72c48b8486
--- /dev/null
+++ b/meson.build
@@ -0,0 +1,346 @@
+project('efl', ['c','cpp'],
+ version: '1.21.99',
+ default_options : ['buildtype=plain'],
+ meson_version : '>=0.46'
+)
+
+if target_machine.system() == 'darwin'
+ add_languages('objc')
+endif
+
+
+clean_check = run_command('meson/clean_check.sh')
+if clean_check.returncode() == 0
+ error('Meson build requires a clean source tree')
+endif
+
+pkgconfig = import('pkgconfig')
+
+test_env = environment()
+test_env.set('EFL_RUN_IN_TREE', '1')
+
+version_arr = meson.project_version().split('.')
+
+version_major = version_arr[0]
+version_minor = version_arr[1]
+version_micro = version_arr[2]
+version_name = 'v-'+version_major + '.' + version_minor
+
+cc = meson.get_compiler('c')
+host_os = host_machine.system()
+
+if host_os == 'linux'
+ if cc.has_header_symbol('features.h', '__UCLIBC__')
+ host_os = 'linux-uclibc'
+ elif cc.has_header_symbol('features.h', '__dietlibc__')
+ host_os = 'linux-dietlibc'
+ else
+ host_os = 'linux-gnu'
+ endif
+endif
+
+#prepare a special linker args flag for binaries on macos
+bin_linker_args = []
+if target_machine.system() == 'darwin'
+ bin_linker_args = ['-pagezero_size', '10000', '-image_base', '100000000']
+endif
+
+module_files = []
+evas_loader_map = []
+
+#install paths
+dir_prefix = get_option('prefix')
+dir_sysconf = join_paths(dir_prefix, get_option('sysconfdir'))
+dir_bin = join_paths(dir_prefix, get_option('bindir'))
+dir_data = join_paths(dir_prefix, get_option('datadir'))
+dir_include = join_paths(dir_prefix, get_option('includedir'))
+dir_lib = join_paths(dir_prefix, get_option('libdir'))
+
+#local paths
+local_lib = join_paths('src', 'lib')
+local_bin = join_paths('src', 'bin')
+local_module = join_paths('src', 'modules')
+local_tests = join_paths('src', 'tests')
+local_benchmark = join_paths('src', 'benchmarks')
+local_examples = join_paths('src', 'examples')
+local_scripts = join_paths('src', 'scripts')
+
+add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
+add_global_arguments('-D_GNU_SOURCE=1', language: 'c')
+add_global_arguments('-fPIC', language: 'c')
+
+add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'c')
+add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'c')
+add_global_arguments('-DNEED_RUN_IN_TREE=1', language: 'c')
+add_global_arguments('-DEFL_BUILD=1', language: 'c')
+add_global_arguments('-DEFL_BUILD=1', language: 'objc')
+add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'objc')
+add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'objc')
+add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: 'c')
+
+config_h = configuration_data()
+config_h.set_quoted('MODULE_ARCH', version_name)
+config_h.set_quoted('PACKAGE', meson.project_name())
+config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
+config_h.set_quoted('VERSION', meson.project_version())
+config_h.set_quoted('LOCALE_DIR', join_paths([dir_prefix, 'share/locale']))
+config_h.set_quoted('PACKAGE_URL', 'https://www.enlightenment.org')
+config_h.set_quoted('PACKAGE_TARNAME', meson.project_name())
+config_h.set_quoted('PACKAGE_BUGREPORT', 'enlightenment-devel@lists.sourceforge.net')
+config_h.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
+config_h.set_quoted('PACKAGE_NAME', meson.project_name())
+config_h.set_quoted('PACKAGE_BIN_DIR', dir_bin)
+config_h.set_quoted('PACKAGE_LIB_DIR', dir_lib)
+config_h.set_quoted('PACKAGE_SRC_DIR', meson.source_root())
+config_h.set_quoted('PACKAGE_BUILD_DIR', meson.current_build_dir())
+config_h.set_quoted('PACKAGE_SYSCONF_DIR', dir_sysconf)
+config_h.set_quoted('BINDIR', dir_bin)
+config_h.set_quoted('DATADIR', dir_data)
+config_h.set10('EFL_HAVE_THREADS', true)
+config_h.set('NEED_RUN_IN_TREE', '1')
+
+config_dir = [include_directories('.')]
+eolian_include_directories = []
+
+windows = ['windows', 'cygwin']
+#bsd for meson 0.46 and 0.47
+bsd = ['bsd', 'freebsd', 'dragonfly', 'netbsd']
+linux = ['linux']
+osx = ['darwin']
+
+if linux.contains(target_machine.system()) or bsd.contains(target_machine.system())
+ sys_lib_extension = 'so'
+ sys_exe_extension = ''
+ sys_mod_extension = 'so'
+elif windows.contains(target_machine.system())
+ sys_lib_extension = 'dll'
+ sys_exe_extension = 'exe'
+ sys_mod_extension = 'dll'
+elif osx.contains(target_machine.system())
+ sys_lib_extension = 'dylib'
+ sys_exe_extension = ''
+ sys_mod_extension = 'dylib'
+else
+ error('System '+target_machine.system()+' not known')
+endif
+
+if (get_option('crypto') == 'gnutls')
+ # gcrypt does not want to provide a pkg config file so we try the lib
+ crypto = [dependency('gnutls'), cc.find_library('gcrypt')]
+ config_h.set('HAVE_GNUTLS', '1')
+elif (get_option('crypto') == 'openssl')
+ crypto = dependency('openssl')
+ config_h.set('HAVE_OPENSSL', '1')
+endif
+
+config_h.set_quoted('SHARED_LIB_SUFFIX', '.'+sys_lib_extension)
+config_h.set_quoted('MOD_SUFFIX', '.'+sys_mod_extension)
+config_h.set_quoted('EXE_SUFFIX', '.'+sys_exe_extension)
+config_h.set('EFL_BUILD', '1')
+
+subdir('header_checks')
+subdir('po')
+
+if get_option('wl') == true
+ subdir(join_paths('src', 'wayland_protocol'))
+endif
+
+ecore_evas_wayland_engine_include_dir = []
+
+subprojects = [
+# name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs
+['eina' ,[] , false, true, true, true, true, true, [], []],
+['eolian' ,[] , false, true, true, false, true, false, ['eina'], []],
+['eo' ,[] , false, true, false, true, true, false, ['eina'], []],
+['efl' ,[] , false, true, false, false, true, false, ['eo'], []],
+['emile' ,[] , false, true, false, false, true, true, ['eina', 'efl'], ['lz4', 'rg_etc']],
+['eet' ,[] , false, true, true, false, true, true, ['eina', 'emile', 'efl'], []],
+['ecore' ,[] , false, true, false, false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']],
+['eldbus' ,[] , false, true, true, false, true, true, ['eina', 'eo', 'efl'], []],
+['ecore' ,[] , true, false, false, false, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
+['ecore_audio' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
+['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, ['eina', 'ecore'], []],
+['ecore_con' ,[] , false, true, true, false, true, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']],
+['ecore_file' ,[] , false, true, false, false, false, false, ['eina'], []],
+['eeze' ,['eeze'] , true, true, true, false, true, false, ['eina', 'efl'], []],
+['ecore_input' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
+['ecore_x' ,['x11'] , false, true, false, false, false, false, ['eina', 'efl'], []],
+['ecore_fb' ,['fb'] , false, true, false, false, false, false, ['eina'], []],
+['ecore_wl2' ,['wl'] , true, true, false, false, false, false, ['eina'], ['libdrm']],
+['ecore_sdl' ,['sdl'] , false, true, false, false, false, false, ['eina'], []],
+['ecore_ipc' ,[] , false, true, false, false, false, false, ['eina'], []],
+['ecore_buffer' ,['buffer'] , true, true, true, false, false, false, ['eina'], []],
+['ector' ,[] , false, true, false, false, true, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],
+['elput' ,['drm'] , false, true, false, false, true, false, ['eina', 'eldbus'], []],
+['ecore_drm2' ,['drm'] , false, true, false, false, false, false, ['ecore'], ['libdrm']],
+['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, ['eina'], []],
+['evas' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']],
+['evas_goal' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
+['ecore_input_evas' ,[] , false, true, false, false, false, false, ['eina', 'evas'], []],
+['ecore_evas' ,[] , true, true, true, false, false, false, ['evas', 'ector'], []],
+['ecore_imf' ,[] , true, true, false, false, false, false, ['eina'], []],
+['embryo' ,[] , false, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
+['efreet' ,[] , false, true, false, false, true, false, ['eina', 'efl', 'eo'], []],
+['eio' ,[] , false, true, false, false, true, true, ['eina', 'eet'], []],
+['efreet' ,[] , false, false, true, false, false, false, ['eina', 'efl', 'eo'], []],
+['ecore_imf_evas' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
+['ephysics' ,['physics'] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
+['edje' ,[] , false, true, true, false, true, true, ['evas', 'eo', 'efl', 'luajit'], []],
+['emotion' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], []],
+['ethumb' ,[] , true, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
+['ethumb_client' ,[] , false, true, true, false, false, true, ['eina', 'efl', 'eo', 'ethumb'], []],
+['elocation' ,[] , false, true, false, false, false, false, ['ecore', 'eldbus'], []],
+['elementary' ,[] , true, true, true, false, true, false, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio', 'elocation'], ['atspi']],
+['efl_wl' ,['wl'] , false, true, true, false, false, false, ['evas', 'ecore'], []],
+['elua' ,['elua'] , false, true, true, false, true, false, ['eina', 'luajit'], []],
+['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, ['eina'], []],
+['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, ['eina'], []],
+]
+
+# We generate Efl_Config.h and config.h later, they will be available here
+config_dir += include_directories('.')
+
+#we have to do that first, eina modules are required by eina
+#the other modules require theire package
+subdir(join_paths(local_module, 'eina'))
+
+test_dirs = []
+example_dirs = []
+tmp_empty = declare_dependency()
+
+
+foreach package : subprojects
+ package_name = package[0]
+ package_version_name = '-'.join(package_name.split('_')) + '-' + version_major
+ package_c_args = [
+ '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"',
+ '-DNEED_RUN_IN_TREE=1'
+ ]
+ automatic_pkgfile = true
+ if package[1].length() == 0 or get_option(package[1][0])
+ config_h.set('HAVE_'+package_name.to_upper(), '1')
+
+ dir_package_include = join_paths(dir_include, package_version_name)
+ dir_package_modules = join_paths(dir_lib, package_name, 'modules')
+
+ #ensure that we really dont copy the eo file targets from a previous library
+ pub_eo_file_target = []
+ priv_eo_file_target = []
+
+ foreach static_lib : package[9]
+ if get_variable(static_lib, tmp_empty) == tmp_empty
+ subdir(join_paths('src', 'static_libs', static_lib))
+ endif
+ endforeach
+
+ if (package[3])
+ subdir(join_paths(local_lib, package_name))
+ endif
+ if (package[2])
+ subdir(join_paths(local_module, package_name))
+ endif
+ if (package[4])
+ subdir(join_paths(local_bin, package_name))
+ endif
+ if (package[5])
+ subdir(join_paths(local_benchmark, package_name))
+ endif
+ if (package[6])
+ test_dirs += [package_name]
+ endif
+ if (package[7])
+ example_dirs += [package_name]
+ endif
+
+ set_variable('build_'+package_name, true)
+
+ # generate automatic pc files for libraries
+ if automatic_pkgfile == true and package[3]
+ tmp_lib = get_variable(package_name+'_lib')
+ tmp_deps = get_variable(package_name+'_deps')
+ tmp_pub_deps = get_variable(package_name+'_pub_deps')
+
+ pkgconfig.generate(tmp_lib,
+ name : '-'.join(package_name.split('_')),
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : tmp_pub_deps,
+ requires : package[8],
+ )
+ endif
+ else
+ message(package_name+' disabled!')
+ endif
+
+endforeach
+
+#build this later, as the debug services are depending on ecore
+subdir(join_paths('src', 'bin', 'efl'))
+
+subdir(join_paths('src', 'generic', 'evas'))
+subdir(join_paths('src', 'generic', 'emotion'))
+
+subdir(join_paths('src', 'bindings', 'luajit'))
+subdir(join_paths('src', 'edje_external'))
+
+
+subdir(join_paths('data'))
+
+if get_option('build-tests')
+ check = dependency('check')
+ subdir(join_paths('src', 'tests'))
+ foreach test : test_dirs
+ subdir(join_paths(local_tests, test))
+ endforeach
+endif
+
+if get_option('build-examples')
+ foreach example : example_dirs
+ subdir(join_paths(local_examples, example))
+ endforeach
+endif
+
+subdir(join_paths(local_scripts))
+
+meson.add_install_script('meson/meson_modules.sh', module_files)
+
+foreach evas_loader_map_inst : evas_loader_map
+ evas_loader_original = evas_loader_map_inst[0]
+ evas_loader_link_types = evas_loader_map_inst[1]
+
+ meson.add_install_script('meson/evas_loader_conf.sh', evas_loader_original, evas_loader_link_types)
+endforeach
+
+#
+# Configure files
+#
+
+efl_config_h = configuration_data()
+efl_config_h.set('EFL_VERSION_MAJOR', version_major)
+efl_config_h.set('EFL_VERSION_MINOR', version_minor)
+efl_config_h.set('EFL_VERSION_MICRO', version_micro)
+efl_config_h.set('EFL_BUILD_ID', get_option('build-id'))
+
+#FIXME placeholder
+efl_config_h.set('EFL_API_EO_DEF', '#define EFL_API_EO_DEF "FIXME NOT IMPLEMENTED"')
+efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"')
+
+configure_file(
+ output: 'config.h',
+ install: false,
+ configuration: config_h
+)
+
+configure_file(
+ input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'),
+ output: 'Efl_Config.h',
+ install_dir : join_paths(dir_include,'efl-'+version_major),
+ configuration: efl_config_h
+)
+
+configure_file(
+ input: 'elm_intro.h.in',
+ output: 'elm_intro.h',
+ configuration: config_h,
+ install_dir : join_paths(dir_include,'elementary-'+version_major)
+)
diff --git a/meson/clean_check.sh b/meson/clean_check.sh
new file mode 100644
index 0000000000..c054794048
--- /dev/null
+++ b/meson/clean_check.sh
@@ -0,0 +1,3 @@
+#!/bin/sh
+
+test -f ${MESON_SOURCE_ROOT}/configure
diff --git a/meson/evas_loader_conf.sh b/meson/evas_loader_conf.sh
new file mode 100755
index 0000000000..5ed40e3a2e
--- /dev/null
+++ b/meson/evas_loader_conf.sh
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+original_loader=$1
+filename="$(basename $original_loader)"
+ext="${ext##*.}"
+original_name="$(basename $original_loader $ext)"
+loader_dir="$(dirname $original_loader)"
+loader="$(basename $original_loader)"
+loader_name="$(echo $original_name | cut -f 1 -d '.')"
+
+if [ ${original_loader: -3} == "$ext" ]
+ then
+ mv "$DESTDIR"/"$original_loader" "$DESTDIR"/"$loader_dir"/"$original_name"
+fi
+
+for x in "${@:2}"; do
+ ln -sf "$DESTDIR"/"$loader_dir"/"$original_name" "$DESTDIR"/"$loader_dir"/"$loader_name"."$x"
+done \ No newline at end of file
diff --git a/meson/meson_modules.sh b/meson/meson_modules.sh
new file mode 100755
index 0000000000..3398e048b5
--- /dev/null
+++ b/meson/meson_modules.sh
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+for x in "$@" ; do
+ dir="$(dirname $x)"
+ filename="$(basename $x)"
+ ext="${filename##*.}"
+ mv "$DESTDIR"/"$x" "$DESTDIR"/"$dir"/module."$ext"
+done
diff --git a/meson_options.txt b/meson_options.txt
new file mode 100644
index 0000000000..bb6c9aa2e0
--- /dev/null
+++ b/meson_options.txt
@@ -0,0 +1,311 @@
+option('audio',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling audio support in efl'
+)
+
+option('avahi',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling avahi support in efl'
+)
+
+option('x11',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling x11 support in efl'
+)
+
+option('fb',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling frame buffer support in efl'
+)
+
+option('sdl',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling sdl support in efl'
+)
+
+option('wl',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling wayland support in efl'
+)
+
+option('buffer',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling buffer support in efl'
+)
+
+option('drm',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling drm support in efl'
+)
+
+option('cocoa',
+ type : 'boolean',
+ value : false,
+ description : 'Flag for handling drm support in efl'
+)
+
+option('physics',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling the internal physics engine in efl'
+)
+
+option('eeze',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling the device abstraction layer in efl'
+)
+
+option('opengl',
+ type : 'combo',
+ choices : ['full', 'es-egl', 'none'],
+ value : 'full',
+ description : 'build efl with a special opengl support'
+)
+
+option('build-id',
+ type : 'string',
+ value : 'none',
+ description : 'The build id to attach to the efl build')
+
+option('eina-magic-debug',
+ type : 'boolean',
+ value : true,
+ description : 'magic debug of eina structure'
+)
+
+option('debug-threads',
+ type : 'boolean',
+ value : false,
+ description : 'thread debugging'
+)
+
+option('build-examples',
+ type : 'boolean',
+ value : true,
+ description : 'build examples'
+)
+
+option('build-tests',
+ type : 'boolean',
+ value : true,
+ description : 'build examples'
+)
+
+option('crypto',
+ type : 'combo',
+ choices : ['gnutls', 'openssl'],
+ value : 'openssl'
+)
+
+option('glib',
+ type : 'boolean',
+ value : true,
+ description : 'use glib or not'
+)
+
+option('g-mainloop',
+ type : 'boolean',
+ value : false,
+ description : 'use glib mainloop or not'
+)
+
+option('gstreamer',
+ type : 'boolean',
+ value : true,
+ description : 'use gstreamer 1.0 support'
+)
+
+option('systemd',
+ type : 'boolean',
+ value : true,
+ description : 'use systemd support'
+)
+
+option('pulseaudio',
+ type : 'boolean',
+ value : true,
+ description : 'pulseaudio support'
+)
+
+option('network-backend',
+ type : 'combo',
+ choices : ['connman', 'none'],
+ value : 'none',
+ description : 'connman support'
+)
+
+option('xpresent',
+ type : 'boolean',
+ value : false,
+ description : 'xpresent support'
+)
+
+option('xgesture',
+ type : 'boolean',
+ value : false,
+ description : 'xgesture support'
+)
+
+option('xinput2',
+ type : 'boolean',
+ value : true,
+ description : 'xi2 support'
+)
+
+option('xinput22',
+ type : 'boolean',
+ value : false,
+ description : 'xi22 support'
+)
+
+option('tslib',
+ type : 'boolean',
+ value : true,
+ description : 'tslib support'
+)
+
+option('eject-path',
+ type : 'string',
+ value : 'detect',
+ description : 'path to use as eject binary, if "detect" internal eeze bins are used'
+)
+
+option('mount-path',
+ type : 'string',
+ value : 'detect',
+ description : 'path to use as eject binary, if "detect" internal eeze bins are used'
+)
+
+option('unmount-path',
+ type : 'string',
+ value : 'detect',
+ description : 'path to use as eject binary, if "detect" internal eeze bins are used'
+)
+
+option('evas-modules',
+ type : 'combo',
+ choices : ['shared', 'static'],
+ value : 'shared',
+ description : 'how to build the evas modules'
+)
+
+option('evas-loaders-disabler',
+ type : 'array',
+ description : 'add names here to disable the loaders',
+ choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'xcf', 'bmp', 'dds', 'eet', 'generic', 'gif', 'ico', 'jp2k', 'jpeg', 'pmaps', 'png', 'psd', 'tga', 'tgv', 'tiff', 'wbmp', 'webp', 'xpm'],
+ value : ['webp']
+)
+
+option('ecore-imf-loaders-disabler',
+ type : 'array',
+ description : 'add names here to disable the loaders',
+ choices : ['xim', 'ibus', 'scim'],
+ value : ['scim']
+)
+
+option('emotion-loaders-disabler',
+ type : 'array',
+ description : 'add names here to disable the loaders',
+ choices : ['gstreamer', 'gstreamer1', 'libvlc', 'xine'],
+ value : ['gstreamer', 'libvlc', 'xine']
+)
+
+option('emotion-generic-loaders-disabler',
+ type : 'array',
+ description : 'add names here to disable the loaders',
+ choices : ['vlc'],
+ value : ['vlc']
+)
+
+option('harfbuzz',
+ type : 'boolean',
+ value : false,
+ description : 'harfbuzz support'
+)
+
+option('fribidi',
+ type : 'boolean',
+ value : true,
+ description : 'fribidi support'
+)
+
+option('fontconfig',
+ type : 'boolean',
+ value : true,
+ description : 'fontconfig support'
+)
+
+option('edje-sound-and-video',
+ type : 'boolean',
+ value : true,
+ description : 'disable sound and video for edje'
+)
+
+option('pixman',
+ type : 'boolean',
+ value : false,
+ description : 'Enable pixman support in evas'
+)
+
+option('hyphen',
+ type : 'boolean',
+ value : false,
+ description : 'Enable hyphen support in evas'
+)
+
+option('embedded-lz4',
+ type : 'boolean',
+ value : true,
+ description : 'do not use the system lz4, but rather the embedded r131 release'
+)
+
+option('libmount',
+ type : 'boolean',
+ value : true,
+ description : 'use libmount support or not'
+)
+
+option('vnc-server',
+ type : 'boolean',
+ value : false,
+ description : 'use libmount support or not'
+)
+
+option('v4l2',
+ type : 'boolean',
+ value : true,
+ description : 'add v4l2 support'
+)
+
+option('elua',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling elua support in efl'
+)
+
+option('wl-deprecated',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling deprecated wayland support in efl'
+)
+
+option('drm-deprecated',
+ type : 'boolean',
+ value : true,
+ description : 'Flag for handling deprecated drm support in efl'
+)
+
+option('nls',
+ type: 'boolean',
+ value: true,
+ description: 'enable localization: (default=true)'
+)
diff --git a/po/meson.build b/po/meson.build
new file mode 100644
index 0000000000..68a4885e41
--- /dev/null
+++ b/po/meson.build
@@ -0,0 +1,22 @@
+if get_option('nls')
+ i18n = import('i18n')
+ i18n.gettext('efl',
+ args: [
+ '--keyword=_',
+ '--keyword=d_:1',
+ '--keyword=P_:1,2',
+ '--keyword=dP_:1,2',
+ '--keyword=N_',
+ '--keyword=NP_:1,2',
+ '--from-code=UTF-8',
+ '--foreign-user'
+ ])
+ config_h.set('HAVE_GETTEXT', '1')
+ config_h.set('ENABLE_NLS', '1')
+ intl = cc.find_library('intl', required : false)
+ if cc.has_header('libintl.h', dependencies : intl) == false
+ error('libintl.h not found')
+ endif
+else
+ intl = declare_dependency()
+endif
diff --git a/scripts/check_options.sh b/scripts/check_options.sh
new file mode 100755
index 0000000000..d6b3c3e48f
--- /dev/null
+++ b/scripts/check_options.sh
@@ -0,0 +1,10 @@
+#!/bin/bash
+
+BUILD_DIR=`mktemp -d`
+INSTALL_DIR=`mktemp -d`
+
+meson $@ --prefix ${INSTALL_DIR} ${BUILD_DIR}
+
+ninja -C ${BUILD_DIR} all
+ninja -C ${BUILD_DIR} install
+#ninja -C ${BUILD_DIR} test \ No newline at end of file
diff --git a/scripts/create_all_options.lua b/scripts/create_all_options.lua
new file mode 100644
index 0000000000..3bbc748742
--- /dev/null
+++ b/scripts/create_all_options.lua
@@ -0,0 +1,52 @@
+options = {
+ {"-Dopengl=", "full", "none", "es-egl"},
+ {"--buildtype ", "plain", "debug", "release"},
+ {"-Devas-modules ", "shared", "static"},
+}
+
+concated_options = {}
+
+for i,v in pairs(options) do
+ tmp_options = {}
+
+ option_name = v[1]
+
+ for i=2, #v do
+ table.insert(tmp_options, option_name..v[i])
+ end
+
+ table.insert(concated_options, tmp_options)
+end
+
+function permutate(values)
+ local permutater = {table.unpack(values[1])}
+
+ if #values == 1 then
+ return {table.unpack(values[1])}
+ else
+ local result = {}
+ table.remove(values, 1)
+ local list_to_complete = permutate(values)
+
+ for k,v in pairs(list_to_complete) do
+ for k_perm,v_perm in pairs(permutater) do
+ table.insert(result, v_perm.." "..v)
+ end
+ end
+ return result
+ end
+end
+
+all_options = permutate(concated_options)
+
+print("GOING TO BUILD ALOT OF EFL")
+
+for k,v in pairs(all_options) do
+ cmd = "sh ./scripts/check_options.sh "..v.." "..arg[1]
+ exitcode = os.execute(cmd)
+ if exitcode ~= true then
+ print("command "..cmd.." failed. ")
+ print(exitcode)
+ os.exit(-1)
+ end
+end
diff --git a/src/benchmarks/eina/meson.build b/src/benchmarks/eina/meson.build
new file mode 100644
index 0000000000..aa9081cef2
--- /dev/null
+++ b/src/benchmarks/eina/meson.build
@@ -0,0 +1,41 @@
+eina_bench_src = files(
+'eina_bench.c',
+'eina_bench_sort.c',
+'eina_bench_hash.c',
+'eina_bench_crc_hash.c',
+'eina_bench_stringshare.c',
+'eina_bench_convert.c',
+'eina_bench_mempool.c',
+'eina_bench_stringshare_e17.c',
+'eina_bench_array.c',
+'eina_bench_rectangle_pool.c',
+'ecore_list.c',
+'ecore_strings.c',
+'ecore_hash.c',
+'ecore_sheap.c',
+'evas_hash.c',
+'evas_list.c',
+'evas_mempool.c',
+'evas_object_list.c',
+'evas_stringshare.c',
+'eina_bench_quad.c',
+'eina_bench.h',
+'Ecore_Data.h',
+'Evas_Data.h',
+'evas_mempool.h')
+
+city = shared_library('city',
+ sources : ['city.cc','city.h'],
+)
+
+eina_bench = executable('eina_bench',
+ sources : eina_bench_src,
+ dependencies : eina,
+ c_args : ['-fPIC','-DCITYHASH_BENCH', '-DEINA_ENABLE_BENCH_E17'],
+ include_directories : config_dir,
+ link_with : city,
+)
+
+benchmark('eina_bench', eina_bench,
+ timeout : 20*60
+) \ No newline at end of file
diff --git a/src/benchmarks/eo/meson.build b/src/benchmarks/eo/meson.build
new file mode 100644
index 0000000000..2df6c71e97
--- /dev/null
+++ b/src/benchmarks/eo/meson.build
@@ -0,0 +1,16 @@
+eo_benchmark_src = [
+ 'class_simple.c',
+ 'class_simple.h',
+ 'eo_bench.c',
+ 'eo_bench.h',
+ 'eo_bench_callbacks.c',
+ 'eo_bench_eo_do.c',
+ 'eo_bench_eo_add.c'
+]
+
+eo_bench = executable('eo_bench',
+ eo_benchmark_src,
+ dependencies: [eo, eina],
+)
+
+benchmark('eo', eo_bench)
diff --git a/src/bin/ecore_buffer/meson.build b/src/bin/ecore_buffer/meson.build
new file mode 100644
index 0000000000..86ee20a872
--- /dev/null
+++ b/src/bin/ecore_buffer/meson.build
@@ -0,0 +1,5 @@
+executable('bq_mgr',
+ ['bq_mgr_protocol.c', 'bq_mgr.c'],
+ dependencies: [ecore, ecore_buffer, ecore_buffer_deps],
+ install : true
+)
diff --git a/src/bin/ecore_con/meson.build b/src/bin/ecore_con/meson.build
new file mode 100644
index 0000000000..d8d33dcd4d
--- /dev/null
+++ b/src/bin/ecore_con/meson.build
@@ -0,0 +1,6 @@
+executable('efl_net_proxy_helper',
+ 'efl_net_proxy_helper.c',
+ dependencies : [ecore_con],
+ install : true,
+ install_dir : join_paths(dir_lib, 'ecore_con', 'utils', version_name)
+)
diff --git a/src/bin/ecore_evas/meson.build b/src/bin/ecore_evas/meson.build
new file mode 100644
index 0000000000..42d74bd5ab
--- /dev/null
+++ b/src/bin/ecore_evas/meson.build
@@ -0,0 +1,11 @@
+executable('ecore_evas_convert',
+ 'ecore_evas_convert.c',
+ dependencies : [eina, ecore, evas, ecore_evas],
+ install : true
+)
+
+executable('eetpack',
+ 'eetpack.c',
+ dependencies : [eina, eet, evas, ecore_evas],
+ install : true
+)
diff --git a/src/bin/edje/epp/meson.build b/src/bin/edje/epp/meson.build
new file mode 100644
index 0000000000..bbe7e99a6d
--- /dev/null
+++ b/src/bin/edje/epp/meson.build
@@ -0,0 +1,38 @@
+epp_src = [
+ 'cpplib.h',
+ 'cpphash.h',
+ 'cppalloc.c',
+ 'cpperror.c',
+ 'cppexp.c',
+ 'cpphash.c',
+ 'cpplib.c',
+ 'cppmain.c'
+]
+
+epp = executable('epp',
+ epp_src,
+ dependencies: eolian,
+ install: true,
+ install_dir : join_paths(dir_lib, 'edje', 'utils', version_name),
+ c_args : [
+ package_c_args,
+ '-DHAVE_CONFIG_H',
+ '-DHAVE_STRERROR',
+ '-DFATAL_EXIT_CODE=1',
+ '-DSUCCESS_EXIT_CODE=0',
+ '-DGCC_INCLUDE_DIR="/usr/include"',
+ '-DGPLUSPLUS_INCLUDE_DIR="/usr/include"',
+ '-DTOOL_INCLUDE_DIR="/usr/bin"',
+ '-DHOST_BITS_PER_LONG=32',
+ '-DBITS_PER_UNIT=8',
+ '-DHOST_BITS_PER_INT=32',
+ '-DBITS_PER_WORD=16',
+ '-DTARGET_BELL=7',
+ '-DTARGET_BS=8',
+ '-DTARGET_FF=12',
+ '-DTARGET_NEWLINE=10',
+ '-DTARGET_CR=13',
+ '-DTARGET_TAB=9',
+ '-DTARGET_VT=11'
+ ],
+)
diff --git a/src/bin/edje/meson.build b/src/bin/edje/meson.build
new file mode 100644
index 0000000000..c7e5f397c2
--- /dev/null
+++ b/src/bin/edje/meson.build
@@ -0,0 +1,87 @@
+subdir('epp')
+
+edje_bin_deps = [
+ eina, eo, efl, m,
+ luajit, eet, evas,
+ ecore_file, ecore_input,
+ ecore_imf, ecore_imf_evas,
+ embryo, efreet, eio,
+ edje, ecore_evas
+]
+
+edje_cc_src = [
+ 'edje_multisense_convert.h',
+ 'edje_cc.h',
+ 'edje_cc.c',
+ 'edje_cc_out.c',
+ 'edje_cc_parse.c',
+ 'edje_cc_mem.c',
+ 'edje_cc_handlers.c',
+ 'edje_cc_sources.c',
+ 'edje_cc_script.c',
+ 'edje_multisense_convert.c'
+]
+
+edje_cc = executable('edje_cc',
+ edje_cc_src,
+ dependencies: [edje_bin_deps, eet, ecore_evas, ecore_file],
+ install: true,
+ c_args : package_c_args,
+ link_args : bin_linker_args
+)
+
+edje_decc_src = [
+ 'edje_decc.c',
+ 'edje_decc.h',
+ 'edje_cc_mem.c',
+ 'edje_cc_sources.c',
+]
+
+edje_decc = executable('edje_decc',
+ edje_decc_src,
+ dependencies: [edje_bin_deps, eet, ecore_file, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_player = executable('edje_player',
+ 'edje_player.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_inspector = executable('edje_inspector',
+ 'edje_inspector.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_external_inspector = executable('edje_external_inspector',
+ 'edje_external_inspector.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_codegen = executable('edje_codegen',
+ 'edje_codegen.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_pick = executable('edje_pick',
+ 'edje_pick.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
+
+edje_watch = executable('edje_watch',
+ 'edje_watch.c',
+ dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
+ install: true,
+ c_args : package_c_args,
+)
diff --git a/src/bin/eet/meson.build b/src/bin/eet/meson.build
new file mode 100644
index 0000000000..bde68b6ef6
--- /dev/null
+++ b/src/bin/eet/meson.build
@@ -0,0 +1,10 @@
+eet_bin = executable('eet',
+ 'eet_main.c',
+ dependencies: [eet],
+ install : true
+)
+
+install_data(['diffeet','vieet'],
+ install_mode: 'rwxr--r--',
+ install_dir : dir_bin
+)
diff --git a/src/bin/eeze/meson.build b/src/bin/eeze/meson.build
new file mode 100644
index 0000000000..2bb4370bdd
--- /dev/null
+++ b/src/bin/eeze/meson.build
@@ -0,0 +1,10 @@
+eeze_bins = ['disk_ls', 'mount', 'scanner', 'scanner_monitor', 'umount']
+
+foreach eeze_bin : eeze_bins
+ src_file = join_paths('eeze_'+eeze_bin, 'eeze_'+eeze_bin+'.c')
+ tmp = executable('eeze_'+eeze_bin, src_file,
+ dependencies: [ecore, eeze, ecore_con, ecore_file, eet],
+ install: true,
+ )
+ set_variable('eeze_'+eeze_bin, tmp)
+endforeach
diff --git a/src/bin/efl/meson.build b/src/bin/efl/meson.build
new file mode 100644
index 0000000000..d65d22c6f5
--- /dev/null
+++ b/src/bin/efl/meson.build
@@ -0,0 +1,10 @@
+executable('efl_debug',
+ 'efl_debug.c',
+ dependencies: [eina, ecore],
+ install: true,
+)
+executable('efl_debugd',
+ 'efl_debugd.c',
+ dependencies: [eina, ecore, ecore_con],
+ install: true,
+)
diff --git a/src/bin/efl_wl/meson.build b/src/bin/efl_wl/meson.build
new file mode 100644
index 0000000000..5f0d655cb0
--- /dev/null
+++ b/src/bin/efl_wl/meson.build
@@ -0,0 +1,11 @@
+executable('efl_wl_test',
+ 'efl_wl_test.c',
+ include_directories : config_dir,
+ dependencies: [efl_wl, elementary]
+)
+
+executable('efl_wl_test_stack',
+ 'efl_wl_test_stack.c',
+ include_directories : config_dir,
+ dependencies: [efl_wl, elementary]
+)
diff --git a/src/bin/efreet/meson.build b/src/bin/efreet/meson.build
new file mode 100644
index 0000000000..4c7bf5efb5
--- /dev/null
+++ b/src/bin/efreet/meson.build
@@ -0,0 +1,41 @@
+efreetd_src = [
+ 'efreetd.c',
+ 'efreetd.h',
+ 'efreetd_ipc.h',
+ 'efreetd_ipc.c',
+ 'efreetd_cache.h',
+ 'efreetd_cache.c'
+]
+
+config_h.set('STRICT_SPEC', '1')
+
+efreetd = executable('efreetd',
+ efreetd_src,
+ dependencies: [efreet, ecore, ecore_ipc, ecore_file, eio],
+ install: true,
+ c_args : package_c_args,
+)
+
+efreet_desktop_cache_create = executable('efreet_desktop_cache_create',
+ 'efreet_desktop_cache_create.c',
+ dependencies: [efreet, ecore, eet, ecore_file],
+ install: true,
+ install_dir : join_paths(dir_lib, 'efreet', version_name),
+ c_args : package_c_args,
+)
+
+efreet_icon_cache_create = executable('efreet_icon_cache_create',
+ 'efreet_icon_cache_create.c',
+ dependencies: [efreet, ecore, eet, ecore_file],
+ install: true,
+ install_dir : join_paths(dir_lib, 'efreet', version_name),
+ c_args : package_c_args,
+)
+
+efreet_mime_cache_create = executable('efreet_mime_cache_create',
+ 'efreet_mime_cache_create.c',
+ dependencies: [efreet, ecore, eet, ecore_file],
+ install: true,
+ install_dir : join_paths(dir_lib, 'efreet', version_name),
+ c_args : package_c_args,
+)
diff --git a/src/bin/eina/eina_btlog/meson.build b/src/bin/eina/eina_btlog/meson.build
new file mode 100644
index 0000000000..3d56f9cfbf
--- /dev/null
+++ b/src/bin/eina/eina_btlog/meson.build
@@ -0,0 +1,5 @@
+executable('eina_btlog',
+ 'eina_btlog.c',
+ dependencies: eina,
+ install: true,
+)
diff --git a/src/bin/eina/eina_modinfo/meson.build b/src/bin/eina/eina_modinfo/meson.build
new file mode 100644
index 0000000000..a57dc6fc42
--- /dev/null
+++ b/src/bin/eina/eina_modinfo/meson.build
@@ -0,0 +1,5 @@
+executable('eina_modinfo',
+ 'eina_modinfo.c',
+ dependencies: eina,
+ install: true,
+)
diff --git a/src/bin/eina/meson.build b/src/bin/eina/meson.build
new file mode 100644
index 0000000000..7c5f64b950
--- /dev/null
+++ b/src/bin/eina/meson.build
@@ -0,0 +1,2 @@
+subdir('eina_btlog')
+subdir('eina_modinfo')
diff --git a/src/bin/eldbus/meson.build b/src/bin/eldbus/meson.build
new file mode 100644
index 0000000000..b9c7356c46
--- /dev/null
+++ b/src/bin/eldbus/meson.build
@@ -0,0 +1,13 @@
+eldbus_codegen_src = [
+ 'codegen.h',
+ 'utils.c',
+ 'parser.c',
+ 'dbus.c',
+ 'source_client.c',
+ 'client.c'
+]
+executable('eldbus-codegen',
+ eldbus_codegen_src,
+ dependencies: [eldbus, ecore],
+ install: true,
+)
diff --git a/src/bin/elementary/meson.build b/src/bin/elementary/meson.build
new file mode 100644
index 0000000000..58f82c1925
--- /dev/null
+++ b/src/bin/elementary/meson.build
@@ -0,0 +1,228 @@
+elementary_test_src = [
+ 'test.c',
+ 'test_explode.c',
+ 'test_explode.h',
+ 'test_3d.c',
+ 'test_access.c',
+ 'test_actionslider.c',
+ 'test_anim.c',
+ 'test_bg.c',
+ 'test_box.c',
+ 'test_bubble.c',
+ 'test_button.c',
+ 'test_ui_button.c',
+ 'test_calendar.c',
+ 'test_check.c',
+ 'test_clock.c',
+ 'test_cnp.c',
+ 'test_code.c',
+ 'test_colorselector.c',
+ 'test_colorclass.c',
+ 'test_combobox.c',
+ 'test_config.c',
+ 'test_conform.c',
+ 'test_conform_indicator.c',
+ 'test_ctxpopup.c',
+ 'test_cursor.c',
+ 'test_datetime.c',
+ 'test_dayselector.c',
+ 'test_disable.c',
+ 'test_diskselector.c',
+ 'test_dnd.c',
+ 'test_efl_anim_alpha.c',
+ 'test_efl_anim_rotate.c',
+ 'test_efl_anim_scale.c',
+ 'test_efl_anim_translate.c',
+ 'test_efl_anim_group_parallel.c',
+ 'test_efl_anim_group_sequential.c',
+ 'test_efl_anim_event_anim.c',
+ 'test_efl_anim_pause.c',
+ 'test_efl_anim_repeat.c',
+ 'test_efl_anim_start_delay.c',
+ 'test_efl_anim_interpolator.c',
+ 'test_eio.c',
+ 'test_entry.c',
+ 'test_entry_anchor.c',
+ 'test_entry_anchor2.c',
+ 'test_events.c',
+ 'test_evas_mask.c',
+ 'test_evas_map.c',
+ 'test_efl_gfx_map.c',
+ 'test_evas_snapshot.c',
+ 'test_external.c',
+ 'test_fileselector_button.c',
+ 'test_fileselector.c',
+ 'test_fileselector_entry.c',
+ 'test_flip.c',
+ 'test_flip_page.c',
+ 'test_flip_page_eo.c',
+ 'test_flipselector.c',
+ 'test_floating.c',
+ 'test_focus.c',
+ 'test_focus_custom_chain.c',
+ 'test_focus_policy.c',
+ 'test_focus_style.c',
+ 'test_gengrid.c',
+ 'test_genlist.c',
+ 'test_gesture_layer.c',
+ 'test_gesture_layer2.c',
+ 'test_gesture_layer3.c',
+ 'test_gfx_filters.c',
+ 'test_glview_simple.c',
+ 'test_glview.c',
+ 'test_glview_manygears.c',
+ 'test_grid.c',
+ 'test_ui_table_static.c',
+ 'test_ui_stack.c',
+ 'test_hover.c',
+ 'test_hoversel.c',
+ 'test_icon.c',
+ 'test_icon_desktops.c',
+ 'test_icon_animated.c',
+ 'test_image.c',
+ 'test_index.c',
+ 'test_inwin.c',
+ 'test_label.c',
+ 'test_launcher.c',
+ 'test_layout.c',
+ 'test_list.c',
+ 'test_map.c',
+ 'test_main_menu.c',
+ 'test_menu.c',
+ 'test_multi.c',
+ 'test_multibuttonentry.c',
+ 'test_naviframe.c',
+ 'test_naviframe_complex.c',
+ 'test_notify.c',
+ 'test_nstate.c',
+ 'test_panel.c',
+ 'test_panes.c',
+ 'test_ui_panes.c',
+ 'test_part_bg.c',
+ 'test_part_shadow.c',
+ 'test_photo.c',
+ 'test_photocam.c',
+ 'test_popup.c',
+ 'test_prefs.c',
+ 'test_progressbar.c',
+ 'test_ui_progressbar.c',
+ 'test_radio.c',
+ 'test_scaling.c',
+ 'test_scroller.c',
+ 'test_ui_scroller.c',
+ 'test_segment_control.c',
+ 'test_separator.c',
+ 'test_slider.c',
+ 'test_ui_slider.c',
+ 'test_ui_slider_interval.c',
+ 'test_ui_spin.c',
+ 'test_ui_spin_button.c',
+ 'test_ui_datepicker.c',
+ 'test_ui_timepicker.c',
+ 'test_ui_tags.c',
+ 'test_slideshow.c',
+ 'test_spinner.c',
+ 'test_store.c',
+ 'test_sys_notify.c',
+ 'test_systray.c',
+ 'test_table.c',
+ 'test_thumb.c',
+ 'test_toolbar.c',
+ 'test_tooltip.c',
+ 'test_transit.c',
+ 'test_transit_bezier.c',
+ 'test_ui_box.c',
+ 'test_ui_clock.c',
+ 'test_ui_table.c',
+ 'test_ui_popup.c',
+ 'test_ui_textpath.c',
+ 'test_video.c',
+ 'test_weather.c',
+ 'test_web.c',
+ 'test_win_inline.c',
+ 'test_win_keygrab.c',
+ 'test_win_socket.c',
+ 'test_win_plug.c',
+ 'test_win_state.c',
+ 'test_win_wm_rotation.c',
+ 'test_win_dialog.c',
+ 'test_win_modal.c',
+ 'test_efl_ui_text.c',
+ 'test_win_stack.c',
+ 'test_win_indicator.c',
+ 'test_gesture_framework.c',
+ 'test_ui_tab_pager.c',
+ 'test.h'
+]
+
+elementary_test = executable('elementary_test',
+ elementary_test_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args + [
+ '-Delementary_test_BIN_DIR="'+dir_bin+'"',
+ '-Delementary_test_LIB_DIR="'+dir_lib+'"',
+ '-Delementary_test_DATA_DIR="'+join_paths(dir_data,'elementary')+'"'
+ ]
+)
+
+elementary_config_src = [
+ 'config.c'
+]
+
+elementary_config = executable('elementary_config',
+ elementary_config_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args,
+)
+
+elementary_quicklaunch_src = [
+ 'quicklaunch.c'
+]
+
+elementary_quicklaunch = executable('elementary_quicklaunch',
+ elementary_quicklaunch_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args,
+)
+
+elementary_codegen_src = [
+ 'elementary_codegen.c'
+]
+
+elementary_codegen = executable('elementary_codegen',
+ elementary_codegen_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args,
+)
+
+elm_prefs_cc_src = [
+ 'elm_prefs_cc.h',
+ 'elm_prefs_cc.c',
+ 'elm_prefs_cc_mem.c',
+ 'elm_prefs_cc_out.c',
+ 'elm_prefs_cc_parse.c',
+ 'elm_prefs_cc_handlers.c'
+
+]
+
+elm_prefs_cc = executable('elm_prefs_cc',
+ elm_prefs_cc_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args,
+)
+
+elementary_run_src = [
+ 'run.c'
+]
+
+elementary_run = executable('elementary_run',
+ elementary_run_src,
+ dependencies: [elementary] + elementary_deps + elementary_pub_deps,
+ install: true,
+ c_args : package_c_args,
+)
diff --git a/src/bin/elua/meson.build b/src/bin/elua/meson.build
new file mode 100644
index 0000000000..3a4908d754
--- /dev/null
+++ b/src/bin/elua/meson.build
@@ -0,0 +1,5 @@
+executable('elua',
+ 'main.c',
+ dependencies: [eina, ecore, elua, intl],
+ install: true,
+)
diff --git a/src/bin/embryo/meson.build b/src/bin/embryo/meson.build
new file mode 100644
index 0000000000..1e8e3e3582
--- /dev/null
+++ b/src/bin/embryo/meson.build
@@ -0,0 +1,24 @@
+embryo_cc_src = [
+ 'embryo_cc_amx.h',
+ 'embryo_cc_osdefs.h',
+ 'embryo_cc_sc.h',
+ 'embryo_cc_sc1.c',
+ 'embryo_cc_sc2.c',
+ 'embryo_cc_sc3.c',
+ 'embryo_cc_sc4.c',
+ 'embryo_cc_sc5.c',
+ 'embryo_cc_sc6.c',
+ 'embryo_cc_sc7.c',
+ 'embryo_cc_scexpand.c',
+ 'embryo_cc_sclist.c',
+ 'embryo_cc_scvars.c',
+ 'embryo_cc_prefix.c',
+ 'embryo_cc_prefix.h'
+]
+
+embryo_cc = executable('embryo_cc',
+ embryo_cc_src,
+ dependencies: [embryo, m, buildsystem],
+ install: true,
+ c_args : package_c_args,
+)
diff --git a/src/bin/eolian/meson.build b/src/bin/eolian/meson.build
new file mode 100644
index 0000000000..2104676f3e
--- /dev/null
+++ b/src/bin/eolian/meson.build
@@ -0,0 +1,19 @@
+eolian_gen_src = [
+ 'main.c',
+ 'main.h',
+ 'types.c',
+ 'types.h',
+ 'headers.c',
+ 'headers.h',
+ 'sources.c',
+ 'sources.h',
+ 'docs.c',
+ 'docs.h'
+]
+
+eolian_gen = executable('eolian_gen',
+ eolian_gen_src,
+ dependencies: eolian,
+ install: true,
+ c_args : package_c_args,
+)
diff --git a/src/bin/ethumb/meson.build b/src/bin/ethumb/meson.build
new file mode 100644
index 0000000000..5e89aa3e9d
--- /dev/null
+++ b/src/bin/ethumb/meson.build
@@ -0,0 +1,6 @@
+ethumb_bin = executable('ethumb',
+ 'ethumb.c',
+ dependencies: [ecore, ethumb],
+ install: true,
+ c_args : package_c_args,
+)
diff --git a/src/bin/ethumb_client/meson.build b/src/bin/ethumb_client/meson.build
new file mode 100644
index 0000000000..243e5699af
--- /dev/null
+++ b/src/bin/ethumb_client/meson.build
@@ -0,0 +1,24 @@
+ethumbd = executable('ethumbd',
+ 'ethumbd.c',
+ install: true,
+ dependencies : [ecore, ethumb, ethumb_client, ecore, eldbus],
+ include_directories : config_dir,
+ c_args : package_c_args,
+)
+
+ethumbd_client = executable('ethumbd_client',
+ 'ethumbd_client.c',
+ install: true,
+ dependencies : [ecore, ethumb, ethumb_client, ecore],
+ include_directories : config_dir,
+ c_args : package_c_args,
+)
+
+ethumbd_slave = executable('ethumbd_slave',
+ 'ethumbd_slave.c',
+ install: true,
+ install_dir : join_paths(dir_lib, 'ethumb_client', 'utils', version_name),
+ dependencies : [ecore, ethumb, ethumb_client, ecore],
+ include_directories : config_dir,
+ c_args : package_c_args,
+)
diff --git a/src/bindings/luajit/meson.build b/src/bindings/luajit/meson.build
new file mode 100644
index 0000000000..a1dd6463ea
--- /dev/null
+++ b/src/bindings/luajit/meson.build
@@ -0,0 +1,7 @@
+install_subdir('eina',
+ install_dir : join_paths(dir_data, 'elua', 'modules')
+)
+
+install_data(files(['eo.lua', 'eolian.lua']),
+ install_dir : join_paths(dir_data, 'elua', 'modules')
+)
diff --git a/src/edje_external/elementary/meson.build b/src/edje_external/elementary/meson.build
new file mode 100644
index 0000000000..383ab77d8b
--- /dev/null
+++ b/src/edje_external/elementary/meson.build
@@ -0,0 +1,50 @@
+edje_external_elementary = [
+ 'private.h',
+ 'elm.c',
+ 'elm_actionslider.c',
+ 'elm_bg.c',
+ 'elm_bubble.c',
+ 'elm_button.c',
+ 'elm_calendar.c',
+ 'elm_check.c',
+ 'elm_clock.c',
+ 'elm_combobox.c',
+ 'elm_entry.c',
+ 'elm_fileselector.c',
+ 'elm_fileselector_button.c',
+ 'elm_fileselector_entry.c',
+ 'elm_frame.c',
+ 'elm_gengrid.c',
+ 'elm_genlist.c',
+ 'elm_hoversel.c',
+ 'elm_icon.c',
+ 'elm_index.c',
+ 'elm_label.c',
+ 'elm_list.c',
+ 'elm_map.c',
+ 'elm_multibuttonentry.c',
+ 'elm_naviframe.c',
+ 'elm_notify.c',
+ 'elm_panes.c',
+ 'elm_photocam.c',
+ 'elm_progressbar.c',
+ 'elm_radio.c',
+ 'elm_scroller.c',
+ 'elm_segment_control.c',
+ 'elm_slider.c',
+ 'elm_slideshow.c',
+ 'elm_spinner.c',
+ 'elm_thumb.c',
+ 'elm_toolbar.c',
+ 'elm_video.c',
+ 'elm_web.c'
+]
+
+ecore_systemd_mod = shared_module('elementary',
+ edje_external_elementary,
+ dependencies: [edje, elementary, elementary_deps],
+ install: true,
+ install_dir: mod_install_dir,
+ c_args : elm_package_c_args,
+)
+module_files += join_paths(mod_install_dir, 'libelementary.' + sys_mod_extension)
diff --git a/src/edje_external/emotion/meson.build b/src/edje_external/emotion/meson.build
new file mode 100644
index 0000000000..63e6ff82a0
--- /dev/null
+++ b/src/edje_external/emotion/meson.build
@@ -0,0 +1,8 @@
+ecore_systemd_mod = shared_module('emotion',
+ 'emotion.c',
+ dependencies: [edje, emotion],
+ install: true,
+ install_dir: mod_install_dir,
+ c_args : emotion_package_c_args
+)
+module_files += join_paths(mod_install_dir, 'libemotion.' + sys_mod_extension)
diff --git a/src/edje_external/meson.build b/src/edje_external/meson.build
new file mode 100644
index 0000000000..73af952374
--- /dev/null
+++ b/src/edje_external/meson.build
@@ -0,0 +1,12 @@
+edje_externals = ['emotion', 'elementary']
+
+foreach edje_external : edje_externals
+ #!?%$ยง#! custom nane for edje externals
+ if (edje_external == 'elementary')
+ mod_install_dir = join_paths(dir_lib, 'edje', 'modules', 'elm', version_name)
+ else
+ mod_install_dir = join_paths(dir_lib, 'edje', 'modules', edje_external, version_name)
+ endif
+ subdir(edje_external)
+endforeach
+
diff --git a/src/examples/ecore/meson.build b/src/examples/ecore/meson.build
new file mode 100644
index 0000000000..7233a83b82
--- /dev/null
+++ b/src/examples/ecore/meson.build
@@ -0,0 +1,76 @@
+examples = [
+ 'ecore_event_example_01',
+ 'ecore_event_example_02',
+ 'ecore_exe_example',
+ 'ecore_exe_example_child',
+ 'ecore_fd_handler_example',
+ 'ecore_file_download_example',
+ 'ecore_idler_example',
+ 'ecore_job_example',
+ 'ecore_pipe_gstreamer_example',
+ 'ecore_pipe_simple_example',
+ 'ecore_poller_example',
+ 'ecore_thread_example',
+ 'ecore_time_functions_example',
+ 'ecore_timer_example',
+ 'ecore_getopt_example'
+]
+
+gnutls = dependency('gnutls', required : false)
+if gnutls.found()
+examples += ['ecore_fd_handler_gnutls_example']
+endif
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: [eina, ecore, gstreamer, ecore_file, gnutls])
+endforeach
+
+examples = [
+# 'ecore_audio_custom',
+# 'ecore_audio_playback',
+# 'ecore_audio_to_ogg',
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: [eina, ecore, ecore_audio])
+endforeach
+
+
+examples = [
+ 'ecore_con_client_example',
+ 'ecore_con_client_simple_example',
+ 'ecore_con_lookup_example',
+ 'ecore_con_server_example',
+ 'ecore_con_server_http_example',
+ 'ecore_con_server_simple_example',
+ 'ecore_con_url_cookies_example',
+ 'ecore_con_url_download_example',
+ 'ecore_con_url_headers_example',
+ 'ecore_client_bench',
+ 'ecore_server_bench',
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: [eina, ecore, ecore_con])
+endforeach
+
+examples = [
+ 'ecore_animator_example',
+ 'ecore_evas_basics_example',
+ 'ecore_evas_buffer_example_01',
+ 'ecore_evas_buffer_example_02',
+ 'ecore_evas_callbacks',
+ 'ecore_evas_ews_example',
+ 'ecore_evas_object_example',
+ 'ecore_evas_window_sizes_example',
+]
+
+foreach example : examples
+ executable(example, example + '.c',
+ dependencies: [eina, ecore_evas],
+ c_args : [
+ '-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"']
+ )
+endforeach
+
+# 'ecore_imf_example',
diff --git a/src/examples/ecore_avahi/meson.build b/src/examples/ecore_avahi/meson.build
new file mode 100644
index 0000000000..3ab470da1c
--- /dev/null
+++ b/src/examples/ecore_avahi/meson.build
@@ -0,0 +1,8 @@
+examples = [
+ 'ecore_avahi_browse_example',
+ 'ecore_avahi_example',
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: [ecore_avahi_deps, ecore_avahi])
+endforeach
diff --git a/src/examples/edje/meson.build b/src/examples/edje/meson.build
new file mode 100644
index 0000000000..49e7e53c73
--- /dev/null
+++ b/src/examples/edje/meson.build
@@ -0,0 +1,135 @@
+edc_files = [
+ 'animations.edc',
+ 'animations2.edc',
+ 'basic.edc',
+ 'basic2.edc',
+ 'bezier-transition-example.edc',
+ 'box.edc',
+ 'box_example.edc',
+ 'color-class.edc',
+ 'drag.edc',
+ 'dynamic_multiseat.edc',
+ 'edje-group.edc',
+ 'edje-nested.edc',
+ 'edje-threshold.edc',
+ 'edje_example.edc',
+ 'embryo_custom_state.edc',
+ 'embryo_pong.edc',
+ 'embryo_run_program.edc',
+ 'embryo_set_state.edc',
+ 'embryo_set_state_anim.edc',
+ 'embryo_set_text.edc',
+ 'embryo_timer.edc',
+ 'embryo_tween_anim.edc',
+ 'entry.edc',
+ 'external_elm_anchorblock.edc',
+ 'external_elm_button.edc',
+ 'external_elm_check.edc',
+ 'external_elm_panes.edc',
+ 'external_emotion_elm.edc',
+ 'focus.edc',
+ 'lua_script.edc',
+ 'messages_echo.edc',
+ 'multiseat.edc',
+ 'multiseat_custom_names.edc',
+ 'multiseat_filter.edc',
+ 'perspective.edc',
+ 'signals-messages.edc',
+ 'signalsBubble.edc',
+ 'sigtest.edc',
+ 'svg.edc',
+ 'swallow.edc',
+ 'table.edc',
+ 'text.edc',
+ 'textblock-hyphen.edc',
+ 'toggle_using_filter.edc'
+]
+
+if (get_option('physics'))
+ edc_files += [
+ 'physics_3d.edc',
+ 'physics_actions.edc',
+ 'physics_backcull.edc',
+ 'physics_basic.edc',
+ 'physics_complex.edc',
+ 'physics_soft_bodies.edc'
+ ]
+endif
+
+themes = []
+
+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
+
+codegen = custom_target('edje_cc_codegen_edc',
+ input : 'codegen.edc',
+ 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, )
+
+themes += custom_target('edje_codegen_codegen.edj',
+ input : codegen,
+ output : ['@BASENAME@_example_generated.c', '@BASENAME@_example_generated.h'],
+ command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_codegen.full_path(),
+ '--prefix=codegen_example', '@INPUT@',
+ 'example_group', '@OUTPUT0@', '@OUTPUT1@'],
+ depends : [edje_codegen, themes])
+
+edje_examples = [
+ 'animations2',
+ 'edje-animations',
+ 'edje-basic',
+ 'edje-basic2',
+ 'edje-box',
+ 'edje-box2',
+ 'edje-codegen-example',
+ 'edje-color-class',
+ 'edje-drag',
+ 'edje-dynamic-multiseat',
+ 'edje-edit-part-box',
+ 'edje-entry',
+ 'edje-focus',
+ 'edje-multiseat',
+ 'edje-multiseat-custom-names',
+ 'edje-multiseat-filter',
+ 'edje-multisense',
+ 'edje-perspective',
+ 'edje-signals-messages',
+ 'edje-swallow',
+ 'edje-swallow2',
+ 'edje-table',
+ 'edje-text',
+ 'edje-textblock-hyphenation',
+ 'edje_example',
+ 'signals2',
+ 'sigtest',
+ 'svg-test'
+]
+
+foreach edje_example : edje_examples
+ executable(edje_example,
+ [edje_example + '.c'] + themes,
+ dependencies: [edje, ecore_evas],
+ )
+endforeach
diff --git a/src/examples/eet/meson.build b/src/examples/eet/meson.build
new file mode 100644
index 0000000000..98a1120a44
--- /dev/null
+++ b/src/examples/eet/meson.build
@@ -0,0 +1,13 @@
+examples = [
+ 'eet-basic',
+ 'eet-file',
+ 'eet-data-simple',
+ 'eet-data-nested',
+ 'eet-data-file_descriptor_01',
+ 'eet-data-file_descriptor_02',
+ 'eet-data-cipher_decipher'
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: eet)
+endforeach
diff --git a/src/examples/eina/meson.build b/src/examples/eina/meson.build
new file mode 100644
index 0000000000..78aa46a290
--- /dev/null
+++ b/src/examples/eina/meson.build
@@ -0,0 +1,47 @@
+examples = [
+'eina_accessor_01',
+'eina_array_01',
+'eina_array_02',
+'eina_error_01',
+'eina_file_01',
+'eina_file_02',
+'eina_hash_01',
+'eina_hash_02',
+'eina_hash_03',
+'eina_hash_04',
+'eina_hash_05',
+'eina_hash_06',
+'eina_hash_07',
+'eina_hash_08',
+'eina_iterator_01',
+'eina_list_01',
+'eina_list_02',
+'eina_list_03',
+'eina_list_04',
+'eina_log_01',
+'eina_log_02',
+'eina_log_03',
+'eina_inlist_01',
+'eina_inlist_02',
+'eina_inlist_03',
+'eina_str_01',
+'eina_strbuf_01',
+'eina_stringshare_01',
+'eina_tmpstr_01',
+#that examples is using ecore evas ... WTF
+#'eina_tiler_01',
+'eina_simple_xml_parser_01',
+'eina_value_01',
+'eina_value_02',
+'eina_value_03',
+'eina_inarray_01',
+'eina_inarray_02',
+'eina_inarray_03',
+'eina_magic_01',
+'eina_xattr_01',
+'eina_xattr_02'
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: eina)
+endforeach
diff --git a/src/examples/eio/meson.build b/src/examples/eio/meson.build
new file mode 100644
index 0000000000..6524a75840
--- /dev/null
+++ b/src/examples/eio/meson.build
@@ -0,0 +1,15 @@
+files = [
+ 'efl_io_manager_ls',
+ 'efl_io_manager_open',
+ 'efl_io_manager_open_multi',
+ 'eio_file_copy',
+ 'eio_file_ls',
+ 'eio_sentry'
+]
+
+foreach file : files
+ executable(file,
+ file + '.c',
+ dependencies: [ecore, eio],
+ )
+endforeach \ No newline at end of file
diff --git a/src/examples/eldbus/meson.build b/src/examples/eldbus/meson.build
new file mode 100644
index 0000000000..db4dadafcb
--- /dev/null
+++ b/src/examples/eldbus/meson.build
@@ -0,0 +1,17 @@
+examples = [
+ 'connman-list-services',
+ 'ofono-dial',
+ 'banshee',
+ 'complex-types',
+ 'complex-types-server',
+ 'server',
+ 'client',
+ 'simple-signal-emit',
+ 'complex-types-client-eina-value',
+ 'connect-address',
+ 'dbusmodel',
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: [eldbus, ecore])
+endforeach
diff --git a/src/examples/emile/meson.build b/src/examples/emile/meson.build
new file mode 100644
index 0000000000..c628f08ccc
--- /dev/null
+++ b/src/examples/emile/meson.build
@@ -0,0 +1,7 @@
+examples = [
+ 'emile_base64'
+]
+
+foreach example : examples
+ executable(example, example + '.c', dependencies: emile)
+endforeach
diff --git a/src/examples/emotion/meson.build b/src/examples/emotion/meson.build
new file mode 100644
index 0000000000..3a7b46b055
--- /dev/null
+++ b/src/examples/emotion/meson.build
@@ -0,0 +1,14 @@
+files = [
+ 'emotion_basic_example',
+ 'emotion_border_example',
+ 'emotion_generic_example',
+ 'emotion_generic_subtitle_example',
+ 'emotion_signals_example',
+]
+
+foreach file : files
+ executable(file,
+ file + '.c',
+ dependencies: [emotion, evas, ecore_evas, ecore],
+ )
+endforeach \ No newline at end of file
diff --git a/src/examples/ethumb_client/meson.build b/src/examples/ethumb_client/meson.build
new file mode 100644
index 0000000000..d6456027a2
--- /dev/null
+++ b/src/examples/ethumb_client/meson.build
@@ -0,0 +1,10 @@
+files = [
+ 'ethumb_dbus'
+]
+
+foreach file : files
+ executable(file,
+ file + '.c',
+ dependencies: [ethumb, ethumb_client, ecore, eina],
+ )
+endforeach \ No newline at end of file
diff --git a/src/examples/evas/meson.build b/src/examples/evas/meson.build
new file mode 100644
index 0000000000..c07587dec6
--- /dev/null
+++ b/src/examples/evas/meson.build
@@ -0,0 +1,57 @@
+examples = [
+ 'evas-3d-aabb',
+ 'evas-3d-blending',
+ 'evas-3d-colorpick',
+ 'evas-3d-cube2',
+ 'evas-3d-cube',
+ 'evas-3d-cube-rotate',
+ 'evas-3d-eet',
+ 'evas-3d-fog',
+ 'evas-3d-frustum',
+ 'evas-3d-hull',
+ 'evas-3d-md2',
+ 'evas-3d-mmap-set',
+ 'evas-3d-obj',
+ 'evas-3d-parallax-occlusion',
+ 'evas-3d-pick',
+ 'evas-3d-ply',
+ 'evas-3d-proxy',
+ 'evas-3d-shadows',
+ 'evas-3d-static-lod',
+ #'evas-aspect-hints',
+ 'evas-box',
+ 'evas-buffer-simple',
+ 'evas-event-filter',
+ 'evas-events',
+ 'evas-gl',
+ 'evas-hints',
+ 'evas-images2',
+ 'evas-images3',
+ 'evas-images4',
+ 'evas-images5',
+ 'evas-images',
+ 'evas-init-shutdown',
+ 'evas-map-aa',
+ 'evas-map-aa-eo',
+ 'evas-map-utils',
+ 'evas-map-utils-eo',
+ 'evas-multiseat-events',
+ 'evas-multi-touch',
+ 'evas-object-manipulation',
+ 'evas-object-manipulation-eo',
+ 'evas-smart-interface',
+ 'evas-smart-object',
+ 'evas-stacking',
+ 'evas-table',
+ 'evas-textblock-obstacles',
+ 'evas-text',
+ 'evas-transparent',
+ 'evas-vg-batman',
+ 'evas-vg-simple',
+]
+
+foreach example : examples
+ executable(example, example + '.c',
+ dependencies: [eina, ecore_evas, ecore_file, m],
+ c_args : ['-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"'])
+endforeach
diff --git a/src/generic/emotion/meson.build b/src/generic/emotion/meson.build
new file mode 100644
index 0000000000..58cd5294aa
--- /dev/null
+++ b/src/generic/emotion/meson.build
@@ -0,0 +1,8 @@
+generic_loaders = ['vlc']
+
+foreach loader : generic_loaders
+ if get_option('emotion-generic-loaders-disabler').contains(loader) == false
+ subdir(loader)
+ endif
+endforeach
+
diff --git a/src/generic/emotion/vlc/meson.build b/src/generic/emotion/vlc/meson.build
new file mode 100644
index 0000000000..b21f4a16df
--- /dev/null
+++ b/src/generic/emotion/vlc/meson.build
@@ -0,0 +1,8 @@
+vlc = dependency('libvlc')
+
+executable('vlc',
+ 'emotion_generic_vlc.c',
+ dependencies: [emotion_generic, eina, ecore, rt, vlc],
+ install: true,
+ install_dir: join_paths(dir_lib, 'emotion', 'generic_players', version_name)
+)
diff --git a/src/generic/evas/common/meson.build b/src/generic/evas/common/meson.build
new file mode 100644
index 0000000000..b90705e4c3
--- /dev/null
+++ b/src/generic/evas/common/meson.build
@@ -0,0 +1,6 @@
+generic_src = files([
+ 'shmfile.c',
+ 'shmfile.h',
+ 'timeout.c',
+ 'timeout.h',
+])
diff --git a/src/generic/evas/gst/meson.build b/src/generic/evas/gst/meson.build
new file mode 100644
index 0000000000..9689aee80a
--- /dev/null
+++ b/src/generic/evas/gst/meson.build
@@ -0,0 +1,14 @@
+
+# gstreamer 0.1 support
+#generic_deps = [dependency('gstreamer')]
+#generic_src = files([
+# 'main_0_10.c'
+#])
+
+
+generic_src = files([
+ 'main.c'
+])
+
+generic_deps = [dependency('gstreamer-1.0')]
+generic_support = ['264','3g2','3gp','3gp2','3gpp','3gpp2','3p2','asf','avi','bdm','bdmv','clpi','cpi','dv','fla','flv','m1v','m2t','m2v','m4v','mkv','mov','mp2','mp2ts','mp4','mpe','mpeg','mpg','mpl','mpls','mts','mxf','nut','nuv','ogg','ogm','ogv','qt','rm','rmj','rmm','rms','rmx','rmvb','rv','swf','ts','webm','weba','wmv'] \ No newline at end of file
diff --git a/src/generic/evas/meson.build b/src/generic/evas/meson.build
new file mode 100644
index 0000000000..80a679b230
--- /dev/null
+++ b/src/generic/evas/meson.build
@@ -0,0 +1,42 @@
+generic_loaders = ['gst', 'pdf',
+'ps',
+'raw',
+'svg',
+'xcf']
+
+generic_src = []
+generic_deps = []
+
+subdir('common')
+
+common = static_library('evas_loader_common',
+ generic_src,
+ include_directories : config_dir,
+ dependencies: [generic_deps, rt],
+)
+
+foreach loader : generic_loaders
+ generic_src = []
+ generic_deps = []
+ generic_support = []
+
+ if get_option('evas-loaders-disabler').contains(loader) == false
+ subdir(loader)
+
+ tmp = shared_module('image_loader.'+loader,
+ generic_src,
+ include_directories : config_dir + [include_directories('common')],
+ link_with : common,
+ dependencies: [eina, generic_deps],
+ name_prefix : 'evas_',
+ install_dir : join_paths(dir_lib, 'evas', 'utils'),
+ install : true,
+ )
+
+ set_variable(loader, tmp)
+ mod = join_paths(dir_lib, 'evas', 'utils', 'evas_image_loader.'+loader+'.'+sys_mod_extension)
+ evas_loader_map += [[mod, generic_support]]
+ else
+ message('Image loader '+loader+' disabled')
+ endif
+endforeach
diff --git a/src/generic/evas/pdf/meson.build b/src/generic/evas/pdf/meson.build
new file mode 100644
index 0000000000..941918104b
--- /dev/null
+++ b/src/generic/evas/pdf/meson.build
@@ -0,0 +1,14 @@
+generic_src = files([
+ 'main.cpp'
+])
+
+generic_deps = [dependency('poppler-cpp')]
+generic_support = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
+
+install_data('evas_generic_pdf_loader.libreoffice',
+ install_dir : join_paths(dir_lib, 'evas', 'utils')
+)
+
+generic_pdf_loader_types = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
+
+meson.add_install_script( join_paths('..','..','..','..','meson','evas_loader_conf.sh'), join_paths(dir_lib, 'evas', 'utils', 'evas_generic_pdf_loader.libreoffice'), generic_pdf_loader_types) \ No newline at end of file
diff --git a/src/generic/evas/ps/meson.build b/src/generic/evas/ps/meson.build
new file mode 100644
index 0000000000..ca52781307
--- /dev/null
+++ b/src/generic/evas/ps/meson.build
@@ -0,0 +1,5 @@
+generic_src = files([
+ 'main.c'
+])
+
+generic_deps = [dependency('libspectre')]
diff --git a/src/generic/evas/raw/meson.build b/src/generic/evas/raw/meson.build
new file mode 100644
index 0000000000..6843d01e90
--- /dev/null
+++ b/src/generic/evas/raw/meson.build
@@ -0,0 +1,6 @@
+generic_src = files([
+ 'main.c'
+])
+
+generic_deps = [dependency('libraw')]
+generic_support = ['arw','cr2','crw','dcr','dng','k25','kdc','erf','mrw','nef','nrf','nrw','orf','rw2','pef','raf','sr2','srf','x3f'] \ No newline at end of file
diff --git a/src/generic/evas/svg/meson.build b/src/generic/evas/svg/meson.build
new file mode 100644
index 0000000000..4e39e74ee5
--- /dev/null
+++ b/src/generic/evas/svg/meson.build
@@ -0,0 +1,12 @@
+generic_src = files([
+ 'main.c'
+])
+
+rsvg = dependency('librsvg-2.0')
+
+if rsvg.version() >= '2.36.0'
+ config_h.set('HAVE_SVG_2_36', '1')
+endif
+
+generic_deps = [rsvg]
+generic_support = ['svgz', 'svg.gz']
diff --git a/src/generic/evas/xcf/meson.build b/src/generic/evas/xcf/meson.build
new file mode 100644
index 0000000000..0f5fb208c5
--- /dev/null
+++ b/src/generic/evas/xcf/meson.build
@@ -0,0 +1,8 @@
+generic_src = files([
+ 'common.h',
+ 'main.c',
+ 'pixelfuncs.c'
+])
+
+generic_deps = [dependency('zlib')]
+generic_support = ['xcf.gz'] \ No newline at end of file
diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build
new file mode 100644
index 0000000000..f5872ffb76
--- /dev/null
+++ b/src/lib/ecore/meson.build
@@ -0,0 +1,222 @@
+ecore_deps = [intl]
+ecore_pub_deps = [eina, eo, efl]
+
+pub_legacy_eo_files = [
+ 'ecore_exe.eo',
+ 'ecore_event_message.eo',
+ 'ecore_event_message_handler.eo',
+ 'efl_loop_timer.eo'
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_app.eo',
+ 'efl_loop.eo',
+ 'efl_loop_consumer.eo',
+ 'efl_loop_fd.eo',
+ 'efl_loop_handler.eo',
+ 'efl_loop_message.eo',
+ 'efl_loop_message_handler.eo',
+ 'efl_exe.eo',
+ 'efl_thread.eo',
+ 'efl_threadio.eo',
+ 'efl_appthread.eo',
+ 'efl_task.eo',
+ 'efl_io_closer_fd.eo',
+ 'efl_io_positioner_fd.eo',
+ 'efl_io_reader_fd.eo',
+ 'efl_io_sizer_fd.eo',
+ 'efl_io_writer_fd.eo',
+ 'efl_io_stdin.eo',
+ 'efl_io_stdout.eo',
+ 'efl_io_stderr.eo',
+ 'efl_io_file.eo',
+ 'efl_io_copier.eo',
+ 'efl_io_buffered_stream.eo',
+ 'efl_interpolator.eo',
+ 'efl_interpolator_linear.eo',
+ 'efl_interpolator_accelerate.eo',
+ 'efl_interpolator_decelerate.eo',
+ 'efl_interpolator_sinusoidal.eo',
+ 'efl_interpolator_divisor.eo',
+ 'efl_interpolator_bounce.eo',
+ 'efl_interpolator_spring.eo',
+ 'efl_interpolator_cubic_bezier.eo',
+ 'efl_loop_message_future_handler.eo',
+ 'efl_loop_message_future.eo',
+ 'efl_model_item.eo',
+ 'efl_model_container.eo',
+ 'efl_model_container_item.eo',
+ 'efl_model_composite_boolean.eo',
+ 'efl_model_composite_boolean_children.eo',
+ 'efl_model_composite_selection.eo',
+ 'efl_model_composite_selection_children.eo',
+ 'efl_model_composite.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
+
+# special handling, because this is already eo API and legacy API
+pub_eo_files += ['efl_loop_timer.eo']
+
+pub_eo_types_files = []
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+ecore_header_src = [
+ 'Ecore.h',
+ 'Ecore_Common.h',
+ 'Ecore_Legacy.h',
+ 'Ecore_Eo.h',
+ 'Efl_Core.h',
+ 'efl_general.h',
+ 'Ecore_Getopt.h'
+]
+
+ecore_src = [
+ 'efl_app.c',
+ 'ecore.c',
+ 'ecore_alloc.c',
+ 'ecore_anim.c',
+ 'ecore_app.c',
+ 'ecore_events.c',
+ 'ecore_getopt.c',
+ 'ecore_glib.c',
+ 'ecore_idle_enterer.c',
+ 'ecore_idle_exiter.c',
+ 'ecore_idler.c',
+ 'ecore_job.c',
+ 'ecore_main.c',
+ 'ecore_event_message.c',
+ 'ecore_event_message_handler.c',
+ 'efl_loop.c',
+ 'efl_loop_consumer.c',
+ 'efl_loop_fd.c',
+ 'efl_loop_handler.c',
+ 'efl_loop_message.c',
+ 'efl_loop_message_future.c',
+ 'efl_loop_message_handler.c',
+ 'efl_loop_message_future_handler.c',
+ 'efl_task.c',
+ 'efl_io_closer_fd.c',
+ 'efl_io_positioner_fd.c',
+ 'efl_io_reader_fd.c',
+ 'efl_io_sizer_fd.c',
+ 'efl_io_writer_fd.c',
+ 'efl_io_stdin.c',
+ 'efl_io_stdout.c',
+ 'efl_io_stderr.c',
+ 'efl_io_file.c',
+ 'efl_io_copier.c',
+ 'efl_io_buffered_stream.c',
+ 'efl_model_item.c',
+ 'efl_model_container.c',
+ 'efl_model_container_item.c',
+ 'efl_model_container_private.h',
+ 'efl_model_composite.c',
+ 'efl_model_composite_boolean.c',
+ 'efl_model_composite_selection.c',
+ 'efl_model_accessor_view.c',
+ 'efl_model_accessor_view_private.h',
+ 'efl_interpolator.c',
+ 'efl_interpolator_linear.c',
+ 'efl_interpolator_accelerate.c',
+ 'efl_interpolator_decelerate.c',
+ 'efl_interpolator_sinusoidal.c',
+ 'efl_interpolator_divisor.c',
+ 'efl_interpolator_bounce.c',
+ 'efl_interpolator_spring.c',
+ 'efl_interpolator_cubic_bezier.c',
+ 'ecore_main_timechanges.c',
+ 'ecore_pipe.c',
+ 'ecore_poller.c',
+ 'ecore_time.c',
+ 'ecore_timer.c',
+ 'ecore_thread.c',
+ 'ecore_throttle.c',
+ 'ecore_exe.c',
+ 'ecore_exe_private.h',
+ 'ecore_private.h',
+ 'ecore_internal.h',
+ 'ecore_main_common.h'
+]
+
+if target_machine.system() == 'windows'
+ #nothing for now ... needs testing
+else
+ ecore_src += ['ecore_signal.c', 'ecore_exe_posix.c']
+endif
+
+if get_option('glib') == true
+ ecore_deps += dependency('glib-2.0')
+ ecore_deps += dependency('gthread-2.0')
+ config_h.set('GLIB_INTEGRATION_ALWAYS', '1')
+ config_h.set('HAVE_GLIB', '1')
+endif
+
+if get_option('g-mainloop') == true
+ config_h.set('USE_G_MAIN_LOOP', '1')
+endif
+
+if get_option('gstreamer') == true
+ gstreamer = dependency('gstreamer-1.0')
+ ecore_deps += gstreamer
+endif
+
+if get_option('systemd') == true
+ ecore_deps += systemd
+endif
+
+ecore_lib = library('ecore',
+ ecore_src, pub_eo_file_target,
+ dependencies: ecore_pub_deps + [m, buildsystem, ecore_deps],
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_pub_deps,
+)
+
+eolian_ecore_dir = join_paths(eolian_include_dir, package_version_name)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_header_src,
+ install_dir : dir_package_include,
+)
+
+#TODO:
+# HAVE_TIZEN_CONFIGUREATION_MANAGER
+# avahi
diff --git a/src/lib/ecore_audio/meson.build b/src/lib/ecore_audio/meson.build
new file mode 100644
index 0000000000..099f8454db
--- /dev/null
+++ b/src/lib/ecore_audio/meson.build
@@ -0,0 +1,92 @@
+ecore_audio_deps = [ecore]
+ecore_audio_pub_deps = [eina, eo]
+
+pub_eo_files = [
+ 'ecore_audio.eo',
+ 'ecore_audio_in.eo',
+ 'ecore_audio_out.eo',
+ 'ecore_audio_in_sndfile.eo',
+ 'ecore_audio_out_sndfile.eo',
+ 'ecore_audio_out_pulse.eo',
+ 'ecore_audio_in_tone.eo',
+ 'ecore_audio_out_wasapi.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
+
+pub_eo_types_files = []
+
+ecore_audio_header_src = [
+ 'Ecore_Audio.h',
+ 'ecore_audio_obj.h',
+ 'ecore_audio_obj_in.h',
+ 'ecore_audio_obj_out.h',
+ 'ecore_audio_obj_in_tone.h',
+ 'ecore_audio_protected.h',
+ 'ecore_audio_obj_out_pulse.h',
+ 'ecore_audio_obj_in_sndfile.h',
+ 'ecore_audio_obj_out_sndfile.h',
+ 'ecore_audio_obj_out_wasapi.h'
+]
+
+ecore_audio_src = [
+ 'ecore_audio.c',
+ 'ecore_audio_obj.c',
+ 'ecore_audio_obj_in.c',
+ 'ecore_audio_obj_out.c',
+ 'ecore_audio_obj_in_tone.c',
+ 'ecore_audio_private.h'
+]
+
+ecore_audio_src += [
+ 'ecore_audio_obj_in_sndfile.c',
+ 'ecore_audio_obj_out_sndfile.c',
+ 'ecore_audio_sndfile_vio.c'
+]
+
+ecore_audio_deps += dependency('sndfile')
+config_h.set('HAVE_SNDFILE', '1')
+
+if get_option('pulseaudio')
+ ecore_audio_deps += dependency('libpulse')
+
+ ecore_audio_src += [
+ 'ecore_audio_pulse_ml.c',
+ 'ecore_audio_obj_out_pulse.c'
+ ]
+
+ config_h.set('HAVE_PULSE', '1')
+endif
+
+ecore_audio_lib = library('ecore_audio',
+ ecore_audio_src, pub_eo_file_target,
+ dependencies: ecore_audio_pub_deps + [m] + ecore_audio_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_audio = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_audio_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_audio_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_audio_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_avahi/meson.build b/src/lib/ecore_avahi/meson.build
new file mode 100644
index 0000000000..40e037850a
--- /dev/null
+++ b/src/lib/ecore_avahi/meson.build
@@ -0,0 +1,26 @@
+ecore_avahi_deps = []
+ecore_avahi_pub_deps = [eina, ecore]
+
+ecore_avahi_src = ['ecore_avahi.c']
+ecore_avahi_header_src = ['Ecore_Avahi.h']
+
+ecore_avahi_deps += dependency('avahi-client')
+config_h.set('HAVE_AVAHI', '1')
+
+ecore_avahi_lib = library('ecore_avahi',
+ ecore_avahi_src,
+ dependencies: [m] + ecore_avahi_deps + ecore_avahi_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_avahi = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_avahi_lib,
+ dependencies: ecore_avahi_pub_deps,
+)
+
+install_headers(ecore_avahi_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_buffer/meson.build b/src/lib/ecore_buffer/meson.build
new file mode 100644
index 0000000000..4cf3fc65da
--- /dev/null
+++ b/src/lib/ecore_buffer/meson.build
@@ -0,0 +1,37 @@
+ecore_buffer_deps = [dependency('wayland-client'), dependency('wayland-server'), ecore]
+ecore_buffer_pub_deps = [eina]
+
+ecore_buffer_header_src = [
+ 'Ecore_Buffer.h',
+ 'Ecore_Buffer_Queue.h'
+]
+
+ecore_buffer_src = [
+ 'bq_mgr_protocol.c',
+ 'buffer_queue.c',
+ 'shared_buffer.c',
+ 'ecore_buffer.c',
+ 'ecore_buffer_queue_main.c',
+ 'ecore_buffer_con.c',
+ 'ecore_buffer_provider.c',
+ 'ecore_buffer_consumer.c'
+]
+
+ecore_buffer_lib = library('ecore_buffer',
+ ecore_buffer_src, pub_eo_file_target,
+ dependencies: ecore_buffer_pub_deps + ecore_buffer_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_buffer = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_buffer_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_buffer_pub_deps,
+)
+
+install_headers(ecore_buffer_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_cocoa/meson.build b/src/lib/ecore_cocoa/meson.build
new file mode 100644
index 0000000000..b7aca40031
--- /dev/null
+++ b/src/lib/ecore_cocoa/meson.build
@@ -0,0 +1,48 @@
+ecore_cocoa_deps = [eina, ecore_input, ecore, emile, eet]
+ecore_cocoa_pub_deps = [eina]
+pub_eo_file_target = []
+
+ecore_cocoa_header_src = [
+ 'Ecore_Cocoa.h'
+]
+
+ecore_cocoa_src = [
+ 'ecore_cocoa.m',
+ 'ecore_cocoa_keys.h',
+ 'ecore_cocoa_window.h',
+ 'ecore_cocoa_window.m',
+ 'ecore_cocoa_cnp.m',
+ 'ecore_cocoa_app.m',
+ 'ecore_cocoa_app.h',
+ 'ecore_cocoa_private.h'
+]
+
+evas_include_directories = [
+ include_directories(join_paths('..', 'evas')),
+ include_directories(join_paths('..', 'evas','canvas')),
+ include_directories(join_paths('..', 'evas','common')),
+ include_directories(join_paths('..', 'evas','common3d')),
+ include_directories(join_paths('..', 'evas','common3d', 'save_load')),
+ include_directories(join_paths('..', 'evas','include')),
+ include_directories(join_paths('..', 'evas','filters'))
+]
+
+ecore_cocoa_lib = library('ecore_cocoa',
+ ecore_cocoa_src, pub_eo_file_target,
+ dependencies: ecore_cocoa_deps + ecore_cocoa_pub_deps,
+ include_directories : config_dir + evas_include_directories,
+ link_args : ['-lobjc', '-framework', 'CoreFoundation', '-framework', 'cocoa', '-Wl,-U,_evas_textblock_text_markup_to_utf8'],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_cocoa = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_cocoa_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_cocoa_pub_deps,
+)
+
+install_headers(ecore_cocoa_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build
new file mode 100644
index 0000000000..f60e0a7185
--- /dev/null
+++ b/src/lib/ecore_con/meson.build
@@ -0,0 +1,220 @@
+ecore_con_deps = []
+ecore_con_pub_deps = [eina, eo, efl, ecore]
+
+if target_machine.system() == 'windows' or target_machine.system() == 'cygwin'
+ ipv6 = cc.compiles('''
+ #include <ws2tcpip.h>
+ struct ipv6_mreq tmp;
+ ''')
+else
+ ipv6 = cc.compiles('''
+ #include <netinet/in.h>
+ struct ipv6_mreq tmp;
+ ''')
+endif
+
+if ipv6
+ config_h.set('HAVE_IPV6', 1)
+endif
+
+pub_legacy_eo_files = [
+ 'ecore_con_eet_base.eo',
+ 'ecore_con_eet_server_obj.eo',
+ 'ecore_con_eet_client_obj.eo'
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_net_socket.eo',
+ 'efl_net_socket_simple.eo',
+ 'efl_net_socket_fd.eo',
+ 'efl_net_socket_tcp.eo',
+ 'efl_net_socket_udp.eo',
+ 'efl_net_dialer.eo',
+ 'efl_net_dialer_simple.eo',
+ 'efl_net_dialer_tcp.eo',
+ 'efl_net_dialer_udp.eo',
+ 'efl_net_dialer_http.eo',
+ 'efl_net_dialer_websocket.eo',
+ 'efl_net_server.eo',
+ 'efl_net_server_simple.eo',
+ 'efl_net_server_fd.eo',
+ 'efl_net_server_ip.eo',
+ 'efl_net_server_tcp.eo',
+ 'efl_net_server_udp.eo',
+ 'efl_net_server_udp_client.eo',
+ 'efl_net_socket_ssl.eo',
+ 'efl_net_ssl_context.eo',
+ 'efl_net_dialer_ssl.eo',
+ 'efl_net_server_ssl.eo',
+ 'efl_net_control_access_point.eo',
+ 'efl_net_control_technology.eo',
+ 'efl_net_control_manager.eo',
+ 'efl_net_session.eo',
+ 'efl_net_ip_address.eo',
+]
+
+if target_machine.system() == 'windows'
+pub_eo_files += [
+ 'efl_net_socket_windows.eo',
+ 'efl_net_dialer_windows.eo',
+ 'efl_net_server_windows.eo'
+]
+else
+pub_eo_files += [
+ 'efl_net_socket_unix.eo',
+ 'efl_net_dialer_unix.eo',
+ 'efl_net_server_unix.eo'
+]
+endif
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'efl_net_types.eot',
+ 'efl_net_http_types.eot',
+ 'efl_net_ssl_types.eot'
+]
+
+foreach eo_file : pub_eo_types_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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+ecore_con_header_src = [
+ 'Ecore_Con.h',
+ 'Efl_Net.h',
+ 'Ecore_Con_Eet.h',
+ 'Ecore_Con_Eet_Legacy.h',
+ 'Ecore_Con_Eet_Eo.h'
+]
+
+ecore_con_src = [
+ 'ecore_con_alloc.c',
+ 'ecore_con.c',
+ 'ecore_con_proxy_helper.c',
+ 'ecore_con_legacy.c',
+ 'ecore_con_eet.c',
+ 'ecore_con_socks.c',
+ 'ecore_con_url.c',
+ 'ecore_con_url_curl.c',
+ 'ecore_con_url_curl.h',
+ 'ecore_con_private.h',
+ 'efl_net_socket.c',
+ 'efl_net_socket_simple.c',
+ 'efl_net_socket_fd.c',
+ 'efl_net_socket_tcp.c',
+ 'efl_net_socket_udp.c',
+ 'efl_net_dialer.c',
+ 'efl_net_dialer_simple.c',
+ 'efl_net_dialer_tcp.c',
+ 'efl_net_dialer_udp.c',
+ 'efl_net_dialer_http.c',
+ 'efl_net_dialer_websocket.c',
+ 'efl_net_server.c',
+ 'efl_net_server_simple.c',
+ 'efl_net_server_fd.c',
+ 'efl_net_server_ip.c',
+ 'efl_net_server_tcp.c',
+ 'efl_net_server_udp.c',
+ 'efl_net_server_udp_client.c',
+ 'efl_net_socket_ssl.c',
+ 'efl_net_ssl_context.c',
+ 'efl_net_dialer_ssl.c',
+ 'efl_net_server_ssl.c',
+ 'ecore_con_local.c',
+ 'efl_net_ip_address.c'
+]
+
+if target_machine.system() == 'windows'
+ ecore_con_src += [
+ 'efl_net_socket_windows.c',
+ 'efl_net_dialer_windows.c',
+ 'efl_net_server_windows.c'
+ ]
+else
+ ecore_con_src += [
+ 'efl_net_socket_unix.c',
+ 'efl_net_dialer_unix.c',
+ 'efl_net_server_unix.c'
+ ]
+endif
+
+if get_option('network-backend') == 'none'
+ ecore_con_src += [
+ 'efl_net_control_access_point-none.c',
+ 'efl_net_control_technology-none.c',
+ 'efl_net_control-none.c',
+ 'efl_net_session-none.c'
+ ]
+else
+ ecore_con_src += [
+ 'efl_net-connman.h',
+ 'efl_net-connman.c',
+ 'efl_net_control_access_point-connman.c',
+ 'efl_net_control_technology-connman.c',
+ 'efl_net_control-connman.c',
+ 'efl_net_session-connman.c'
+ ]
+ ecore_con_deps += eldbus
+endif
+
+ecore_con_deps += crypto
+
+ecore_con_lib = library('ecore_con',
+ ecore_con_src, pub_eo_file_target,
+ dependencies: [ecore, ecore_con_deps, http_parser, eldbus, eet, systemd, buildsystem, dl],
+ include_directories : config_dir,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore_con = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_con_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_con_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files + pub_legacy_eo_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_con_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_drm/meson.build b/src/lib/ecore_drm/meson.build
new file mode 100644
index 0000000000..9bc62a7be3
--- /dev/null
+++ b/src/lib/ecore_drm/meson.build
@@ -0,0 +1,39 @@
+ecore_drm_deps = [eeze, eldbus, ecore_input, ecore, eo, efl, eina, m]
+ecore_drm_pub_deps = [dependency('libinput', version: '>= 1.6.0'), dependency('libdrm', version: '>= 2.4'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.3.0'), dependency('gbm')]
+
+ecore_drm_src = [
+ 'ecore_drm_sprites.c',
+ 'ecore_drm_fb.c',
+ 'ecore_drm_evdev.c',
+ 'ecore_drm_inputs.c',
+ 'ecore_drm_output.c',
+ 'ecore_drm_tty.c',
+ 'ecore_drm_device.c',
+ 'ecore_drm_launcher.c',
+ 'ecore_drm_dbus.c',
+ 'ecore_drm_logind.c',
+ 'ecore_drm.c',
+ 'ecore_drm_private.h'
+]
+ecore_drm_header_src = [
+ 'Ecore_Drm.h'
+]
+
+
+ecore_drm_lib = library('ecore_drm',
+ ecore_drm_src,
+ dependencies: [m] + ecore_drm_deps + ecore_drm_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_drm = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_drm_lib,
+ dependencies: ecore_drm_pub_deps,
+)
+
+install_headers(ecore_drm_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_drm2/meson.build b/src/lib/ecore_drm2/meson.build
new file mode 100644
index 0000000000..1a36fbbede
--- /dev/null
+++ b/src/lib/ecore_drm2/meson.build
@@ -0,0 +1,34 @@
+ecore_drm2_deps = [eeze, elput, dl, libdrm]
+ecore_drm2_pub_deps = [ecore]
+
+ecore_drm2_header_src = [
+ 'Ecore_Drm2.h'
+]
+
+ecore_drm2_src = [
+ 'ecore_drm2_plane.c',
+ 'ecore_drm2_fb.c',
+ 'ecore_drm2_outputs.c',
+ 'ecore_drm2_device.c',
+ 'ecore_drm2.c',
+ 'ecore_drm2_private.h'
+]
+
+ecore_drm2_lib = library('ecore_drm2',
+ ecore_drm2_src, pub_eo_file_target,
+ dependencies: ecore_drm2_pub_deps + ecore_drm2_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_drm2 = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_drm2_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_drm2_pub_deps,
+)
+
+install_headers(ecore_drm2_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_evas/meson.build b/src/lib/ecore_evas/meson.build
new file mode 100644
index 0000000000..c0fb459a56
--- /dev/null
+++ b/src/lib/ecore_evas/meson.build
@@ -0,0 +1,47 @@
+ecore_evas_deps = [eina, ecore_input_evas, ecore_input, ecore, eet, evas, efl, eo, eina, emile]
+ecore_evas_pub_deps = [evas, ecore]
+pub_eo_file_target = []
+
+ecore_evas_header_src = [
+ 'Ecore_Evas_Types.h',
+ 'Ecore_Evas.h',
+
+]
+
+ecore_evas_src = [
+ 'ecore_evas.c',
+ 'ecore_evas_buffer.c',
+ 'ecore_evas_buffer.h',
+ 'ecore_evas_deprecated.c',
+ 'ecore_evas_drm.h',
+ 'ecore_evas_ews.c',
+ 'ecore_evas_module.c',
+ 'ecore_evas_private.h',
+ 'ecore_evas_extn.h',
+ 'ecore_evas_extn.c',
+ 'ecore_evas_wayland.h',
+ 'ecore_evas_cocoa.h',
+ 'ecore_evas_win32.h',
+ 'ecore_evas_x11.h',
+ 'ecore_evas_util.c'
+]
+
+
+ecore_evas_lib = library('ecore_evas',
+ ecore_evas_src, pub_eo_file_target,
+ dependencies: [ecore_evas_deps, buildsystem],
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: [evas],
+)
+
+install_headers(ecore_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_fb/meson.build b/src/lib/ecore_fb/meson.build
new file mode 100644
index 0000000000..0bcf11e3c8
--- /dev/null
+++ b/src/lib/ecore_fb/meson.build
@@ -0,0 +1,34 @@
+ecore_fb_deps = [ecore, ecore_input]
+ecore_fb_pub_deps = [eina]
+
+ecore_fb_header_src = [
+ 'Ecore_Fb.h'
+]
+
+ecore_fb_src = [
+ 'ecore_fb.c',
+ 'ecore_fb_li.c',
+ 'ecore_fb_ts.c',
+ 'ecore_fb_vt.c',
+ 'ecore_fb_keytable.h',
+ 'ecore_fb_private.h'
+]
+
+ecore_fb_lib = library('ecore_fb',
+ ecore_fb_src, pub_eo_file_target,
+ dependencies: ecore_fb_pub_deps + ecore_fb_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_fb = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_fb_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_fb_pub_deps,
+)
+
+install_headers(ecore_fb_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_file/meson.build b/src/lib/ecore_file/meson.build
new file mode 100644
index 0000000000..a3e70f8a99
--- /dev/null
+++ b/src/lib/ecore_file/meson.build
@@ -0,0 +1,39 @@
+ecore_file_deps = [ecore_con, ecore]
+ecore_file_pub_deps = [eina]
+
+ecore_file_src = [
+ 'ecore_file.c',
+ 'ecore_file_download.c',
+ 'ecore_file_monitor.c',
+ 'ecore_file_path.c',
+ 'ecore_file_private.h'
+]
+
+if target_machine.system() == 'windows'
+ ecore_file_src += [ 'ecore_file_monitor_win32.c']
+elif cc.has_header('sys/inotify.h')
+ ecore_file_src += [ 'ecore_file_monitor_inotify.c']
+else
+ ecore_file_src += [ 'ecore_file_monitor_poll.c']
+endif
+
+ecore_file_header_src = ['Ecore_File.h']
+
+
+ecore_file_lib = library('ecore_file',
+ ecore_file_src,
+ dependencies: ecore_file_deps + ecore_file_pub_deps + ecore_file_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_file = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_file_lib,
+ dependencies: ecore_file_pub_deps,
+)
+
+install_headers(ecore_file_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_imf/meson.build b/src/lib/ecore_imf/meson.build
new file mode 100644
index 0000000000..978594d20a
--- /dev/null
+++ b/src/lib/ecore_imf/meson.build
@@ -0,0 +1,34 @@
+ecore_imf_deps = [ecore]
+ecore_imf_pub_deps = [eina]
+
+ecore_imf_header_src = [
+ 'Ecore_IMF.h'
+]
+
+ecore_imf_src = [
+ 'ecore_imf.c',
+ 'ecore_imf_context.c',
+ 'ecore_imf_module.c',
+ 'ecore_imf_private.h',
+]
+
+
+ecore_imf_lib = library('ecore_imf',
+ ecore_imf_src, pub_eo_file_target,
+ dependencies: [buildsystem, ecore_imf_deps, ecore_imf_pub_deps],
+ include_directories : config_dir,
+ c_args : package_c_args,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_imf = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_imf_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_imf_pub_deps,
+)
+
+install_headers(ecore_imf_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_imf_evas/meson.build b/src/lib/ecore_imf_evas/meson.build
new file mode 100644
index 0000000000..28d53ea78d
--- /dev/null
+++ b/src/lib/ecore_imf_evas/meson.build
@@ -0,0 +1,30 @@
+ecore_imf_evas_header_src = [
+ 'Ecore_IMF_Evas.h'
+]
+
+ecore_imf_evas_src = [
+ 'ecore_imf_evas.c'
+]
+
+ecore_imf_evas_deps = [ecore_imf, evas]
+ecore_imf_evas_pub_deps = [eina, eo, efl]
+
+ecore_imf_evas_lib = library('ecore_imf_evas',
+ ecore_imf_evas_src,
+ dependencies: ecore_imf_evas_pub_deps + [m] + ecore_imf_evas_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore_imf_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_imf_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_imf_evas_pub_deps,
+)
+
+install_headers(ecore_imf_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_input/meson.build b/src/lib/ecore_input/meson.build
new file mode 100644
index 0000000000..c57ec4e04c
--- /dev/null
+++ b/src/lib/ecore_input/meson.build
@@ -0,0 +1,38 @@
+ecore_input_deps = [ecore]
+ecore_input_pub_deps = [eina, eo]
+
+ecore_input_header_src = [
+ 'Ecore_Input.h'
+]
+
+ecore_input_src = [
+ 'ecore_input.c',
+ 'ecore_input_compose.c',
+ 'ecore_input_joystick.c',
+ 'ecore_input_compose.h',
+ 'ecore_input_private.h'
+]
+
+if get_option('eeze')
+ ecore_input_deps += eeze
+endif
+
+
+ecore_input_lib = library('ecore_input',
+ ecore_input_src, pub_eo_file_target,
+ dependencies: ecore_input_pub_deps + ecore_input_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_input = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_input_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_input_pub_deps,
+)
+
+install_headers(ecore_input_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_input_evas/meson.build b/src/lib/ecore_input_evas/meson.build
new file mode 100644
index 0000000000..8b48142f7d
--- /dev/null
+++ b/src/lib/ecore_input_evas/meson.build
@@ -0,0 +1,32 @@
+ecore_input_evas_deps = [ecore, ecore_input, evas]
+ecore_input_evas_pub_deps = [eina, evas]
+pub_eo_file_target = []
+
+ecore_input_evas_header_src = [
+ 'Ecore_Input_Evas.h'
+]
+
+ecore_input_evas_src = [
+ 'ecore_input_evas.c',
+ 'ecore_input_evas_private.h',
+]
+
+
+ecore_input_evas_lib = library('ecore_input_evas',
+ ecore_input_evas_src, pub_eo_file_target,
+ dependencies: ecore_input_evas_pub_deps + ecore_input_evas_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_input_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_input_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_input_evas_pub_deps,
+)
+
+install_headers(ecore_input_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_ipc/meson.build b/src/lib/ecore_ipc/meson.build
new file mode 100644
index 0000000000..dbc95b0531
--- /dev/null
+++ b/src/lib/ecore_ipc/meson.build
@@ -0,0 +1,30 @@
+ecore_ipc_deps = [ecore, ecore_con]
+ecore_ipc_pub_deps = [eina]
+
+ecore_ipc_header_src = [
+ 'Ecore_Ipc.h'
+]
+
+ecore_ipc_src = [
+ 'ecore_ipc.c',
+ 'ecore_ipc_private.h',
+]
+
+ecore_ipc_lib = library('ecore_ipc',
+ ecore_ipc_src, pub_eo_file_target,
+ dependencies: ecore_ipc_deps + ecore_ipc_pub_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_ipc = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_ipc_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_ipc_pub_deps,
+)
+
+install_headers(ecore_ipc_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_sdl/meson.build b/src/lib/ecore_sdl/meson.build
new file mode 100644
index 0000000000..01ef3981b9
--- /dev/null
+++ b/src/lib/ecore_sdl/meson.build
@@ -0,0 +1,31 @@
+ecore_sdl_deps = [eina, ecore, ecore_input]
+ecore_sdl_pub_deps = []
+
+ecore_sdl_src = [
+ 'ecore_sdl.c'
+]
+
+ecore_sdl_header_src = [
+ 'Ecore_Sdl.h',
+ 'Ecore_Sdl_Keys.h'
+]
+
+ecore_sdl_deps += dependency('sdl')
+
+ecore_sdl_lib = library('ecore_sdl',
+ ecore_sdl_src,
+ dependencies: [m] + ecore_sdl_deps + ecore_sdl_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_sdl = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_sdl_lib,
+ dependencies: ecore_sdl_pub_deps,
+)
+
+install_headers(ecore_sdl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_wayland/meson.build b/src/lib/ecore_wayland/meson.build
new file mode 100644
index 0000000000..4a24fb661e
--- /dev/null
+++ b/src/lib/ecore_wayland/meson.build
@@ -0,0 +1,42 @@
+ecore_wayland_deps = [ecore_input, ecore, eo, efl, eina]
+ecore_wayland_pub_deps = [dependency('wayland-client', version: '>= 1.8.0'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.5.0'), dependency('uuid')]
+
+ecore_wayland_src = [
+ 'ecore_wl.c',
+ 'ecore_wl_dnd.c',
+ 'ecore_wl_input.c',
+ 'ecore_wl_output.c',
+ 'ecore_wl_window.c',
+ 'ecore_wl_subsurf.c',
+ 'ecore_wl_private.h',
+ 'subsurface-protocol.c',
+ 'subsurface-client-protocol.h',
+ 'ivi-application-protocol.c',
+ 'ivi-application-client-protocol.h',
+ 'xdg-shell-client-protocol.h',
+ 'xdg-shell-protocol.c',
+ 'session-recovery-client-protocol.h',
+ 'session-recovery-protocol.c'
+]
+ecore_wayland_header_src = [
+ 'Ecore_Wayland.h'
+]
+
+
+ecore_wayland_lib = library('ecore_wayland',
+ ecore_wayland_src,
+ dependencies: [m] + ecore_wayland_deps + ecore_wayland_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_wayland = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_wayland_lib,
+ dependencies: ecore_wayland_pub_deps,
+)
+
+install_headers(ecore_wayland_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_wl2/meson.build b/src/lib/ecore_wl2/meson.build
new file mode 100644
index 0000000000..c1527ae4e3
--- /dev/null
+++ b/src/lib/ecore_wl2/meson.build
@@ -0,0 +1,38 @@
+ecore_wl2_deps = [dependency('wayland-client'), dependency('wayland-server'), dependency('xkbcommon'), wayland_protocol, dependency('wayland-client')]
+ecore_wl2_pub_deps = [eina, ecore, wayland_protocol]
+
+ecore_wl2_header_src = [
+ 'Ecore_Wl2.h'
+]
+
+ecore_wl2_src = [
+ 'ecore_wl2_subsurf.c',
+ 'ecore_wl2_dnd.c',
+ 'ecore_wl2_window.c',
+ 'ecore_wl2_input.c',
+ 'ecore_wl2_output.c',
+ 'ecore_wl2_display.c',
+ 'ecore_wl2.c',
+ 'ecore_wl2_private.h',
+ 'ecore_wl2_buffer.c',
+ 'ecore_wl2_surface.c'
+]
+
+ecore_wl2_lib = library('ecore_wl2',
+ ecore_wl2_src, pub_eo_file_target,
+ dependencies: ecore_wl2_pub_deps + [dl, m, ecore, ecore_input, ecore_wl2_deps, libdrm],
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_wl2 = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_wl2_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_wl2_pub_deps,
+)
+
+install_headers(ecore_wl2_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_x/meson.build b/src/lib/ecore_x/meson.build
new file mode 100644
index 0000000000..9c1f00ddfe
--- /dev/null
+++ b/src/lib/ecore_x/meson.build
@@ -0,0 +1,142 @@
+ecore_x_deps = [ecore, dl, m, ecore_input]
+ecore_x_pub_deps = [eina, efl]
+
+ecore_x_header_src = [
+ 'Ecore_X.h',
+ 'Ecore_X_Atoms.h',
+ 'Ecore_X_Cursor.h'
+]
+
+ecore_x_src = [
+ 'ecore_x_atoms_decl.h',
+ 'ecore_x.c',
+ 'ecore_x_dnd.c',
+ 'ecore_x_sync.c',
+ 'ecore_x_randr.c',
+ 'ecore_x_fixes.c',
+ 'ecore_x_damage.c',
+ 'ecore_x_composite.c',
+ 'ecore_x_error.c',
+ 'ecore_x_events.c',
+ 'ecore_x_icccm.c',
+ 'ecore_x_keygrab.c',
+ 'ecore_x_netwm.c',
+ 'ecore_x_mwm.c',
+ 'ecore_x_e.c',
+ 'ecore_x_selection.c',
+ 'ecore_x_window.c',
+ 'ecore_x_window_prop.c',
+ 'ecore_x_window_shape.c',
+ 'ecore_x_pixmap.c',
+ 'ecore_x_present.c',
+ 'ecore_x_gc.c',
+ 'ecore_x_xinerama.c',
+ 'ecore_x_screensaver.c',
+ 'ecore_x_dpms.c',
+ 'ecore_x_drawable.c',
+ 'ecore_x_cursor.c',
+ 'ecore_x_test.c',
+ 'ecore_x_atoms.c',
+ 'ecore_x_region.c',
+ 'ecore_x_image.c',
+ 'ecore_x_xi2.c',
+ 'ecore_x_vsync.c',
+ 'ecore_x_gesture.c',
+ 'ecore_x_private.h'
+]
+
+ecore_x_checks = [
+ ['Xcomposite', 'Xcomposite.h', 'Xcomposite', 'XCompositeQueryExtension'],
+ ['Xdamage', 'Xdamage.h', 'Xdamage', 'XDamageSubtract'],
+ ['Xdpms', 'dpms.h', 'Xext', 'DPMSQueryExtension'],
+ ['Xfixes', 'Xfixes.h', 'Xfixes', 'XFixesExpandRegion'],
+ ['Xinerama', 'Xinerama.h', 'Xinerama', 'XineramaQueryScreens'],
+ ['Xrandr', 'Xrandr.h', 'Xrandr', 'XRRGetScreenResourcesCurrent'],
+ ['Xrender', 'Xrender.h', 'Xrender', 'XRenderFindVisualFormat'],
+ ['Xtest', 'XTest.h', 'Xtst', 'XTestFakeKeyEvent'],
+ ['Xss', 'scrnsaver.h', 'Xss', 'XScreenSaverSelectInput'],
+]
+
+if get_option('xpresent')
+ ecore_x_checks += [['Xpresent', 'Xpresent.h', 'Xpresent', 'XPresentQueryExtension']]
+endif
+
+if get_option('xgesture')
+ ecore_x_checks += [['Xgesture', 'gesture.h', 'Xgesture', 'XGestureQueryExtension']]
+endif
+
+if get_option('xinput2')
+ ecore_x_checks += [['Xi2', 'XInput2.h', 'Xi', 'XIQueryDevice']]
+endif
+
+if get_option('xinput22')
+ ecore_x_checks += [['Xi2_2', 'XInput2.h', 'Xi','XIGrabTouchBegin']]
+endif
+
+x11 = dependency('x11', required: false)
+if x11.found() == false
+ x11 = cc.find_library('x11', required: true)
+endif
+
+xcb = dependency('xcb', required: false)
+if xcb.found() == false
+ xcb = cc.find_library('xcb', required: true)
+endif
+
+x11_xcb = dependency('x11-xcb', required: false)
+if x11_xcb.found() == false
+ x11_xcb = cc.find_library('x11-xcb', required: true)
+endif
+
+foreach ecore_x_check : ecore_x_checks
+ x_lib = cc.find_library(ecore_x_check[2],
+ required: false
+ )
+
+ if cc.compiles('''
+#include <X11/Xlib.h>
+#include <X11/extensions/'''+ecore_x_check[1]+'''>
+int main () {
+ #ifndef '''+ecore_x_check[3]+'''
+ '''+ecore_x_check[3]+''';
+ #endif
+}
+ ''',
+ dependencies : [x_lib, x11]
+ ) == true
+ config_h.set('ECORE_'+ecore_x_check[0].to_upper(), '1')
+ else
+ error('extension '+ecore_x_check[0]+' not found for X11')
+ endif
+ ecore_x_deps += x_lib
+endforeach
+
+ecore_x_deps += x11
+ecore_x_deps += xcb
+ecore_x_deps += x11_xcb
+
+
+# there are a few special cases
+cc.has_header_symbol('X11/XKBlib.h', 'XkbSetDetectableAutoRepeat',
+ dependencies : [x11, xcb]
+)
+config_h.set('ECORE_XKB', '1')
+
+ecore_x_lib = library('ecore_x',
+ ecore_x_src, pub_eo_file_target,
+ dependencies: ecore_x_pub_deps + ecore_x_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_x = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_x_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_x_pub_deps,
+)
+
+install_headers(ecore_x_header_src,
+ install_dir : dir_package_include,
+)
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 @@
+
+ector_src += files([
+ 'ector_renderer_cairo_gradient_linear.c',
+ 'ector_renderer_cairo_gradient_radial.c',
+ 'ector_renderer_cairo_shape.c',
+ 'ector_renderer_cairo.c',
+ 'ector_cairo_software_surface.c',
+ 'ector_cairo_surface.c'
+])
+
+pub_eo_files = [
+ 'ector_cairo_surface.eo',
+ 'ector_cairo_software_surface.eo',
+ 'ector_renderer_cairo.eo',
+ 'ector_renderer_cairo_shape.eo',
+ 'ector_renderer_cairo_gradient_linear.eo',
+ 'ector_renderer_cairo_gradient_radial.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 : false,
+ 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
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
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 @@
+
+ector_src += files([
+ 'ector_renderer_gl_gradient_linear.c',
+ 'ector_renderer_gl_gradient_radial.c',
+ 'ector_renderer_gl_shape.c',
+ 'ector_renderer_gl.c',
+ 'ector_gl_buffer.c',
+ 'ector_gl_surface.c',
+ 'ector_gl_private.h',
+ #'shader/ector_gl_shaders.x',
+ 'ector_gl_shader.c'
+])
+
+pub_eo_files = [
+ 'ector_gl_surface.eo',
+ 'ector_gl_buffer.eo',
+ 'ector_renderer_gl.eo',
+ 'ector_renderer_gl_shape.eo',
+ 'ector_renderer_gl_gradient_radial.eo',
+ 'ector_renderer_gl_gradient_linear.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 : false,
+ 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
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
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 @@
+ector_deps = [eina, emile, eet, eo, efl]
+ector_pub_deps = [eina, efl]
+
+pub_eo_file_target = []
+
+ector_header_src = [
+ # nothing for now ector stays only intree
+]
+
+ector_src = [
+ 'ector_main.c',
+ 'ector_gl_internal.h',
+ 'ector_buffer.c',
+ 'ector_renderer_shape.c',
+ 'ector_renderer.c',
+ 'ector_renderer_gradient.c',
+ 'ector_renderer_gradient_radial.c',
+ 'ector_renderer_gradient_linear.c'
+]
+
+pub_eo_files = [
+ 'ector_surface.eo',
+ 'ector_buffer.eo',
+ 'ector_renderer.eo',
+ 'ector_renderer_shape.eo',
+ 'ector_renderer_gradient.eo',
+ 'ector_renderer_gradient_radial.eo',
+ 'ector_renderer_gradient_linear.eo'
+]
+
+ector_pub_eo_files = pub_eo_files
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ 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
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+subdir('cairo')
+subdir('gl')
+subdir('software')
+
+pub_eo_types_files = [
+ 'ector_types.eot'
+]
+
+install_data(ector_pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ 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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+ector_lib = library('ector',
+ ector_src, pub_eo_file_target,
+ dependencies: ector_pub_deps + [triangulator, freetype, draw, m] + ector_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ector = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ector_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ector_pub_deps,
+)
+
+install_headers(ector_header_src,
+ install_dir : dir_package_include,
+)
+
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 @@
+
+ector_src += files([
+ 'ector_renderer_software_gradient_linear.c',
+ 'ector_renderer_software_gradient_radial.c',
+ 'ector_renderer_software_shape.c',
+ 'ector_software_gradient.c',
+ 'ector_software_rasterizer.c',
+ 'ector_software_surface.c',
+ 'ector_software_buffer.c',
+])
+
+pub_eo_files = [
+ 'ector_software_surface.eo',
+ 'ector_software_buffer.eo',
+ 'ector_software_buffer_base.eo',
+ 'ector_renderer_software.eo',
+ 'ector_renderer_software_shape.eo',
+ 'ector_renderer_software_gradient_radial.eo',
+ 'ector_renderer_software_gradient_linear.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 : false,
+ 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
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build
new file mode 100644
index 0000000000..bcfcd9b569
--- /dev/null
+++ b/src/lib/edje/meson.build
@@ -0,0 +1,160 @@
+edje_deps = [
+ eina, eo, efl, m,
+ luajit, eet, evas, ecore_evas,
+ ecore_file, ecore_input,
+ ecore_imf, ecore_imf_evas,
+ embryo, efreet, eio, intl
+]
+
+
+edje_pub_deps = [m, evas, eo, efl, luajit]
+
+if (get_option('physics'))
+ edje_deps += ephysics
+ edje_pub_deps += ephysics
+endif
+
+config_h.set('EDJE_CALC_CACHE', '1')
+
+if get_option('edje-sound-and-video')
+ config_h.set('ENABLE_MULTISENSE', '1')
+ edje_deps += ecore_audio
+endif
+
+pub_legacy_eo_files = [
+ 'edje_edit.eo',
+ 'efl_layout_calc.eo',
+ 'efl_layout_signal.eo',
+ 'efl_layout_group.eo',
+ 'efl_canvas_layout.eo',
+ 'efl_canvas_layout_part.eo',
+ 'efl_canvas_layout_part_box.eo',
+ 'efl_canvas_layout_part_external.eo',
+ 'efl_canvas_layout_part_invalid.eo',
+ 'efl_canvas_layout_part_swallow.eo',
+ 'efl_canvas_layout_part_table.eo',
+ 'efl_canvas_layout_part_text.eo',
+]
+
+pub_eo_files = pub_legacy_eo_files
+pub_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_types_files = [
+ 'edje_types.eot'
+]
+
+foreach eo_file : pub_eo_types_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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+priv_eo_files = [
+ 'edje_global.eo',
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += 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'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+edje_header_src = [
+ 'Edje.h',
+ 'Edje_Common.h',
+ 'Edje_Eo.h',
+ 'Edje_Legacy.h',
+ 'Edje_Edit.h'
+]
+
+edje_src = [
+ 'edje_private.h',
+ 'edje_convert.h',
+ 'edje_box_layout.c',
+ 'edje_cache.c',
+ 'edje_calc.c',
+ 'edje_callbacks.c',
+ 'edje_data.c',
+ 'edje_edit.c',
+ 'edje_embryo.c',
+ 'edje_entry.c',
+ 'edje_external.c',
+ 'edje_load.c',
+ 'edje_lua.c',
+ 'edje_lua2.c',
+ 'edje_lua_script_only.c',
+ 'edje_main.c',
+ 'edje_match.c',
+ 'edje_message_queue.c',
+ 'edje_misc.c',
+ 'edje_module.c',
+ 'edje_multisense.c',
+ 'edje_program.c',
+ 'edje_smart.c',
+ 'edje_text.c',
+ 'edje_textblock.c',
+ 'edje_textblock_styles.c',
+ 'edje_util.c',
+ 'edje_legacy.c',
+ 'edje_var.c',
+ 'edje_signal.c',
+ 'edje_part.c',
+ 'edje_part_helper.h',
+ 'edje_part_external.c',
+ 'edje_part_swallow.c',
+ 'edje_part_table.c',
+ 'edje_part_box.c',
+ 'edje_part_text.c',
+ 'edje_part_invalid.c'
+
+]
+
+edje_lib = library('edje',
+ edje_src, pub_eo_file_target, priv_eo_file_target,
+ dependencies: [edje_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : [package_c_args],
+ version : meson.project_version()
+)
+
+edje = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: edje_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: edje_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(edje_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eet/meson.build b/src/lib/eet/meson.build
new file mode 100644
index 0000000000..8ebdb48dd6
--- /dev/null
+++ b/src/lib/eet/meson.build
@@ -0,0 +1,38 @@
+eet_deps = [crypto, jpeg, rg_etc, m]
+eet_pub_deps = [eina, emile, efl]
+
+eet_header_src = [
+ 'Eet.h'
+]
+
+eet_src = [
+ 'Eet_private.h',
+ 'eet_alloc.c',
+ 'eet_cipher.c',
+ 'eet_connection.c',
+ 'eet_data.c',
+ 'eet_dictionary.c',
+ 'eet_image.c',
+ 'eet_lib.c',
+ 'eet_node.c',
+ 'eet_utils.c',
+]
+
+eet_lib = library('eet',
+ eet_src, pub_eo_file_target,
+ dependencies: eet_deps + eet_pub_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+eet = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eet_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eet_pub_deps,
+)
+
+install_headers(eet_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eeze/meson.build b/src/lib/eeze/meson.build
new file mode 100644
index 0000000000..c32eee94b6
--- /dev/null
+++ b/src/lib/eeze/meson.build
@@ -0,0 +1,101 @@
+eeze_deps = []
+eeze_pub_deps = [eina, efl]
+pub_eo_file_target = []
+
+eeze_header_src = [
+ 'Eeze.h',
+ 'Eeze_Net.h',
+ 'Eeze_Sensor.h',
+ 'Eeze_Disk.h',
+ join_paths('..','..','bin','eeze','eeze_scanner','eeze_scanner.h')
+]
+
+eeze_src = [
+ 'eeze_main.c',
+ 'eeze_net.c',
+ 'eeze_net_private.h',
+ 'eeze_sensor.c',
+ 'eeze_sensor_private.h',
+ 'eeze_udev_find.c',
+ 'eeze_udev_private.c',
+ 'eeze_udev_private.h',
+ 'eeze_udev_syspath.c',
+ 'eeze_udev_walk.c',
+ 'eeze_udev_watch.c',
+ 'eeze_disk.c',
+ 'eeze_disk_udev.c',
+ 'eeze_disk_mount.c',
+ 'eeze_disk_private.h'
+]
+
+if get_option('v4l2')
+ config_h.set('HAVE_V4L2', '1')
+ if cc.has_header('linux/videodev2.h') == false
+ error('v4l2 headers not found')
+ endif
+endif
+
+if (get_option('libmount'))
+ libmount = dependency('mount')
+ eeze_deps += [libmount]
+ if libmount.version() == '2.19'
+ eeze_src += 'eeze_disk_libmount.c'
+ elif libmount.version() < '2.19'
+ eeze_src += 'eeze_disk_libmount_old.c'
+ elif libmount.version() > '2.19'
+ eeze_src += 'eeze_disk_libmount_new.c'
+ endif
+ config_h.set('HAVE_EEZE_MOUNT', '1')
+else
+ eeze_src += 'eeze_disk_dummy.c'
+endif
+
+options_to_check = ['eject', 'mount', 'unmount']
+
+eeze_deps += dependency('libudev',
+ version: ['>=148']
+)
+
+foreach option : options_to_check
+ val = get_option(option+'-path')
+ if val == 'detect'
+ # i dont know why we call this unmount when the bin is called umount
+ if option == 'unmount'
+ _option = 'umount'
+ else
+ _option = option
+ endif
+ prog = find_program(_option, required: false)
+ if prog.found()
+ set_variable(option+'_bin', prog.path())
+ else
+ set_variable(option+'_bin', '')
+ endif
+ else
+ set_variable(option+'_bin', val)
+ endif
+endforeach
+
+config_h.set_quoted('EEZE_EJECT_BIN', eject_bin)
+config_h.set_quoted('EEZE_MOUNT_BIN', mount_bin)
+config_h.set_quoted('EEZE_UNMOUNT_BIN', unmount_bin)
+
+eeze_lib = library('eeze',
+ eeze_src, pub_eo_file_target,
+ dependencies: eeze_deps + eeze_pub_deps + [ecore, ecore_file, buildsystem, eeze_deps],
+ include_directories : config_dir,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+eeze = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eeze_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eeze_pub_deps,
+)
+
+install_headers(eeze_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build
new file mode 100644
index 0000000000..8d29c404a8
--- /dev/null
+++ b/src/lib/efl/interfaces/meson.build
@@ -0,0 +1,155 @@
+pub_legacy_eo_files = [
+ 'efl_gfx_fill.eo',
+ 'efl_gfx_entity.eo',
+ 'efl_gfx_color.eo',
+ 'efl_gfx_image.eo',
+ 'efl_gfx_image_animation_controller.eo',
+ 'efl_input_device.eo',
+ 'efl_ui_draggable.eo',
+ 'efl_ui_clickable.eo',
+ 'efl_ui_scrollable.eo',
+ 'efl_ui_scrollable_interactive.eo',
+ 'efl_ui_scrollbar.eo',
+ 'efl_ui_selectable.eo',
+ 'efl_ui_zoom.eo',
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'interfaces'),
+ 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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_playable.eo',
+ 'efl_canvas_scene.eo',
+ 'efl_canvas_pointer.eo',
+ 'efl_config.eo',
+ 'efl_control.eo',
+ 'efl_duplicate.eo',
+ 'efl_file.eo',
+ 'efl_gfx_image_load_controller.eo',
+ 'efl_part.eo',
+ 'efl_player.eo',
+ 'efl_text.eo',
+ 'efl_text_font.eo',
+ 'efl_text_style.eo',
+ 'efl_text_format.eo',
+ 'efl_text_cursor.eo',
+ 'efl_text_annotate.eo',
+ 'efl_text_markup.eo',
+ 'efl_text_markup_util.eo',
+ 'efl_gfx_stack.eo',
+ 'efl_gfx_view.eo',
+ 'efl_gfx_buffer.eo',
+ 'efl_gfx_path.eo',
+ 'efl_gfx_shape.eo',
+ 'efl_gfx_gradient.eo',
+ 'efl_gfx_gradient_linear.eo',
+ 'efl_gfx_gradient_radial.eo',
+ 'efl_gfx_filter.eo',
+ 'efl_gfx_blur.eo',
+ 'efl_gfx_size_hint.eo',
+ 'efl_model.eo',
+ 'efl_animator.eo',
+ 'efl_orientation.eo',
+ 'efl_container.eo',
+ 'efl_content.eo',
+ 'efl_pack.eo',
+ 'efl_pack_layout.eo',
+ 'efl_pack_linear.eo',
+ 'efl_pack_table.eo',
+ 'efl_ui_base.eo',
+ 'efl_ui_direction.eo',
+ 'efl_ui_drag.eo',
+ 'efl_ui_range.eo',
+ 'efl_ui_view.eo',
+ 'efl_ui_model_connect.eo',
+ 'efl_ui_factory.eo',
+ 'efl_ui_multi_selectable.eo',
+ 'efl_screen.eo',
+ 'efl_io_closer.eo',
+ 'efl_io_positioner.eo',
+ 'efl_io_reader.eo',
+ 'efl_io_sizer.eo',
+ 'efl_io_writer.eo',
+ 'efl_io_buffer.eo',
+ 'efl_io_queue.eo',
+ 'efl_observer.eo',
+ 'efl_observable.eo',
+ 'efl_ui_autorepeat.eo',
+ 'efl_ui_format.eo',
+ 'efl_gfx_color_class.eo',
+ 'efl_gfx_text_class.eo',
+ 'efl_gfx_size_class.eo',
+]
+
+eolian_include_directories += ['-I', join_paths(meson.source_root(), 'src', 'lib', 'evas', 'canvas')]
+
+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 : join_paths(dir_package_include, 'interfaces'),
+ 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
+
+pub_eo_types_files = [
+ 'efl_gfx_types.eot',
+ 'efl_ui_types.eot',
+ 'efl_input_types.eot',
+ 'efl_types.eot',
+ 'efl_text_types.eot',
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'interfaces'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
+
+efl_src += files([
+ 'efl_interfaces_main.c',
+ 'efl_model_common.c',
+ 'efl_gfx_path.c',
+ 'efl_gfx_shape.c',
+ 'efl_gfx_color.c',
+ 'efl_input_device.c',
+ 'efl_io_closer.c',
+ 'efl_io_positioner.c',
+ 'efl_io_reader.c',
+ 'efl_io_sizer.c',
+ 'efl_io_writer.c',
+ 'efl_io_buffer.c',
+ 'efl_io_queue.c',
+ 'efl_observer.c',
+ 'efl_file.c',
+ 'efl_ui_format.c',
+ 'efl_text_markup_util.c',
+])
+
+#efl_header_src += files([
+# 'efl_common_internal.h'
+#])
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build
new file mode 100644
index 0000000000..75acef3b54
--- /dev/null
+++ b/src/lib/efl/meson.build
@@ -0,0 +1,33 @@
+efl_deps = []
+efl_pub_deps = [eo]
+
+efl_header_src = [
+ 'Efl.h',
+ 'Efl_Model_Common.h'
+]
+
+efl_src = []
+
+subdir('interfaces')
+
+efl_lib = library('efl',
+ efl_src, pub_eo_file_target,
+ dependencies: [eina, eo, m],
+ install: true,
+ version : meson.project_version()
+)
+
+efl = declare_dependency(
+ include_directories: [include_directories('.'), config_dir],
+ link_with: efl_lib,
+ dependencies: efl_deps + efl_pub_deps,
+ sources : pub_eo_file_target
+)
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(efl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efl_wl/meson.build b/src/lib/efl_wl/meson.build
new file mode 100644
index 0000000000..35f20ec404
--- /dev/null
+++ b/src/lib/efl_wl/meson.build
@@ -0,0 +1,32 @@
+efl_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, eo, efl, eina]
+efl_wl_pub_deps = [evas, dependency('wayland-server', version : '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0')]
+
+if (get_option('x11'))
+ efl_wl_deps += [ecore_x]
+ efl_wl_pub_deps += [dependency('xkbcommon-x11')]
+endif
+
+efl_wl_src = [
+ 'dmabuf.c',
+ 'efl_wl.c'
+]
+efl_wl_header_src = ['Efl_Wl.h']
+
+
+efl_wl_lib = library('efl_wl',
+ efl_wl_src,
+ dependencies: [m, dl] + efl_wl_deps + efl_wl_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+efl_wl = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efl_wl_lib,
+ dependencies: efl_wl_pub_deps,
+)
+
+install_headers(efl_wl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efreet/meson.build b/src/lib/efreet/meson.build
new file mode 100644
index 0000000000..fc4a232c38
--- /dev/null
+++ b/src/lib/efreet/meson.build
@@ -0,0 +1,96 @@
+efreet_header_src = [
+ 'Efreet.h',
+ 'efreet_base.h',
+ 'efreet_desktop.h',
+ 'efreet_icon.h',
+ 'efreet_ini.h',
+ 'efreet_menu.h',
+ 'efreet_utils.h',
+ 'efreet_uri.h',
+ 'Efreet_Mime.h',
+ 'Efreet_Trash.h'
+]
+
+efreet_src = [
+ 'efreet.c',
+ 'efreet_base.c',
+ 'efreet_icon.c',
+ 'efreet_xml.c',
+ 'efreet_ini.c',
+ 'efreet_desktop.c',
+ 'efreet_desktop_command.c',
+ 'efreet_menu.c',
+ 'efreet_utils.c',
+ 'efreet_uri.c',
+ 'efreet_cache.c',
+ 'efreet_private.h',
+ 'efreet_xml.h',
+ 'efreet_cache_private.h'
+]
+
+efreet_deps = [eet, ecore, ecore_con, ecore_file, eo, efl, eina, emile, ecore_ipc, buildsystem,intl]
+efreet_pub_deps = [eina, eo, efl]
+
+efreet_lib = library('efreet',
+ efreet_src,
+ dependencies: efreet_pub_deps + [m] + efreet_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : [package_c_args, '-DDATA_DIR="'+dir_data+'"'],
+ version : meson.project_version()
+)
+
+efreet = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_lib,
+ dependencies: efreet_pub_deps,
+)
+
+efreet_mime_lib = library('efreet_mime',
+ 'efreet_mime.c',
+ dependencies: efreet_pub_deps + [m, efreet, efreet_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+
+efreet_mime = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_mime_lib,
+ dependencies: efreet_pub_deps
+)
+
+efreet_trash_lib = library('efreet_trash',
+ 'efreet_trash.c',
+ dependencies: efreet_pub_deps + [efreet, efreet_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+efreet_trash = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_trash_lib,
+ dependencies: efreet_pub_deps,
+)
+
+install_headers(efreet_header_src,
+ install_dir : dir_package_include,
+)
+
+pkgconfig.generate(efreet_mime_lib,
+ name : 'efreet-mime',
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : [tmp_deps] + tmp_pub_deps,
+)
+
+pkgconfig.generate(efreet_trash_lib,
+ name : 'efreet-trash',
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : [tmp_deps] + tmp_pub_deps,
+)
diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
new file mode 100644
index 0000000000..1d3bd51bed
--- /dev/null
+++ b/src/lib/eina/meson.build
@@ -0,0 +1,398 @@
+eina_deps = []
+eina_pub_deps = [thread_dep]
+
+public_sub_headers = [
+'eina_promise.h',
+'eina_safety_checks.h',
+'eina_error.h',
+'eina_debug.h',
+'eina_debug_private.h',
+'eina_log.h',
+'eina_inline_log.x',
+'eina_fp.h',
+'eina_inline_f32p32.x',
+'eina_inline_f16p16.x',
+'eina_inline_f8p24.x',
+'eina_inline_fp.x',
+'eina_hash.h',
+'eina_inline_hash.x',
+'eina_lalloc.h',
+'eina_clist.h',
+'eina_inline_clist.x',
+'eina_inarray.h',
+'eina_inlist.h',
+'eina_inline_inlist.x',
+'eina_list.h',
+'eina_file.h',
+'eina_inline_file.x',
+'eina_mempool.h',
+'eina_module.h',
+'eina_rectangle.h',
+'eina_types.h',
+'eina_array.h',
+'eina_counter.h',
+'eina_inline_array.x',
+'eina_magic.h',
+'eina_stringshare.h',
+'eina_binshare.h',
+'eina_binbuf.h',
+'eina_ustringshare.h',
+'eina_inline_stringshare.x',
+'eina_inline_ustringshare.x',
+'eina_inline_list.x',
+'eina_accessor.h',
+'eina_convert.h',
+'eina_rbtree.h',
+'eina_benchmark.h',
+'eina_inline_rbtree.x',
+'eina_inline_mempool.x',
+'eina_inline_rectangle.x',
+'eina_inline_trash.x',
+'eina_thread.h',
+'eina_trash.h',
+'eina_iterator.h',
+'eina_main.h',
+'eina_cpu.h',
+'eina_inline_cpu.x',
+'eina_sched.h',
+'eina_tiler.h',
+'eina_hamster.h',
+'eina_matrixsparse.h',
+'eina_inline_tiler.x',
+'eina_str.h',
+'eina_inline_str.x',
+'eina_strbuf.h',
+'eina_ustrbuf.h',
+'eina_unicode.h',
+'eina_quadtree.h',
+'eina_simple_xml_parser.h',
+'eina_lock.h',
+'eina_prefix.h',
+'eina_refcount.h',
+'eina_mmap.h',
+'eina_xattr.h',
+'eina_value.h',
+'eina_inline_value.x',
+'eina_value_util.h',
+'eina_inline_value_util.x',
+'eina_inline_lock_barrier.x',
+'eina_inline_lock_posix.x',
+'eina_tmpstr.h',
+'eina_alloca.h',
+'eina_cow.h',
+'eina_inline_unicode.x',
+'eina_thread_queue.h',
+'eina_matrix.h',
+'eina_quad.h',
+'eina_crc.h',
+'eina_inline_crc.x',
+'eina_evlog.h',
+'eina_util.h',
+'eina_inline_util.x',
+'eina_quaternion.h',
+'eina_vector.h',
+'eina_inline_vector.x',
+'eina_bezier.h',
+'eina_safepointer.h',
+'eina_inline_safepointer.x',
+'eina_slice.h',
+'eina_inline_slice.x',
+'eina_inline_modinfo.x',
+'eina_freeq.h',
+'eina_slstr.h',
+'eina_vpath.h',
+]
+
+public_headers = [
+ 'Eina.h'
+]
+
+sources = [
+'eina_abi.c',
+'eina_accessor.c',
+'eina_array.c',
+'eina_benchmark.c',
+'eina_binbuf.c',
+'eina_binshare.c',
+'eina_convert.c',
+'eina_counter.c',
+'eina_cow.c',
+'eina_cpu.c',
+'eina_crc.c',
+'eina_debug.c',
+'eina_debug_bt.c',
+'eina_debug_bt_file.c',
+'eina_debug_chunk.c',
+'eina_debug_thread.c',
+'eina_debug_cpu.c',
+'eina_debug_timer.c',
+'eina_error.c',
+'eina_evlog.c',
+'eina_file_common.h',
+'eina_file_common.c',
+'eina_fp.c',
+'eina_hamster.c',
+'eina_hash.c',
+'eina_inarray.c',
+'eina_inlist.c',
+'eina_iterator.c',
+'eina_lalloc.c',
+'eina_list.c',
+'eina_lock.c',
+'eina_log.c',
+'eina_magic.c',
+'eina_main.c',
+'eina_matrix.c',
+'eina_matrixsparse.c',
+'eina_mempool.c',
+'eina_mmap.c',
+'eina_module.c',
+'eina_prefix.c',
+'eina_promise.c',
+'eina_promise_private.h',
+'eina_quad.c',
+'eina_quadtree.c',
+'eina_rbtree.c',
+'eina_rectangle.c',
+'eina_safety_checks.c',
+'eina_sched.c',
+'eina_share_common.c',
+'eina_simple_xml_parser.c',
+'eina_str.c',
+'eina_strbuf.c',
+'eina_strbuf_common.c',
+'eina_stringshare.c',
+'eina_thread.c',
+'eina_thread_queue.c',
+'eina_tiler.c',
+'eina_tmpstr.c',
+'eina_unicode.c',
+'eina_ustrbuf.c',
+'eina_ustringshare.c',
+'eina_util.c',
+'eina_value.c',
+'eina_value_util.c',
+'eina_xattr.c',
+'eina_private.h',
+'eina_share_common.h',
+'eina_strbuf_common.h',
+'eina_quaternion.c',
+'eina_bezier.c',
+'eina_safepointer.c',
+'eina_freeq.c',
+'eina_slstr.c',
+'eina_vpath.c',
+'eina_vpath_xdg.c'
+]
+
+if target_machine.system() == 'cygwin'
+ sources += 'eina_file_win32.c'
+else
+ sources += 'eina_file.c'
+endif
+
+eina_config = configuration_data()
+
+if get_option('buildtype') == 'plain'
+ with_max_log_level=-1
+ stringshare_usage=false
+ use_valgrind=true
+ debug_malloc=false
+ debug_threads=false
+ default_mempool=false
+ want_cow_magic=false
+elif get_option('buildtype') == 'debug'
+ with_max_log_level=-1
+ stringshare_usage=true
+ use_valgrind=true
+ debug_malloc=true
+ debug_threads=true
+ default_mempool=true
+ want_cow_magic=true
+elif get_option('buildtype') == 'release'
+ with_max_log_level=3
+ stringshare_usage=false
+ use_valgrind=false
+ debug_malloc=false
+ debug_threads=false
+ default_mempool=false
+ want_cow_magic=false
+endif
+
+if with_max_log_level != -1
+ config_h.set('EINA_LOG_LEVEL_MAXIMUM', with_max_log_level)
+endif
+
+if stringshare_usage
+ config_h.set('EINA_STRINGSHARE_USAGE', 1)
+endif
+
+if use_valgrind
+ valgrind = dependency('valgrind', required: false)
+ if valgrind.found() == false
+ config_h.set('NVALGRIND', 1)
+ else
+ config_h.set('HAVE_VALGRIND', 1)
+ endif
+ eina_deps += valgrind
+else
+ config_h.set('NVALGRIND', 1)
+ valgrind = []
+endif
+
+if debug_malloc
+ config_h.set('EINA_DEBUG_MALLOC', 1)
+endif
+
+if want_cow_magic
+ config_h.set('EINA_COW_MAGIC_ON', 1)
+endif
+
+if get_option('eina-magic-debug')
+ eina_config.set('EINA_MAGIC_DEBUG', '1')
+endif
+
+if default_mempool
+ eina_config.set('EINA_DEFAULT_MEMPOOL', '1')
+endif
+
+if get_option('systemd') == true
+ systemd = dependency('libsystemd')
+ eina_deps += systemd
+ config_h.set('HAVE_SYSTEMD', '1')
+else
+ systemd = []
+endif
+
+
+eina_config.set('EINA_SAFETY_CHECKS', '1')
+eina_config.set('EINA_HAVE_THREADS', '1')
+
+
+if cc.has_header_symbol('pthread.h', 'pthread_barrier_init')
+ eina_config.set('EINA_HAVE_PTHREAD_BARRIER', '1')
+endif
+
+if target_machine.system() == 'linux'
+ pthread_np_header_file = 'pthread.h'
+ pthread_setname_np_api = 'pthread_setname_np'
+ pthread_args = '-D_GNU_SOURCE'
+else
+ pthread_np_header_file = 'pthread_np.h'
+ pthread_setname_np_api = 'pthread_set_name_np'
+ pthread_args = []
+endif
+
+if cc.has_header_symbol(pthread_np_header_file, pthread_setname_np_api, args : pthread_args)
+ eina_config.set('EINA_HAVE_PTHREAD_SETNAME', '1')
+endif
+
+if cc.has_header_symbol(pthread_np_header_file, 'pthread_attr_setaffinity_np', args : pthread_args)
+ eina_config.set('EINA_HAVE_PTHREAD_AFFINITY', '1')
+endif
+# FIXME the author of eina_debug probebly never ran with EINA_HAVE_DEBUG_THREADS
+# however eina debug decides to init that lock and never frees it. which means
+# the code in eina_main.c will not work in the way it currently is there.
+
+#if debug_threads or get_option('debug-threads')
+# eina_config.set('EINA_HAVE_DEBUG_THREADS', '1')
+#endif
+
+eina_config.set('EINA_SIZEOF_WCHAR_T', cc.sizeof('wchar_t', prefix : '#include<wchar.h>'))
+
+uintptr_size = cc.sizeof('uintptr_t', prefix : '#include<stdint.h>')
+
+eina_config.set('EINA_SIZEOF_UINTPTR_T', uintptr_size)
+config_h.set('SIZEOF_UINTPTR_T', uintptr_size)
+
+if cc.has_header('dirent.h')
+ eina_config.set('EINA_CONFIGURE_HAVE_DIRENT_H', '1')
+endif
+
+eina_config.set('EINA_ENABLE_LOG', '1')
+
+if cc.has_header_symbol('alloca.h', 'alloca')
+ eina_config.set('EINA_HAVE_ALLOCA_H', '1')
+endif
+
+if cc.has_header('byteswap.h')
+ eina_config.set('EINA_HAVE_BYTESWAP_H', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_16')
+ eina_config.set('EINA_HAVE_BSWAP16', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_32')
+ eina_config.set('EINA_HAVE_BSWAP32', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_64')
+ eina_config.set('EINA_HAVE_BSWAP64', '1')
+endif
+
+if cc.has_header_symbol('pthread.h', 'pthread_spin_init')
+ eina_config.set('EINA_HAVE_POSIX_SPINLOCK', '1')
+endif
+
+if target_machine.system() == 'darwin'
+ if cc.has_header_symbol('libkern/OSAtomic.h', 'OSSpinLockTry')
+ eina_config.set('EINA_HAVE_OSX_SPINLOCK', 1)
+ endif
+ if cc.has_header_symbol('mach/task.h', 'semaphore_create')
+ eina_config.set('EINA_HAVE_OSX_SEMAPHORE', 1)
+ endif
+
+endif
+
+eina_config_file = configure_file(
+ output: 'eina_config.h',
+ configuration: eina_config,
+ install: true)
+
+public_headers += eina_config_file
+
+unwind = dependency('libunwind-generic', required: false)
+if unwind.found()
+ config_h.set('HAVE_UNWIND', 1)
+ eina_deps += unwind
+endif
+
+#for the case that the iconv library is not part of libc but rather libiconv or smth. like that
+iconv = dependency('iconv', required: false)
+if iconv.found() == false
+ iconv = cc.find_library('iconv', required: false)
+endif
+
+execinfo = cc.find_library('execinfo', required: false)
+
+eina_lib = library('eina', sources,
+ include_directories : config_dir,
+ dependencies: [m, rt, dl, execinfo, iconv, eina_deps, thread_dep, eina_mem_pools],
+ install: true,
+ version : meson.project_version()
+)
+
+
+eina = declare_dependency(
+ include_directories: [include_directories('.')] + config_dir,
+ dependencies : eina_pub_deps + eina_deps,
+ link_with: eina_lib,
+)
+
+install_headers(public_headers,
+ install_dir : dir_package_include,
+)
+
+install_headers(public_sub_headers,
+ install_dir : join_paths(dir_package_include, 'eina')
+)
+
+automatic_pkgfile = false
+
+pkgconfig.generate(eina_lib,
+ name : 'eina',
+ subdirs : ['eina-'+version_major, 'efl-'+version_major, join_paths('eina-'+version_major, 'eina')],
+ version : version_major + '.' + version_minor,
+ libraries : eina_pub_deps,
+)
diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build
new file mode 100644
index 0000000000..2c685b1fba
--- /dev/null
+++ b/src/lib/eio/meson.build
@@ -0,0 +1,90 @@
+pub_eo_file_target = []
+
+pub_eo_files = [
+ 'eio_model.eo',
+ 'efl_io_manager.eo',
+ 'eio_sentry.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
+
+pub_eo_types_files = []
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eio_header_src = [
+ 'Eio.h',
+ 'Eio_Legacy.h',
+ 'Eio_Eo.h',
+ 'eio_inline_helper.x'
+]
+
+eio_src = [
+ 'eio_dir.c',
+ 'eio_eet.c',
+ 'eio_file.c',
+ 'efl_io_manager.c',
+ 'eio_sentry.c',
+ 'eio_main.c',
+ 'eio_map.c',
+ 'eio_monitor.c',
+ 'eio_monitor_poll.c',
+ 'eio_single.c',
+ 'eio_xattr.c',
+ 'eio_model.c',
+ 'eio_model_private.h',
+ 'eio_private.h',
+ 'eio_sentry_private.h'
+]
+
+linker_args = []
+
+if target_machine.system() == 'windows'
+ eio_src += ['eio_monitor_win32.c']
+elif target_machine.system() == 'darwin'
+ eio_src += ['eio_monitor_cocoa.c']
+ linker_args = [['-framework', 'CoreServices']]
+elif cc.has_header('sys/inotify.h')
+ eio_src += ['eio_monitor_inotify.c']
+elif target_machine.system() == 'bsd'
+ eio_src += ['eio_monitor_kevent.c']
+endif
+
+eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet_mime]
+eio_pub_deps = [eina, eet]
+
+eio_lib = library('eio',
+ eio_src, pub_eo_file_target,
+ dependencies: [eina, eo, efl, m, eio_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ link_args : linker_args,
+ version : meson.project_version()
+)
+
+eio = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eio_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eio_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eio_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eldbus/meson.build b/src/lib/eldbus/meson.build
new file mode 100644
index 0000000000..57f2981c4a
--- /dev/null
+++ b/src/lib/eldbus/meson.build
@@ -0,0 +1,114 @@
+eldbus_deps = [ecore]
+eldbus_pub_deps = [eina, eo, efl]
+
+pub_eo_files = [
+ 'eldbus_model_connection.eo',
+ 'eldbus_model_object.eo',
+ 'eldbus_model_proxy.eo',
+ 'eldbus_model_method.eo',
+ 'eldbus_model_arguments.eo',
+ 'eldbus_model_signal.eo',
+ 'eldbus_model.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
+
+
+pub_eo_types_files = [
+ 'eldbus_types.eot'
+]
+
+foreach eo_file : pub_eo_types_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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eldbus_header_src = [
+ 'Eldbus.h',
+ 'eldbus_connection.h',
+ 'eldbus_freedesktop.h',
+ 'eldbus_message.h',
+ 'eldbus_object.h',
+ 'eldbus_pending.h',
+ 'eldbus_proxy.h',
+ 'eldbus_service.h',
+ 'eldbus_signal_handler.h',
+ 'eldbus_message_helper.h',
+ 'eldbus_introspection.h',
+ 'Eldbus_Model.h',
+ 'eldbus_message_eina_value.h'
+]
+
+eldbus_src = [
+ 'eldbus_private.h',
+ 'eldbus_private_types.h',
+ 'eldbus_model_private.h',
+ 'eldbus_model_proxy_private.h',
+ 'eldbus_model_object_private.h',
+ 'eldbus_model_arguments_private.h',
+ 'eldbus_model_connection_private.h',
+ 'eldbus_model_signal_private.h',
+ 'eldbus_model_method_private.h',
+ 'eldbus_proxy.c',
+ 'eldbus_core.c',
+ 'eldbus_message.c',
+ 'eldbus_object.c',
+ 'eldbus_pending.c',
+ 'eldbus_freedesktop.c',
+ 'eldbus_service.c',
+ 'eldbus_signal_handler.c',
+ 'eldbus_message_helper.c',
+ 'eldbus_message_to_eina_value.c',
+ 'eldbus_message_from_eina_value.c',
+ 'eldbus_model.c',
+ 'eldbus_model_connection.c',
+ 'eldbus_model_object.c',
+ 'eldbus_model_proxy.c',
+ 'eldbus_model_method.c',
+ 'eldbus_model_arguments.c',
+ 'eldbus_model_signal.c',
+ 'eldbus_introspection.c'
+]
+
+eldbus_deps += dependency('dbus-1')
+
+eldbus_lib = library('eldbus',
+ eldbus_src, pub_eo_file_target,
+ dependencies: eldbus_pub_deps + eldbus_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+eldbus = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eldbus_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eldbus_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eldbus_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
new file mode 100644
index 0000000000..bcc880771e
--- /dev/null
+++ b/src/lib/elementary/meson.build
@@ -0,0 +1,951 @@
+pub_legacy_eo_files = [
+ 'efl_ui_button_legacy.eo',
+ 'efl_ui_check_legacy.eo',
+ 'efl_ui_radio_legacy.eo',
+ 'efl_ui_bg_widget_legacy.eo',
+ 'efl_ui_video_legacy.eo',
+ 'efl_ui_frame_legacy.eo',
+ 'efl_ui_panes_legacy.eo',
+ 'efl_ui_image_zoomable_legacy.eo',
+ 'efl_ui_flip_legacy.eo',
+ 'efl_ui_win_legacy.eo',
+ 'efl_ui_image_legacy.eo',
+ 'efl_ui_progressbar_legacy.eo',
+ 'efl_ui_clock_legacy.eo',
+ 'efl_ui_layout_legacy.eo',
+ 'elm_code_widget_legacy.eo',
+ 'efl_ui_win_socket_legacy.eo',
+ 'efl_ui_win_inlined_legacy.eo',
+ 'elm_interface_fileselector.eo',
+ 'elm_calendar.eo',
+ 'elm_calendar_item.eo',
+ 'elm_clock.eo',
+ 'elm_colorselector.eo',
+ 'elm_combobox.eo',
+ 'elm_conformant.eo',
+ 'elm_ctxpopup.eo',
+ 'elm_dayselector.eo',
+ 'elm_entry.eo',
+ 'elm_fileselector.eo',
+ 'elm_gengrid.eo',
+ 'elm_gengrid_pan.eo',
+ 'elm_genlist.eo',
+ 'elm_genlist_pan.eo',
+ 'elm_gesture_layer.eo',
+ 'elm_glview.eo',
+ 'elm_hover.eo',
+ 'elm_index.eo',
+ 'elm_label.eo',
+ 'elm_list.eo',
+ 'elm_map.eo',
+ 'elm_map_pan.eo',
+ 'elm_menu.eo',
+ 'elm_notify.eo',
+ 'elm_panel.eo',
+ 'elm_player.eo',
+ 'elm_plug.eo',
+ 'elm_popup.eo',
+ 'elm_route.eo',
+ 'elm_scroller.eo',
+ 'elm_sys_notify_interface.eo',
+ 'elm_sys_notify.eo',
+ 'elm_sys_notify_dbus.eo',
+ 'elm_systray.eo',
+ 'elm_color_item.eo',
+ 'elm_dayselector_item.eo',
+ 'elm_flipselector_item.eo',
+ 'elm_menu_item.eo',
+ 'elm_ctxpopup_item.eo',
+ 'elm_index_item.eo',
+ 'elm_widget_item_static_focus.eo',
+ 'elm_genlist_item.eo',
+ 'elm_gengrid_item.eo',
+ 'elm_list_item.eo',
+ 'elm_popup_item.eo',
+ 'elm_ctxpopup_part.eo',
+ 'elm_dayselector_part.eo',
+ 'elm_entry_part.eo',
+ 'elm_fileselector_entry_part.eo',
+ 'elm_flip_part.eo',
+ 'elm_hover_part.eo',
+ 'elm_mapbuf_part.eo',
+ 'elm_naviframe_part.eo',
+ 'elm_notify_part.eo',
+ 'elm_panel_part.eo',
+ 'elm_player_part.eo',
+ 'elm_popup_part.eo',
+ 'elm_scroller_part.eo',
+ 'elm_label_part.eo',
+ 'elm_actionslider_part.eo',
+ 'elm_bubble_part.eo',
+ 'elm_fileselector_part.eo',
+ 'elm_access.eo',
+ 'elm_actionslider.eo',
+ 'elm_box.eo',
+ 'elm_bubble.eo',
+ 'elm_diskselector.eo',
+ 'elm_diskselector_item.eo',
+ 'elm_fileselector_button.eo',
+ 'elm_fileselector_entry.eo',
+ 'elm_flipselector.eo',
+ 'elm_grid.eo',
+ 'elm_hoversel.eo',
+ 'elm_hoversel_item.eo',
+ 'elm_icon.eo',
+ 'elm_inwin.eo',
+ 'elm_mapbuf.eo',
+ 'elm_naviframe.eo',
+ 'elm_naviframe_item.eo',
+ 'elm_photo.eo',
+ 'elm_prefs.eo',
+ 'elm_segment_control.eo',
+ 'elm_segment_control_item.eo',
+ 'elm_separator.eo',
+ 'elm_slideshow.eo',
+ 'elm_slideshow_item.eo',
+ 'elm_table.eo',
+ 'elm_thumb.eo',
+ 'efl_ui_view_list_precise_layouter.eo'
+]
+
+pub_eo_file_target = []
+
+priv_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_ui_widget.eo',
+ 'efl_ui_bg.eo',
+ 'efl_ui_bg_widget.eo',
+ 'efl_ui_button.eo',
+ 'efl_ui_calendar.eo',
+ 'efl_ui_calendar_item.eo',
+ 'efl_ui_check.eo',
+ 'efl_ui_flip.eo',
+ 'efl_ui_frame.eo',
+ 'efl_ui_stack.eo',
+ 'efl_ui_image.eo',
+ 'efl_ui_image_zoomable.eo',
+ 'efl_ui_layout_object.eo',
+ 'efl_ui_nstate.eo',
+ 'efl_ui_navigation_bar.eo',
+ 'efl_ui_navigation_bar_part.eo',
+ 'efl_ui_navigation_bar_part_back_button.eo',
+ 'efl_ui_navigation_layout.eo',
+ 'efl_ui_panes.eo',
+ 'efl_ui_progressbar.eo',
+ 'efl_ui_radio.eo',
+ 'efl_ui_slider.eo',
+ 'efl_ui_slider_interval.eo',
+ 'efl_ui_spin.eo',
+ 'efl_ui_spin_button.eo',
+ 'efl_ui_datepicker.eo',
+ 'efl_ui_timepicker.eo',
+ 'efl_ui_tags.eo',
+ 'efl_ui_video.eo',
+ 'efl_ui_win.eo',
+ 'efl_ui_win_inlined.eo',
+ 'efl_ui_win_socket.eo',
+ 'efl_ui_box.eo',
+ 'efl_ui_box_flow.eo',
+ 'efl_ui_box_stack.eo',
+ 'efl_ui_table.eo',
+ 'efl_ui_table_static.eo',
+ 'efl_text_interactive.eo',
+ 'efl_ui_text.eo',
+ 'efl_ui_popup.eo',
+ 'efl_ui_popup_part_backwall.eo',
+ 'efl_ui_popup_alert.eo',
+ 'efl_ui_popup_alert_part.eo',
+ 'efl_ui_popup_alert_scroll.eo',
+ 'efl_ui_popup_alert_scroll_part.eo',
+ 'efl_ui_popup_alert_text.eo',
+ 'efl_ui_popup_alert_text_part.eo',
+ 'efl_ui_popup_anchor.eo',
+ 'efl_ui_text_editable.eo',
+ 'efl_ui_text_async.eo',
+ 'efl_ui_text_factory_images.eo',
+ 'efl_ui_text_factory_emoticons.eo',
+ 'efl_ui_text_factory_fallback.eo',
+ 'efl_ui_textpath.eo',
+ 'efl_ui_translatable.eo',
+ 'efl_ui_clock.eo',
+ 'efl_ui_cursor.eo',
+ 'efl_ui_image_factory.eo',
+ 'efl_ui_focus_manager.eo',
+ 'efl_ui_focus_manager_calc.eo',
+ 'efl_ui_focus_manager_sub.eo',
+ 'efl_ui_focus_manager_root_focus.eo',
+ 'efl_ui_focus_object.eo',
+ 'efl_ui_focus_layer.eo',
+ 'efl_ui_focus_composition.eo',
+ 'efl_ui_focus_util.eo',
+ 'efl_ui_flip_part.eo',
+ 'efl_ui_layout_factory.eo',
+ 'efl_ui_layout_part.eo',
+ 'efl_ui_layout_part_box.eo',
+ 'efl_ui_layout_part_content.eo',
+ 'efl_ui_layout_part_text.eo',
+ 'efl_ui_layout_part_table.eo',
+ 'efl_ui_layout_part_bg.eo',
+ 'efl_ui_layout_part_legacy.eo',
+ 'efl_ui_view_list.eo',
+ 'efl_ui_view_list_model.eo',
+ 'efl_ui_view_list_pan.eo',
+ 'efl_ui_view_list_segarray.eo',
+ 'efl_ui_view_list_relayout.eo',
+ 'efl_ui_item.eo',
+ 'efl_ui_list_item.eo',
+ 'efl_ui_list_default_item_part_icon.eo',
+ 'efl_ui_list_default_item_part_end.eo',
+ 'efl_ui_list_default_item.eo',
+ 'efl_ui_list_empty_item.eo',
+ 'efl_ui_list.eo',
+ 'efl_ui_panes_part.eo',
+ 'efl_ui_progressbar_part.eo',
+ 'elm_slider.eo',
+ 'elm_slider_part_indicator.eo',
+ 'efl_ui_textpath_part.eo',
+ 'efl_ui_widget_part.eo',
+ 'efl_ui_widget_part_bg.eo',
+ 'efl_ui_widget_part_shadow.eo',
+ 'efl_ui_win_part.eo',
+ 'efl_ui_scroller.eo',
+ 'efl_ui_scroll_manager.eo',
+ 'efl_ui_pan.eo',
+ 'efl_access_object.eo',
+ 'efl_access_action.eo',
+ 'efl_access_component.eo',
+ 'efl_access_editable_text.eo',
+ 'efl_access_selection.eo',
+ 'efl_access_text.eo',
+ 'efl_access_value.eo',
+ 'efl_access_widget_action.eo',
+ 'efl_access_window.eo',
+ 'efl_config_global.eo',
+ 'elm_code_widget.eo',
+ 'efl_selection.eo',
+ 'efl_ui_dnd.eo',
+ 'efl_ui_dnd_container.eo',
+ 'efl_ui_focus_manager_window_root.eo',
+ 'efl_ui_pager.eo',
+ 'efl_page_transition.eo',
+ 'efl_page_transition_scroll.eo',
+ 'efl_page_indicator.eo',
+ 'efl_page_indicator_icon.eo',
+ 'efl_ui_tab_pager.eo',
+ 'efl_ui_tab_bar.eo',
+ 'efl_ui_tab_page.eo',
+ 'efl_ui_tab_page_part_tab.eo',
+ 'efl_ui_widget_focus_manager.eo',
+ 'efl_ui_legacy.eo',
+ 'efl_ui_button_legacy_part.eo',
+ 'efl_ui_radio_legacy_part.eo',
+ 'efl_ui_check_legacy_part.eo',
+ 'efl_ui_progressbar_legacy_part.eo',
+ 'elm_spinner.eo',
+ 'elm_multibuttonentry.eo',
+ 'elm_multibuttonentry_item.eo',
+ 'elm_multibuttonentry_part.eo',
+ 'elm_interface_scrollable.eo',
+ 'elm_atspi_bridge.eo',
+ 'elm_atspi_app_object.eo',
+ 'efl_ui_image_zoomable_pan.eo',
+ 'elm_pan.eo',
+ 'elm_toolbar.eo',
+ 'elm_toolbar_item.eo',
+ 'elm_view_list.eo',
+ 'elm_view_form.eo',
+ 'elm_web.eo',
+ 'elm_widget_item.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'elm_general.eot',
+ 'efl_ui.eot',
+ 'efl_ui_view_list_types.eot',
+ 'efl_selection_types.eot',
+ 'efl_ui_dnd_types.eot'
+]
+
+foreach eo_file : pub_eo_types_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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+priv_eo_files = [
+ 'efl_ui_internal_text_interactive.eo',
+ 'efl_ui_focus_composition_adapter.eo',
+ 'efl_ui_focus_parent_provider.eo',
+ 'efl_ui_focus_parent_provider_standard.eo',
+ 'efl_ui_focus_parent_provider_gen.eo',
+ 'efl_ui_model_state.eo',
+ 'efl_selection_manager.eo',
+ 'efl_datetime_manager.eo',
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += 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
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+elementary_headers_unstable = [
+ 'elm_gen_common.h',
+ 'elm_atspi_bridge.h',
+ 'efl_access_object.h',
+ 'efl_access_text.h',
+ 'efl_access_widget_action.h',
+ 'efl_access_window.h',
+ 'elm_interface_fileselector.h',
+ 'elm_interface_scrollable.h',
+ 'elm_interfaces.h',
+ 'elm_widget.h',
+ 'elm_widget_actionslider.h',
+ 'elm_widget_box.h',
+ 'elm_widget_bubble.h',
+ 'efl_ui_button_private.h',
+ 'efl_ui_bg_widget_private.h',
+ 'elm_widget_calendar.h',
+ 'efl_ui_calendar_private.h',
+ 'efl_ui_check_private.h',
+ 'elm_widget_clock.h',
+ 'elm_widget_colorselector.h',
+ 'elm_widget_conform.h',
+ 'elm_widget_container.h',
+ 'elm_widget_combobox.h',
+ 'elm_widget_ctxpopup.h',
+ 'elm_widget_dayselector.h',
+ 'elm_widget_diskselector.h',
+ 'elm_widget_entry.h',
+ 'elm_widget_fileselector.h',
+ 'elm_widget_fileselector_button.h',
+ 'elm_widget_fileselector_entry.h',
+ 'efl_ui_widget_flip.h',
+ 'elm_widget_flipselector.h',
+ 'efl_ui_widget_frame.h',
+ 'efl_ui_stack_private.h',
+ 'elm_widget_gengrid.h',
+ 'elm_widget_genlist.h',
+ 'elm_widget_glview.h',
+ 'elm_widget_grid.h',
+ 'elm_widget_hover.h',
+ 'elm_widget_hoversel.h',
+ 'elm_widget_icon.h',
+ 'efl_ui_widget_image.h',
+ 'efl_ui_popup_private.h',
+ 'efl_ui_popup_alert_private.h',
+ 'efl_ui_popup_alert_scroll_private.h',
+ 'efl_ui_popup_alert_text_private.h',
+ 'efl_ui_popup_anchor_private.h',
+ 'elm_widget_index.h',
+ 'elm_widget_inwin.h',
+ 'elm_widget_label.h',
+ 'elm_widget_layout.h',
+ 'elm_widget_list.h',
+ 'elm_widget_map.h',
+ 'elm_widget_mapbuf.h',
+ 'elm_widget_menu.h',
+ 'elm_widget_multibuttonentry.h',
+ 'elm_widget_naviframe.h',
+ 'efl_ui_navigation_bar_private.h',
+ 'efl_ui_navigation_layout_private.h',
+ 'elm_widget_notify.h',
+ 'elm_widget_panel.h',
+ 'efl_ui_panes_private.h',
+ 'elm_widget_photo.h',
+ 'efl_ui_image_zoomable_private.h',
+ 'elm_widget_player.h',
+ 'elm_widget_plug.h',
+ 'elm_widget_popup.h',
+ 'elm_widget_prefs.h',
+ 'efl_ui_progressbar_private.h',
+ 'efl_ui_radio_private.h',
+ 'elm_widget_route.h',
+ 'elm_widget_scroller.h',
+ 'elm_widget_segment_control.h',
+ 'elm_widget_separator.h',
+ 'elm_widget_slider.h',
+ 'efl_ui_slider_private.h',
+ 'efl_ui_slider_interval_private.h',
+ 'elm_widget_slideshow.h',
+ 'elm_widget_spinner.h',
+ 'efl_ui_spin_private.h',
+ 'efl_ui_spin_button_private.h',
+ 'efl_ui_datepicker_private.h',
+ 'efl_ui_timepicker_private.h',
+ 'efl_ui_tags_private.h',
+ 'elm_widget_table.h',
+ 'elm_widget_thumb.h',
+ 'elm_widget_toolbar.h',
+ 'efl_ui_video_private.h',
+ 'efl_ui_item_private.h',
+ 'efl_ui_list_item_private.h',
+ 'efl_ui_list_private.h',
+ 'efl_ui_view_list_private.h',
+ 'efl_ui_view_list_segarray.h',
+ 'elm_widget_web.h',
+ 'efl_ui_clock.h',
+ 'elm_code.h',
+ 'elm_code_widget_legacy.h',
+ 'elm_code_widget_selection.h',
+ 'elm_code_diff_widget.h',
+ 'elm_code_common.h',
+ 'elm_code_line.h',
+ 'elm_code_text.h',
+ 'elm_code_indent.h',
+ 'elm_code_file.h',
+ 'elm_code_parse.h',
+ 'elm_code_syntax.h',
+ 'efl_ui_widget_scroller.h',
+ 'efl_ui_widget_scroll_manager.h',
+ 'efl_ui_widget_pan.h',
+ 'efl_ui_nstate_private.h',
+ 'Efl_Ui.h',
+ 'efl_ui_widget_pager.h',
+ 'efl_page_transition.h',
+ 'efl_page_transition_scroll.h',
+ 'efl_page_indicator.h',
+ 'efl_page_indicator_icon.h',
+ 'efl_ui_tab_pager_private.h',
+ 'efl_ui_tab_bar_private.h',
+ 'efl_ui_tab_page_private.h'
+]
+
+elementary_pub_headers = [
+ 'elc_ctxpopup.h',
+ 'elc_ctxpopup_legacy.h',
+ 'elc_combobox.h',
+ 'elc_combobox_legacy.h',
+ 'elc_fileselector.h',
+ 'elc_fileselector_legacy.h',
+ 'elc_fileselector_common.h',
+ 'elc_fileselector_button.h',
+ 'elc_fileselector_button_legacy.h',
+ 'elc_fileselector_entry.h',
+ 'elc_fileselector_entry_legacy.h',
+ 'elc_hoversel.h',
+ 'elc_hoversel_legacy.h',
+ 'elc_multibuttonentry.h',
+ 'elc_multibuttonentry_eo.h',
+ 'elc_multibuttonentry_legacy.h',
+ 'elc_multibuttonentry_common.h',
+ 'elc_naviframe.h',
+ 'elc_naviframe_legacy.h',
+ 'elc_naviframe_common.h',
+ 'elc_popup.h',
+ 'elc_popup_legacy.h',
+ 'elm_access.h',
+ 'elm_actionslider.h',
+ 'elm_actionslider_legacy.h',
+ 'elm_app.h',
+ 'elm_atspi_app_object.h',
+ 'elm_authors.h',
+ 'elm_bg.h',
+ 'elm_bg_legacy.h',
+ 'elm_box.h',
+ 'elm_box_legacy.h',
+ 'elm_box_common.h',
+ 'elm_bubble.h',
+ 'elm_bubble_legacy.h',
+ 'elm_button.h',
+ 'efl_ui_button_eo.h',
+ 'elm_button_legacy.h',
+ 'elm_cache.h',
+ 'elm_calendar.h',
+ 'elm_calendar_legacy.h',
+ 'elm_calendar_common.h',
+ 'efl_ui_calendar.h',
+ 'elm_check.h',
+ 'efl_ui_check_eo.h',
+ 'elm_check_legacy.h',
+ 'elm_clock.h',
+ 'elm_clock_legacy.h',
+ 'elm_cnp.h',
+ 'elm_colorselector.h',
+ 'elm_colorselector_legacy.h',
+ 'elm_colorselector_common.h',
+ 'elm_color_class.h',
+ 'elm_config.h',
+ 'elm_conform.h',
+ 'elm_conform_legacy.h',
+ 'elm_cursor.h',
+ 'elm_datetime.h',
+ 'elm_dayselector.h',
+ 'elm_dayselector_legacy.h',
+ 'elm_debug.h',
+ 'elm_deprecated.h',
+ 'elm_diskselector.h',
+ 'elm_diskselector_common.h',
+ 'elm_diskselector_legacy.h',
+ 'elm_entry.h',
+ 'elm_entry_common.h',
+ 'elm_entry_eo.h',
+ 'elm_entry_legacy.h',
+ 'elm_finger.h',
+ 'elm_flip.h',
+ 'efl_ui_flip_eo.h',
+ 'efl_ui_flip_legacy.h',
+ 'elm_flipselector.h',
+ 'elm_flipselector_legacy.h',
+ 'elm_focus.h',
+ 'elm_focus_item.h',
+ 'elm_font.h',
+ 'elm_frame.h',
+ 'efl_ui_frame_eo.h',
+ 'efl_ui_frame_legacy.h',
+ 'elm_gen.h',
+ 'elm_general.h',
+ 'elm_gengrid.h',
+ 'elm_gengrid_common.h',
+ 'elm_gengrid_legacy.h',
+ 'elm_genlist.h',
+ 'elm_genlist_common.h',
+ 'elm_genlist_legacy.h',
+ 'elm_gesture_layer.h',
+ 'elm_gesture_layer_common.h',
+ 'elm_gesture_layer_legacy.h',
+ 'elm_getting_started.h',
+ 'elm_glview.h',
+ 'elm_glview_common.h',
+ 'elm_glview_legacy.h',
+ 'elm_grid.h',
+ 'elm_grid_legacy.h',
+ 'elm_hover.h',
+ 'elm_hover_legacy.h',
+ 'elm_icon.h',
+ 'elm_icon_legacy.h',
+ 'elm_image.h',
+ 'elm_image_eo.h',
+ 'elm_image_legacy.h',
+ 'elm_index.h',
+ 'elm_index_legacy.h',
+ 'elm_inwin.h',
+ 'elm_inwin_legacy.h',
+ 'elm_label.h',
+ 'elm_label_legacy.h',
+ 'elm_layout.h',
+ 'elm_layout_common.h',
+ 'elm_layout_legacy.h',
+ 'elm_list.h',
+ 'elm_list_legacy.h',
+ 'elm_macros.h',
+ 'elm_map.h',
+ 'elm_map_common.h',
+ 'elm_map_legacy.h',
+ 'elm_mapbuf.h',
+ 'elm_mapbuf_legacy.h',
+ 'elm_menu.h',
+ 'elm_menu_legacy.h',
+ 'elm_mirroring.h',
+ 'elm_need.h',
+ 'elm_notify.h',
+ 'elm_notify_common.h',
+ 'elm_notify_legacy.h',
+ 'efl_ui_nstate.h',
+ 'elm_object.h',
+ 'elm_object_item.h',
+ 'elm_panel.h',
+ 'elm_panel_common.h',
+ 'elm_panel_legacy.h',
+ 'elm_panes.h',
+ 'efl_ui_panes_eo.h',
+ 'elm_panes_legacy.h',
+ 'elm_photo.h',
+ 'elm_photo_legacy.h',
+ 'elm_photocam.h',
+ 'efl_ui_image_zoomable_eo.h',
+ 'elm_photocam_legacy.h',
+ 'elm_plug.h',
+ 'elm_plug_legacy.h',
+ 'elm_prefs.h',
+ 'elm_prefs_common.h',
+ 'elm_prefs_legacy.h',
+ 'elm_prefs_data.h',
+ 'elm_progressbar.h',
+ 'elm_progressbar_common.h',
+ 'efl_ui_progressbar_eo.h',
+ 'elm_progressbar_legacy.h',
+ 'elm_radio.h',
+ 'efl_ui_radio_eo.h',
+ 'elm_radio_legacy.h',
+ 'elm_route.h',
+ 'elm_route_legacy.h',
+ 'elm_scale.h',
+ 'elm_scroll.h',
+ 'elm_scroller.h',
+ 'elm_scroller_legacy.h',
+ 'elm_segment_control.h',
+ 'elm_segment_control_legacy.h',
+ 'elm_separator.h',
+ 'elm_separator_legacy.h',
+ 'elm_slider.h',
+ 'elm_slider_common.h',
+ 'elm_slider_legacy.h',
+ 'elm_slideshow.h',
+ 'elm_slideshow_common.h',
+ 'elm_slideshow_legacy.h',
+ 'elm_spinner.h',
+ 'elm_spinner_legacy.h',
+ 'elm_store.h',
+ 'elm_systray.h',
+ 'elm_systray_common.h',
+ 'elm_systray_watcher.h',
+ 'elm_sys_notify.h',
+ 'elm_table.h',
+ 'elm_table_legacy.h',
+ 'elm_theme.h',
+ 'elm_thumb.h',
+ 'elm_thumb_common.h',
+ 'elm_thumb_legacy.h',
+ 'elm_toolbar.h',
+ 'elm_toolbar_common.h',
+ 'elm_toolbar_eo.h',
+ 'elm_toolbar_legacy.h',
+ 'elm_tooltip.h',
+ 'elm_transit.h',
+ 'efl_ui_video.h',
+ 'efl_ui_video_eo.h',
+ 'efl_ui_video_legacy.h',
+ 'elm_view_list.h',
+ 'elm_view_form.h',
+ 'elm_web.h',
+ 'elm_web_common.h',
+ 'elm_web_eo.h',
+ 'elm_web_legacy.h',
+ 'elm_win.h',
+ 'elm_win_common.h',
+ 'elm_win_eo.h',
+ 'elm_win_legacy.h',
+ 'elm_helper.h',
+ 'elm_part_helper.h',
+]
+
+elementary_header_src = [
+ 'Elementary.h',
+ 'Elementary_Cursor.h'
+] + elementary_pub_headers + elementary_headers_unstable
+
+elementary_src = [
+ 'elm_priv.h',
+ 'elementary_config.h',
+ 'els_box.h',
+ 'elc_ctxpopup.c',
+ 'elc_fileselector.c',
+ 'elc_fileselector_button.c',
+ 'elc_fileselector_entry.c',
+ 'elc_hoversel.c',
+ 'elc_multibuttonentry.c',
+ 'elc_naviframe.c',
+ 'efl_ui_navigation_bar.c',
+ 'efl_ui_navigation_layout.c',
+ 'elc_player.c',
+ 'elc_popup.c',
+ 'elc_scrolled_entry.c',
+ 'elm_access.c',
+ 'elm_actionslider.c',
+ 'elm_atspi_app_object.c',
+ 'elm_atspi_bridge.c',
+ 'efl_ui_legacy.c',
+ 'efl_ui_bg.c',
+ 'efl_ui_bg_widget.c',
+ 'elm_box.c',
+ 'elm_bubble.c',
+ 'efl_ui_button.c',
+ 'elm_calendar.c',
+ 'efl_ui_calendar.c',
+ 'efl_ui_check.c',
+ 'elm_clock.c',
+ 'elm_code_line.c',
+ 'elm_code_text.c',
+ 'elm_code_indent.c',
+ 'elm_code_file.c',
+ 'elm_code_parse.c',
+ 'elm_code_syntax.c',
+ 'elm_code_widget_selection.c',
+ 'elm_code_widget.c',
+ 'elm_code_diff_widget.c',
+ 'elm_code.c',
+ 'elm_code_private.h',
+ 'elm_code_widget_private.h',
+ 'elm_colorselector.c',
+ 'elm_color_class.c',
+ 'elc_combobox.c',
+ 'elm_config.c',
+ 'elm_conform.c',
+ 'elm_datetime.c',
+ 'elm_dayselector.c',
+ 'elm_dbus_menu.c',
+ 'elm_diskselector.c',
+ 'elm_entry.c',
+ 'efl_ui_flip.c',
+ 'efl_ui_internal_text_interactive.c',
+ 'efl_ui_internal_text_interactive.h',
+ 'elm_flipselector.c',
+ 'elm_font.c',
+ 'efl_ui_frame.c',
+ 'efl_ui_stack.c',
+ 'elm_gengrid.c',
+ 'elm_genlist.c',
+ 'elm_gesture_layer.c',
+ 'elm_gesture_layer_extra_gestures.c',
+ 'elm_glview.c',
+ 'elm_grid.c',
+ 'elm_hover.c',
+ 'elm_icon.c',
+ 'efl_ui_image.c',
+ 'elm_index.c',
+ 'efl_access_object.c',
+ 'efl_access_action.c',
+ 'efl_access_component.c',
+ 'efl_access_editable_text.c',
+ 'efl_access_selection.c',
+ 'efl_access_text.c',
+ 'efl_access_value.c',
+ 'efl_access_widget_action.c',
+ 'efl_access_window.c',
+ 'elm_interface_fileselector.c',
+ 'elm_interface_scrollable.c',
+ 'elm_inwin.c',
+ 'elm_label.c',
+ 'efl_ui_layout_object.c',
+ 'efl_ui_layout_pack.c',
+ 'elm_list.c',
+ 'elm_main.c',
+ 'elm_map.c',
+ 'elm_mapbuf.c',
+ 'elm_menu.c',
+ 'elm_module.c',
+ 'elm_notify.c',
+ 'efl_ui_nstate.c',
+ 'elm_panel.c',
+ 'efl_ui_panes.c',
+ 'elm_photo.c',
+ 'efl_ui_image_zoomable.c',
+ 'elm_plug.c',
+ 'elm_prefs.c',
+ 'elm_prefs_data.c',
+ 'efl_ui_progressbar.c',
+ 'efl_ui_radio.c',
+ 'elm_route.c',
+ 'elm_scroller.c',
+ 'elm_segment_control.c',
+ 'elm_separator.c',
+ 'elm_slider.c',
+ 'efl_ui_slider.c',
+ 'efl_ui_slider_interval.c',
+ 'efl_ui_spin.c',
+ 'efl_ui_spin_button.c',
+ 'efl_ui_datepicker.c',
+ 'efl_ui_timepicker.c',
+ 'efl_ui_tags.c',
+ 'elm_slideshow.c',
+ 'elm_spinner.c',
+ 'elm_store.c',
+ 'elm_systray.c',
+ 'elm_systray_watcher.c',
+ 'elm_sys_notify_interface.c',
+ 'elm_sys_notify.c',
+ 'elm_sys_notify_dbus.c',
+ 'elm_table.c',
+ 'elm_theme.c',
+ 'elm_thumb.c',
+ 'elm_toolbar.c',
+ 'elm_transit.c',
+ 'elm_util.c',
+ 'efl_ui_video.c',
+ 'elm_view_list.c',
+ 'elm_view_form.c',
+ 'elm_web2.c',
+ 'efl_ui_widget.c',
+ 'efl_ui_win.c',
+ 'efl_ui_win_inlined.c',
+ 'efl_ui_win_socket.c',
+ 'elm_helper.c',
+ 'els_box.c',
+ 'els_cursor.c',
+ 'els_tooltip.c',
+ 'elu_ews_wm.c',
+ 'efl_ui_box.c',
+ 'efl_ui_box_flow.c',
+ 'efl_ui_box_stack.c',
+ 'efl_ui_box_layout.c',
+ 'efl_ui_box_private.h',
+ 'efl_ui_popup.c',
+ 'efl_ui_popup_alert.c',
+ 'efl_ui_popup_alert_scroll.c',
+ 'efl_ui_popup_alert_text.c',
+ 'efl_ui_popup_anchor.c',
+ 'efl_ui_table.c',
+ 'efl_ui_table_static.c',
+ 'efl_ui_table_private.h',
+ 'efl_ui_text.c',
+ 'efl_ui_text_factory_images.c',
+ 'efl_ui_text_factory_emoticons.c',
+ 'efl_ui_text_factory_fallback.c',
+ 'efl_ui_clock.c',
+ 'efl_ui_clock_private.h',
+ 'efl_ui_image_factory.c',
+ 'efl_ui_focus_manager.c',
+ 'efl_ui_focus_manager_calc.c',
+ 'efl_ui_focus_manager_sub.c',
+ 'efl_ui_focus_object.c',
+ 'efl_ui_focus_manager_root_focus.c',
+ 'efl_ui_textpath.c',
+ 'efl_ui_focus_layer.c',
+ 'efl_ui_focus_composition.c',
+ 'efl_ui_focus_parent_provider.c',
+ 'efl_ui_focus_parent_provider_standard.c',
+ 'efl_ui_focus_parent_provider_gen.c',
+ 'efl_ui_focus_util.c',
+ 'elm_widget_item_static_focus.c',
+ 'efl_ui_item.c',
+ 'efl_ui_list_item.c',
+ 'efl_ui_list_default_item.c',
+ 'efl_ui_list_empty_item.c',
+ 'efl_ui_list.c',
+ 'efl_ui_view_list.c',
+ 'efl_ui_view_list_precise_layouter.c',
+ 'efl_ui_view_list_segarray.c',
+ 'efl_ui_layout_factory.c',
+ 'efl_ui_scroller.c',
+ 'efl_ui_scroll_manager.c',
+ 'efl_ui_pan.c',
+ 'efl_selection_manager.c',
+ 'efl_selection_manager_private.h',
+ 'efl_selection.c',
+ 'efl_datetime_manager.c',
+ 'efl_ui_dnd.c',
+ 'elm_focus_legacy.c',
+ 'efl_ui_pager.c',
+ 'efl_page_transition.c',
+ 'efl_page_transition_scroll.c',
+ 'efl_page_indicator.c',
+ 'efl_page_indicator_icon.c',
+ 'efl_ui_focus_graph.h',
+ 'efl_ui_focus_graph.c',
+ 'efl_ui_tab_pager.c',
+ 'efl_ui_tab_bar.c',
+ 'efl_ui_tab_page.c',
+ 'efl_ui_widget_focus_manager.c'
+]
+
+elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl]
+elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con,
+ edje, eldbus, efreet, efreet_mime, efreet_trash, ethumb_client, efl, elocation]
+
+elm_options = configuration_data()
+
+config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root())
+config_h.set_quoted('MODULES_PATH', join_paths(dir_lib, 'modules'))
+config_h.set_quoted('ELEMENTARY_BASE_DIR', '.data')
+config_h.set_quoted('ICON_DIR', join_paths(dir_lib, 'icons'))
+
+elm_options.set('ELM_UNIX', '1')
+elm_options.set('ELM_ELOCATION', '1')
+
+if config_h.has('HAVE_ALLOCA_H')
+ elm_options.set('ELM_ALLOCA_H', '1')
+endif
+
+if config_h.has('HAVE_LIBINTL_H')
+ elm_options.set('ELM_LIBINTL_H', '1')
+endif
+
+if config_h.has('HAVE_DIRENT_H')
+ elm_options.set('ELM_DIRENT_H', '1')
+endif
+
+if get_option('x11')
+ config_h.set('HAVE_ELEMENTARY_X', '1')
+ elementary_deps += ecore_x
+endif
+
+if get_option('wl')
+ config_h.set('HAVE_ELEMENTARY_WL2', '1')
+ elementary_deps += ecore_wl2
+endif
+
+if get_option('drm')
+ config_h.set('HAVE_ELEMENTARY_DRM', '1')
+ elementary_deps += ecore_drm2
+endif
+
+if get_option('cocoa')
+ config_h.set('HAVE_ELEMENTARY_COCOA', '1')
+ elementary_deps += ecore_cocoa
+endif
+
+c = configure_file(
+ output: 'Elementary_Options.h',
+ install : true,
+ install_dir : dir_package_include,
+ configuration: elm_options)
+
+elm_package_c_args = package_c_args + ['-DELEMENTARY_BUILD=1']
+
+elementary_lib = library('elementary',
+ elementary_src, pub_eo_file_target, priv_eo_file_target, c,
+ dependencies: elementary_pub_deps + elementary_deps,
+ include_directories : config_dir + [include_directories('.')] + [include_directories(join_paths('..', '..', '..'))] + [ecore_evas_wayland_engine_include_dir],
+ install: true,
+ c_args : elm_package_c_args,
+ version : meson.project_version()
+)
+
+elementary = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elementary_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: elementary_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(elementary_header_src,
+ install_dir : dir_package_include,
+)
+
+elementary_config_dir = include_directories('.')
diff --git a/src/lib/elocation/gen/meson.build b/src/lib/elocation/gen/meson.build
new file mode 100644
index 0000000000..58de776fa5
--- /dev/null
+++ b/src/lib/elocation/gen/meson.build
@@ -0,0 +1,5 @@
+
+elocation_src += files([
+ 'eldbus_geo_clue2_client.c',
+ 'eldbus_geo_clue2_location.c',
+ 'eldbus_geo_clue2_manager.c'])
diff --git a/src/lib/elocation/meson.build b/src/lib/elocation/meson.build
new file mode 100644
index 0000000000..080ea57278
--- /dev/null
+++ b/src/lib/elocation/meson.build
@@ -0,0 +1,28 @@
+elocation_deps = [eina, eo, efl, ecore, eldbus]
+elocation_pub_deps = [ecore, eldbus]
+
+elocation_src = files(['elocation.c'])
+
+subdir('gen')
+
+elocation_header_src = ['Elocation.h']
+
+
+elocation_lib = library('elocation',
+ elocation_src,
+ dependencies: [m] + elocation_deps + elocation_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+elocation = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elocation_lib,
+ dependencies: elocation_pub_deps,
+)
+
+install_headers(elocation_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elput/meson.build b/src/lib/elput/meson.build
new file mode 100644
index 0000000000..c812ad7759
--- /dev/null
+++ b/src/lib/elput/meson.build
@@ -0,0 +1,43 @@
+elput_deps = [ecore, ecore_input, eeze, eo, m]
+elput_pub_deps = [eina, eldbus]
+pub_eo_file_target = []
+
+elput_header_src = [
+ 'Elput.h'
+]
+
+elput_src = [
+ 'elput_touch.c',
+ 'elput_evdev.c',
+ 'elput_input.c',
+ 'elput_logind.c',
+ 'elput_manager.c',
+ 'elput.c',
+ 'elput_private.h'
+]
+
+elput_deps += dependency('libinput', version : ['>=1.7.0'])
+elput_deps += dependency('xkbcommon', version : ['>=0.3.0'])
+elput_deps += dependency('libudev')
+if get_option('systemd')
+ elput_deps += systemd
+endif
+
+elput_lib = library('elput',
+ elput_src, pub_eo_file_target,
+ dependencies: elput_pub_deps + elput_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+elput = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elput_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: elput_pub_deps,
+)
+
+install_headers(elput_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elua/meson.build b/src/lib/elua/meson.build
new file mode 100644
index 0000000000..7e0c3af7ba
--- /dev/null
+++ b/src/lib/elua/meson.build
@@ -0,0 +1,24 @@
+elua_deps = [eina, eo, efl, ecore, ecore_file, intl]
+elua_pub_deps = [luajit]
+
+elua_src = ['elua.c', 'io.c', 'cache.c']
+elua_header_src = ['Elua.h']
+
+elua_lib = library('elua',
+ elua_src,
+ dependencies: [m, dl] + elua_deps + elua_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+elua = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elua_lib,
+ dependencies: elua_pub_deps,
+)
+
+install_headers(elua_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/embryo/meson.build b/src/lib/embryo/meson.build
new file mode 100644
index 0000000000..6ab8af8fe7
--- /dev/null
+++ b/src/lib/embryo/meson.build
@@ -0,0 +1,40 @@
+embryo_deps = [ecore]
+embryo_pub_deps = [eina, eo, efl]
+
+
+embryo_header_src = [
+ 'Embryo.h'
+]
+
+embryo_src = [
+ 'embryo_amx.c',
+ 'embryo_args.c',
+ 'embryo_float.c',
+ 'embryo_main.c',
+ 'embryo_rand.c',
+ 'embryo_str.c',
+ 'embryo_time.c',
+ 'embryo_private.h'
+]
+
+embryo_deps = [eina, m]
+
+embryo_lib = library('embryo',
+ embryo_src,
+ dependencies: [m, buildsystem] + embryo_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+embryo = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: embryo_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: embryo_pub_deps,
+)
+
+install_headers(embryo_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build
new file mode 100644
index 0000000000..4ae888c42a
--- /dev/null
+++ b/src/lib/emile/meson.build
@@ -0,0 +1,42 @@
+emile_deps = [jpeg, crypto, dependency('zlib')]
+emile_pub_deps = [eina, efl]
+
+emile_headers = [
+ 'Emile.h',
+ 'emile_cipher.h',
+ 'emile_compress.h',
+ 'emile_image.h',
+ 'emile_base64.h'
+]
+
+emile_src = [
+ 'emile_private.h',
+ 'emile_main.c',
+ 'emile_compress.c',
+ 'emile_image.c',
+ 'emile_base64.c',
+]
+
+if (get_option('crypto') == 'gnutls')
+ emile_src += 'emile_cipher_gnutls.c'
+elif (get_option('crypto') == 'openssl')
+ emile_src += 'emile_cipher_openssl.c'
+endif
+
+emile_lib = library('emile',
+ emile_src,
+ include_directories: config_dir,
+ dependencies: emile_pub_deps + emile_deps + [lz4, rg_etc, m],
+ install: true,
+ version : meson.project_version()
+)
+
+emile = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: emile_lib,
+ dependencies: [eina, efl],
+)
+
+install_headers(emile_headers,
+ install_dir: dir_package_include
+)
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 @@
+pub_legacy_eo_files = [
+ 'efl_canvas_video.eo'
+]
+
+pub_eo_file_target = []
+priv_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+emotion_header_src = [
+ 'Emotion.h',
+ 'Emotion_Legacy.h',
+ 'Emotion_Eo.h'
+]
+
+emotion_src = [
+ 'emotion_modules.h',
+ 'emotion_private.h',
+ 'emotion_smart.c',
+ 'emotion_webcam.c',
+ 'emotion_modules.c',
+ 'emotion_main.c'
+]
+
+emotion_deps = [ecore, eet, evas, eio, emile]
+emotion_pub_deps = [eina, eo, efl]
+
+if get_option('eeze') == true
+ emotion_deps += [eeze]
+endif
+
+emotion_lib = library('emotion',
+ emotion_src, pub_eo_file_target, priv_eo_file_target,
+ dependencies: emotion_deps + emotion_pub_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+emotion_package_c_args = package_c_args
+
+emotion = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: emotion_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: emotion_pub_deps,
+)
+
+install_data(pub_legacy_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(emotion_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eo/meson.build b/src/lib/eo/meson.build
new file mode 100644
index 0000000000..5789c95f4c
--- /dev/null
+++ b/src/lib/eo/meson.build
@@ -0,0 +1,73 @@
+eo_deps = []
+eo_pub_deps = [eina]
+
+pub_eo_files = [
+ 'efl_object.eo',
+ 'efl_class.eo',
+ 'efl_object_override.eo',
+ 'efl_interface.eo'
+]
+
+eo_src = [
+ 'eo.c',
+ 'eo_ptr_indirection.c',
+ 'eo_ptr_indirection.h',
+ 'eo_base_class.c',
+ 'eo_class_class.c',
+ 'eo_add_fallback.c',
+ 'eo_add_fallback.h',
+ 'eo_private.h',
+ 'eo_internal.h'
+]
+
+pub_eo_types_files = [
+ 'eina_types.eot'
+]
+
+eo_header = ['Eo.h']
+
+pub_eo_file_target = []
+priv_eo_file_target = []
+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
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eo_lib = library('eo',
+ eo_src, pub_eo_file_target,
+ dependencies: [eina, valgrind, dl, execinfo],
+ install: true,
+ version : meson.project_version()
+)
+
+library('eo_dbg',
+ eo_src, pub_eo_file_target,
+ dependencies: [eina, valgrind, dl, execinfo],
+ install: true,
+ c_args : '-DEO_DEBUG',
+ version : meson.project_version()
+)
+
+eo = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eo_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eo_deps + eo_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eo_header,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eolian/meson.build b/src/lib/eolian/meson.build
new file mode 100644
index 0000000000..2be0197212
--- /dev/null
+++ b/src/lib/eolian/meson.build
@@ -0,0 +1,55 @@
+eolian_pub_deps = [eina]
+eolian_deps = []
+
+eolian_src = [
+'eo_lexer.c',
+'eo_lexer.h',
+'eo_parser.c',
+'eo_parser.h',
+'eolian.c',
+'eolian_priv.h',
+'eolian_database.c',
+'eolian_database.h',
+'database_check.c',
+'database_class.c',
+'database_class_api.c',
+'database_function.c',
+'database_function_api.c',
+'database_function_parameter.c',
+'database_function_parameter_api.c',
+'database_type.c',
+'database_type_api.c',
+'database_implement.c',
+'database_implement_api.c',
+'database_constructor.c',
+'database_constructor_api.c',
+'database_event.c',
+'database_event_api.c',
+'database_part.c',
+'database_part_api.c',
+'database_expr.c',
+'database_expr_api.c',
+'database_var.c',
+'database_var_api.c',
+'database_validate.c'
+]
+
+eolian_lib = library('eolian', eolian_src,
+ include_directories: config_dir,
+ dependencies: eina,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+eolian = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with : eolian_lib,
+ dependencies: eina,
+)
+
+eolian_include_dir = join_paths(dir_data, 'eolian', 'include')
+
+install_headers('Eolian.h',
+ install_dir : dir_package_include
+)
diff --git a/src/lib/ephysics/meson.build b/src/lib/ephysics/meson.build
new file mode 100644
index 0000000000..ad1a168ae5
--- /dev/null
+++ b/src/lib/ephysics/meson.build
@@ -0,0 +1,41 @@
+bullet = dependency('bullet')
+
+ephysics_deps = [evas, bullet]
+ephysics_pub_deps = [eina, eo, efl]
+
+ephysics_header_src = [
+ 'EPhysics.h'
+]
+
+ephysics_src = [
+ 'ephysics_private.h',
+ 'ephysics_trimesh.h',
+ 'ephysics_body_materials.h',
+ 'ephysics_body.cpp',
+ 'ephysics_camera.cpp',
+ 'ephysics_constraints.cpp',
+ 'ephysics_main.cpp',
+ 'ephysics_quaternion.cpp',
+ 'ephysics_shape.cpp',
+ 'ephysics_world.cpp'
+]
+
+ephysics_lib = library('ephysics',
+ ephysics_src,
+ dependencies: ephysics_pub_deps + [m] + ephysics_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ephysics = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ephysics_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ephysics_pub_deps,
+)
+
+install_headers(ephysics_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ethumb/meson.build b/src/lib/ethumb/meson.build
new file mode 100644
index 0000000000..ffc62e91e5
--- /dev/null
+++ b/src/lib/ethumb/meson.build
@@ -0,0 +1,32 @@
+ethumb_header_src = [
+ 'Ethumb.h'
+]
+
+ethumb_src = [
+ 'ethumb.c',
+ 'ethumb_private.h',
+ 'md5.h',
+ 'md5.c',
+]
+
+ethumb_deps = [eet, evas, ecore, ecore_evas, ecore_file, ecore_imf, edje, emile]
+ethumb_pub_deps = [eina, eo, efl]
+
+ethumb_lib = library('ethumb',
+ ethumb_src,
+ dependencies: ethumb_pub_deps + [m] + ethumb_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ethumb = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ethumb_lib,
+ dependencies: ethumb_pub_deps,
+)
+
+install_headers(ethumb_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ethumb_client/meson.build b/src/lib/ethumb_client/meson.build
new file mode 100644
index 0000000000..bddbab1d8d
--- /dev/null
+++ b/src/lib/ethumb_client/meson.build
@@ -0,0 +1,34 @@
+ethumb_client_header_src = [
+ 'Ethumb_Client.h'
+]
+
+ethumb_client_src = [
+ 'ethumb_client.c'
+]
+
+ethumb_client_deps = [
+ eldbus,
+ ecore
+]
+
+ethumb_client_pub_deps = [eina, eo, efl, ethumb]
+
+ethumb_client_lib = library('ethumb_client',
+ ethumb_client_src,
+ dependencies: ethumb_client_pub_deps + ethumb_client_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ethumb_client = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ethumb_client_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ethumb_client_pub_deps,
+)
+
+install_headers(ethumb_client_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/evas/cache/meson.build b/src/lib/evas/cache/meson.build
new file mode 100644
index 0000000000..fa276ecad6
--- /dev/null
+++ b/src/lib/evas/cache/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_cache.h',
+ 'evas_cache_engine_image.c',
+ 'evas_cache_image.c',
+ 'evas_preload.c',
+]) \ No newline at end of file
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
new file mode 100644
index 0000000000..47db33de4b
--- /dev/null
+++ b/src/lib/evas/canvas/meson.build
@@ -0,0 +1,204 @@
+
+pub_legacy_eo_files = [
+ 'evas_canvas.eo',
+ 'evas_line.eo',
+ 'evas_table.eo',
+ 'evas_grid.eo',
+ 'evas_box.eo',
+ 'evas_text.eo',
+ 'evas_textgrid.eo',
+ 'evas_image.eo',
+]
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ 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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_canvas_polygon.eo',
+ 'efl_canvas_image_internal.eo',
+ 'evas_canvas3d_camera.eo',
+ 'evas_canvas3d_texture.eo',
+ 'evas_canvas3d_material.eo',
+ 'evas_canvas3d_light.eo',
+ 'evas_canvas3d_mesh.eo',
+ 'evas_canvas3d_primitive.eo',
+ 'evas_canvas3d_node.eo',
+ 'evas_canvas3d_scene.eo',
+ 'evas_canvas3d_object.eo',
+ 'efl_canvas_image.eo',
+ 'efl_canvas_snapshot.eo',
+ 'efl_canvas_proxy.eo',
+ 'efl_canvas_scene3d.eo',
+ 'efl_canvas_surface.eo',
+ 'efl_canvas_surface_tbm.eo',
+ 'efl_canvas_surface_x11.eo',
+ 'efl_canvas_surface_wayland.eo',
+ 'efl_canvas_filter_internal.eo',
+ 'efl_input_state.eo',
+ 'efl_input_interface.eo',
+ 'efl_input_event.eo',
+ 'efl_input_key.eo',
+ 'efl_input_pointer.eo',
+ 'efl_input_hold.eo',
+ 'efl_input_focus.eo',
+ 'efl_canvas_animation.eo',
+ 'efl_canvas_animation_alpha.eo',
+ 'efl_canvas_animation_rotate.eo',
+ 'efl_canvas_animation_scale.eo',
+ 'efl_canvas_animation_translate.eo',
+ 'efl_canvas_animation_group.eo',
+ 'efl_canvas_animation_group_parallel.eo',
+ 'efl_canvas_animation_group_sequential.eo',
+ 'efl_canvas_animation_player.eo',
+ 'efl_canvas_text_factory.eo',
+ 'efl_canvas_rectangle.eo',
+ 'efl_canvas_object.eo',
+ 'efl_canvas_vg_object.eo',
+ 'efl_canvas_vg_node.eo',
+ 'efl_canvas_vg_container.eo',
+ 'efl_canvas_vg_shape.eo',
+ 'efl_canvas_vg_gradient.eo',
+ 'efl_canvas_vg_gradient_radial.eo',
+ 'efl_canvas_vg_gradient_linear.eo',
+ 'efl_canvas_group.eo',
+ 'efl_gfx_map.eo',
+ 'efl_canvas_event_grabber.eo',
+ 'efl_canvas_text.eo'
+]
+
+pub_evas_eo_files += files(pub_eo_files)
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ 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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'evas_canvas3d_types.eot',
+ 'efl_canvas_animation_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+pub_evas_eot_files += files(pub_eo_types_files)
+
+evas_src += files([
+ 'evas_callbacks.c',
+ 'evas_clip.c',
+ 'evas_data.c',
+ 'evas_device.c',
+ 'evas_events.c',
+ 'evas_events_legacy.c',
+ 'evas_focus.c',
+ 'evas_key.c',
+ 'evas_key_grab.c',
+ 'evas_layer.c',
+ 'evas_main.c',
+ 'evas_name.c',
+ 'evas_image_legacy.c',
+ 'evas_object_image.c',
+ 'evas_object_main.c',
+ 'evas_object_inform.c',
+ 'evas_object_intercept.c',
+ 'evas_object_line.c',
+ 'evas_object_polygon.c',
+ 'evas_object_rectangle.c',
+ 'evas_object_smart.c',
+ 'evas_object_smart_clipped.c',
+ 'evas_object_box.c',
+ 'evas_object_table.c',
+ 'evas_object_text.c',
+ 'evas_object_textblock.c',
+ 'evas_object_textgrid.c',
+ 'evas_object_grid.c',
+ 'evas_font_dir.c',
+ 'evas_rectangle.c',
+ 'evas_render.c',
+ 'evas_smart.c',
+ 'evas_async_events.c',
+ 'evas_stats.c',
+ 'evas_touch_point.c',
+ 'evas_map.c',
+ 'evas_map.h',
+ 'evas_gl.c',
+ 'evas_out.c',
+ 'efl_canvas_image.c',
+ 'efl_canvas_event_grabber.c',
+ 'efl_canvas_proxy.c',
+ 'efl_canvas_snapshot.c',
+ 'efl_canvas_scene3d.c',
+ 'efl_canvas_surface.c',
+ 'efl_canvas_surface_tbm.c',
+ 'efl_canvas_surface_x11.c',
+ 'efl_canvas_surface_wayland.c',
+ 'efl_gfx_map.c',
+ 'efl_input_event.c',
+ 'efl_input_key.c',
+ 'efl_input_pointer.c',
+ 'efl_input_hold.c',
+ 'efl_input_focus.c',
+ 'efl_canvas_animation.c',
+ 'efl_canvas_animation_alpha.c',
+ 'efl_canvas_animation_rotate.c',
+ 'efl_canvas_animation_scale.c',
+ 'efl_canvas_animation_translate.c',
+ 'efl_canvas_animation_group.c',
+ 'efl_canvas_animation_group_parallel.c',
+ 'efl_canvas_animation_group_sequential.c',
+ 'efl_canvas_animation_player.c',
+ 'efl_canvas_vg_object.c',
+ 'evas_vg_node.c',
+ 'evas_vg_container.c',
+ 'evas_vg_gradient.c',
+ 'evas_vg_gradient_linear.c',
+ 'evas_vg_gradient_radial.c',
+ 'evas_vg_utils.c',
+ 'evas_vg_shape.c',
+ 'evas_filter_mixin.c',
+ 'evas_canvas3d_object.c',
+ 'evas_canvas3d_scene.c',
+ 'evas_canvas3d_node.c',
+ 'evas_canvas3d_camera.c',
+ 'evas_canvas3d_light.c',
+ 'evas_canvas3d_mesh.c',
+ 'evas_canvas3d_texture.c',
+ 'evas_canvas3d_material.c',
+ 'evas_canvas3d_primitive.c',
+ 'evas_canvas3d_node_callback.h',
+ 'evas_canvas3d_eet.c',
+ ])
+
+evas_include_directories += include_directories('.')
+
+install_headers('evas_textblock_legacy.h',
+ install_dir : join_paths(dir_package_include, 'canvas'),
+)
diff --git a/src/lib/evas/common/language/meson.build b/src/lib/evas/common/language/meson.build
new file mode 100644
index 0000000000..dd725a92bc
--- /dev/null
+++ b/src/lib/evas/common/language/meson.build
@@ -0,0 +1,7 @@
+evas_src += files([
+ 'evas_bidi_utils.c',
+ 'evas_language_utils.c',
+ 'evas_bidi_utils.h',
+ 'evas_language_utils.h',
+ 'evas_script_table.h',
+]) \ No newline at end of file
diff --git a/src/lib/evas/common/meson.build b/src/lib/evas/common/meson.build
new file mode 100644
index 0000000000..05fa24449d
--- /dev/null
+++ b/src/lib/evas/common/meson.build
@@ -0,0 +1,87 @@
+evas_include_directories += include_directories('.')
+
+evas_src += files([
+ 'evas_op_copy_main_.c',
+ 'evas_op_blend_main_.c',
+ 'evas_op_add_main_.c',
+ 'evas_op_sub_main_.c',
+ 'evas_op_mask_main_.c',
+ 'evas_op_mul_main_.c',
+ 'evas_blend_main.c',
+ 'evas_blit_main.c',
+ 'evas_convert_color.c',
+ 'evas_convert_colorspace.c',
+ 'evas_convert_gry_1.c',
+ 'evas_convert_gry_8.c',
+ 'evas_convert_main.c',
+ 'evas_convert_rgb_16.c',
+ 'evas_convert_rgb_24.c',
+ 'evas_convert_rgb_8.c',
+ 'evas_convert_grypal_6.c',
+ 'evas_convert_yuv.c',
+ 'evas_cpu.c',
+ 'evas_draw_main.c',
+ 'evas_font_draw.c',
+ 'evas_font_load.c',
+ 'evas_font_main.c',
+ 'evas_font_query.c',
+ 'evas_font_compress.c',
+ 'evas_image_load.c',
+ 'evas_image_save.c',
+ 'evas_image_main.c',
+ 'evas_image_data.c',
+ 'evas_image_scalecache.c',
+ 'evas_line_main.c',
+ 'evas_polygon_main.c',
+ 'evas_rectangle_main.c',
+ 'evas_scale_main.c',
+ 'evas_scale_sample.c',
+ 'evas_scale_smooth.c',
+ 'evas_scale_span.c',
+ 'evas_thread_render.c',
+ 'evas_tiler.c',
+ 'evas_pipe.c',
+ 'evas_text_utils.c',
+ 'evas_font_ot.c',
+ 'evas_map_image.c',
+ 'evas_map_image.h',
+ 'evas_blend.h',
+ 'evas_blend_private.h',
+ 'evas_convert_color.h',
+ 'evas_convert_colorspace.h',
+ 'evas_convert_gry_1.h',
+ 'evas_convert_gry_8.h',
+ 'evas_convert_grypal_6.h',
+ 'evas_convert_main.h',
+ 'evas_convert_rgb_16.h',
+ 'evas_convert_rgb_24.h',
+ 'evas_convert_rgb_32.h',
+ 'evas_convert_rgb_32.c',
+ 'evas_convert_rgb_8.h',
+ 'evas_convert_yuv.h',
+ 'evas_draw.h',
+ 'evas_font.h',
+ 'evas_font_private.h',
+ 'evas_image.h',
+ 'evas_image_private.h',
+ 'evas_line.h',
+ 'evas_polygon.h',
+ 'evas_rectangle.h',
+ 'evas_scale_main.h',
+ 'evas_scale_smooth.h',
+ 'evas_scale_span.h',
+ 'evas_pipe.h',
+ 'language/evas_bidi_utils.h',
+ 'language/evas_language_utils.h',
+ 'language/evas_script_table.h',
+ 'evas_text_utils.h',
+ 'evas_font_ot.h',
+ 'evas_font_draw.h',
+ 'evas_common_generic_cache.c',
+ 'region.c',
+ 'region.h'
+])
+
+#subdir('evas_op_blend')
+#subdir('evas_op_sub')
+subdir('language')
diff --git a/src/lib/evas/common3d/meson.build b/src/lib/evas/common3d/meson.build
new file mode 100644
index 0000000000..22341b4a84
--- /dev/null
+++ b/src/lib/evas/common3d/meson.build
@@ -0,0 +1,2 @@
+subdir('primitives')
+subdir('save_load') \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/meson.build b/src/lib/evas/common3d/primitives/meson.build
new file mode 100644
index 0000000000..2888869bf8
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/meson.build
@@ -0,0 +1,5 @@
+subdir('solids_of_revolution')
+subdir('surfaces')
+subdir('tabulated_primitives')
+
+evas_src += files(['primitive_common.c']) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
new file mode 100644
index 0000000000..ac35b05093
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'cone.c',
+ 'cylinder.c',
+ 'sphere.c',
+ 'torus.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/surfaces/meson.build b/src/lib/evas/common3d/primitives/surfaces/meson.build
new file mode 100644
index 0000000000..398996f148
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/surfaces/meson.build
@@ -0,0 +1,4 @@
+evas_src += files([
+ 'surface.c',
+ 'terrain.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
new file mode 100644
index 0000000000..a24df304d1
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
@@ -0,0 +1,4 @@
+evas_src += files([
+ 'cube.c',
+ 'square.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/save_load/meson.build b/src/lib/evas/common3d/save_load/meson.build
new file mode 100644
index 0000000000..72f430d31e
--- /dev/null
+++ b/src/lib/evas/common3d/save_load/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_model_load.c',
+ 'evas_model_load_save_common.c',
+ 'evas_model_load_save_common.h',
+ 'evas_model_save.c',
+]) \ No newline at end of file
diff --git a/src/lib/evas/file/meson.build b/src/lib/evas/file/meson.build
new file mode 100644
index 0000000000..3fb4c754a9
--- /dev/null
+++ b/src/lib/evas/file/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_module.c',
+ 'evas_module.h',
+ 'evas_path.c',
+ 'evas_path.h',
+])
diff --git a/src/lib/evas/filters/lua/meson.build b/src/lib/evas/filters/lua/meson.build
new file mode 100644
index 0000000000..26658feae7
--- /dev/null
+++ b/src/lib/evas/filters/lua/meson.build
@@ -0,0 +1,3 @@
+install_data('color.lua',
+ install_dir : join_paths(dir_data, 'evas', 'filters', 'lua')
+) \ No newline at end of file
diff --git a/src/lib/evas/filters/meson.build b/src/lib/evas/filters/meson.build
new file mode 100644
index 0000000000..c15c7671a2
--- /dev/null
+++ b/src/lib/evas/filters/meson.build
@@ -0,0 +1,19 @@
+subdir('lua')
+
+evas_src += files([
+ 'evas_filter.c',
+ 'evas_filter_parser.c',
+ 'evas_filter_private.h',
+ 'evas_filter_utils.c',
+])
+
+luajit = dependency('luajit')
+if target_machine.system() == 'darwin'
+# luajit on macos is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy
+ luajit = declare_dependency(
+ include_directories: include_directories(luajit.get_pkgconfig_variable('includedir')),
+ link_args: ['-L'+luajit.get_pkgconfig_variable('libdir'), '-l'+luajit.get_pkgconfig_variable('libname')]
+ )
+endif
+
+evas_deps += luajit \ No newline at end of file
diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build
new file mode 100644
index 0000000000..62d9b27599
--- /dev/null
+++ b/src/lib/evas/gesture/meson.build
@@ -0,0 +1,69 @@
+pub_eo_files = [
+ 'efl_canvas_gesture_touch.eo',
+ 'efl_canvas_gesture.eo',
+ 'efl_canvas_gesture_tap.eo',
+ 'efl_canvas_gesture_long_tap.eo',
+ 'efl_canvas_gesture_recognizer.eo',
+ 'efl_canvas_gesture_manager.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ 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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+pub_evas_eo_files += files(pub_eo_files)
+
+pub_eo_files = [
+ 'efl_canvas_gesture_recognizer_tap.eo',
+ 'efl_canvas_gesture_recognizer_long_tap.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : false,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ 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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+pub_eo_types_files = [
+ 'efl_canvas_gesture_types.eot',
+]
+
+pub_evas_eot_files += files(pub_eo_types_files)
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+evas_src += files([
+ 'efl_canvas_gesture_touch.c',
+ 'efl_canvas_gesture.c',
+ 'efl_canvas_gesture_tap.c',
+ 'efl_canvas_gesture_long_tap.c',
+ 'efl_canvas_gesture_recognizer.c',
+ 'efl_canvas_gesture_recognizer_tap.c',
+ 'efl_canvas_gesture_recognizer_long_tap.c',
+ 'efl_canvas_gesture_manager.c',
+])
diff --git a/src/lib/evas/include/meson.build b/src/lib/evas/include/meson.build
new file mode 100644
index 0000000000..aaeeb9ba66
--- /dev/null
+++ b/src/lib/evas/include/meson.build
@@ -0,0 +1,18 @@
+evas_include_directories += [include_directories('.')]
+
+
+pub_eo_files = [
+ 'evas_ector_buffer.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += 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
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
new file mode 100644
index 0000000000..d72032d957
--- /dev/null
+++ b/src/lib/evas/meson.build
@@ -0,0 +1,175 @@
+# README
+#
+# Evas build is a bit more complex.
+# the final shared library is build in src/lib/evas_goal/meson.build.
+#
+# The content of lib/evas is build as static_library as
+# are all the engines loaders and savers.
+#
+# All those stages are defining dependencies with theire source code
+# as 'source :', later everything is build as libevas.so.
+#
+# For now loaders and savers are ALWAYS build statically.
+#
+
+evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl]
+pub_eo_file_target = []
+priv_eo_files = []
+
+pub_evas_eo_files = []
+pub_evas_eot_files = []
+
+pub_legacy_eo_files = [
+
+]
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.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'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+
+]
+
+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
+
+
+pub_eo_types_files = [
+
+]
+
+foreach eo_file : pub_eo_types_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'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+evas_header_src = [
+ 'Evas.h',
+ 'Evas_Common.h',
+ 'Evas_Eo.h',
+ 'Evas_GL.h',
+ 'Evas_Legacy.h',
+ 'Evas_Loader.h',
+]
+
+evas_include_directories = [
+ include_directories('.'),
+ include_directories('common'),
+ include_directories('common3d'),
+ include_directories(join_paths('common3d', 'save_load')),
+ include_directories('include'),
+ include_directories('filters'),
+ vg_common_inc_dir
+]
+
+evas_src = [
+ 'main.c'
+]
+
+evas_src += vg_common_src
+
+evas_deps += dependency('freetype2')
+
+if (get_option('fontconfig'))
+ config_h.set('HAVE_FONTCONFIG', '1')
+ evas_deps += dependency('fontconfig')
+endif
+
+if (get_option('fribidi'))
+ config_h.set('HAVE_FRIBIDI', '1')
+ evas_deps += dependency('fribidi')
+endif
+
+if (get_option('pixman'))
+ pixman_support = ['HAVE_PIXMAN', 'PIXMAN_FONT', 'PIXMAN_RECT', 'PIXMAN_LINE', 'PIXMAN_POLY', 'PIXMAN_IMAGE', 'PIXMAN_IMAGE_SCALE_SAMPLE']
+ foreach support : pixman_support
+ config_h.set(support, '1')
+ endforeach
+ evas_deps += dependency('pixman')
+endif
+
+if (get_option('hyphen'))
+ config_h.set('HAVE_HYPHEN', '1')
+ evas_deps += dependency('hyphen')
+endif
+
+subdir('include')
+subdir('common')
+subdir('canvas')
+subdir('gesture')
+subdir('filters')
+subdir('cache')
+subdir('common3d')
+subdir('file')
+subdir('vg')
+
+gl_deps = []
+
+if get_option('harfbuzz')
+ evas_deps += dependency('harfbuzz')
+ config_h.set('HAVE_HARFBUZZ', '1')
+endif
+
+if get_option('wl')
+ evas_deps += wayland_protocol
+endif
+
+
+if get_option('opengl') != 'none'
+ gl_deps += dependency('gl')
+endif
+
+if get_option('opengl') == 'es-egl'
+ config_h.set('GL_GLES', '1')
+ gl_deps += dependency('egl')
+endif
+
+evas_pre = declare_dependency(
+ include_directories: evas_include_directories + [vg_common_inc_dir],
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: [eina, eo, ector, emile, evas_deps],
+)
+
+evas_pre_lib_dep = declare_dependency(
+ include_directories: evas_include_directories + [vg_common_inc_dir],
+ sources : [evas_src, pub_eo_file_target],
+ dependencies: [evas_deps, m, draw, valgrind, libunibreak]
+)
+
+install_data(pub_evas_eo_files + pub_evas_eot_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(evas_header_src,
+ install_dir : dir_package_include,
+)
+
+automatic_pkgfile = false
diff --git a/src/lib/evas/vg/meson.build b/src/lib/evas/vg/meson.build
new file mode 100644
index 0000000000..2f9622312d
--- /dev/null
+++ b/src/lib/evas/vg/meson.build
@@ -0,0 +1 @@
+evas_src += files(['evas_vg_cache.c']) \ No newline at end of file
diff --git a/src/lib/evas_goal/empty.c b/src/lib/evas_goal/empty.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/lib/evas_goal/empty.c
diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build
new file mode 100644
index 0000000000..057006884c
--- /dev/null
+++ b/src/lib/evas_goal/meson.build
@@ -0,0 +1,29 @@
+evas_lib = library('evas',
+ 'empty.c',
+ #all the source code is coming from evas_pre_lib_dep
+ dependencies: [evas_pre_lib_dep, evas_static_list],
+ install: true,
+ c_args : '-DPACKAGE_DATA_DIR="'+join_paths(dir_data, 'evas')+'"',
+ version : meson.project_version()
+)
+
+evas = declare_dependency(
+ link_with : [evas_lib],
+ dependencies : [eina, ecore, ector, emile, evas_pre],
+ include_directories : evas_include_directories
+)
+
+evas_bin = declare_dependency(
+ link_with : [evas_lib],
+ dependencies : [eina, ecore, ector, emile, dependency('luajit')],
+ include_directories : evas_include_directories
+)
+
+automatic_pkgfile = false
+
+pkgconfig.generate(evas_lib,
+ name : 'evas',
+ subdirs : 'evas-'+version_major,
+ version : version_major + '.' + version_minor,
+ libraries : [eina, ecore, ector, emile, dependency('luajit')],
+)
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
diff --git a/src/scripts/elua/meson.build b/src/scripts/elua/meson.build
new file mode 100644
index 0000000000..41d413a138
--- /dev/null
+++ b/src/scripts/elua/meson.build
@@ -0,0 +1,11 @@
+install_subdir('modules',
+ install_dir : join_paths(dir_data, 'elua')
+)
+
+install_subdir('core',
+ install_dir : join_paths(dir_data, 'elua')
+)
+
+install_subdir('apps',
+ install_dir : join_paths(dir_data, 'elua')
+)
diff --git a/src/scripts/eo/meson.build b/src/scripts/eo/meson.build
new file mode 100644
index 0000000000..bdb2803541
--- /dev/null
+++ b/src/scripts/eo/meson.build
@@ -0,0 +1,11 @@
+eo_debug_config = configuration_data()
+
+eo_debug_config.set('prefix', dir_prefix)
+eo_debug_config.set('exec_prefix', '${prefix}')
+eo_debug_config.set('libdir', dir_lib)
+
+configure_file(
+ input: 'eo_debug.in',
+ output: 'eo_debug',
+ configuration: eo_debug_config,
+ install_dir: dir_bin)
diff --git a/src/scripts/meson.build b/src/scripts/meson.build
new file mode 100644
index 0000000000..6057ad788a
--- /dev/null
+++ b/src/scripts/meson.build
@@ -0,0 +1,2 @@
+subdir('eo')
+subdir('elua')
diff --git a/src/static_libs/atspi/meson.build b/src/static_libs/atspi/meson.build
new file mode 100644
index 0000000000..5024cc5c97
--- /dev/null
+++ b/src/static_libs/atspi/meson.build
@@ -0,0 +1,3 @@
+atspi = declare_dependency(
+ include_directories: include_directories('..'),
+) \ No newline at end of file
diff --git a/src/static_libs/buildsystem/buildsystem_meson.c b/src/static_libs/buildsystem/buildsystem_meson.c
new file mode 100644
index 0000000000..fd741e0d15
--- /dev/null
+++ b/src/static_libs/buildsystem/buildsystem_meson.c
@@ -0,0 +1,49 @@
+#include "config.h"
+
+#include <stdio.h>
+#include <Eina.h>
+
+Eina_Bool
+bs_mod_get(char *path, size_t maxlen, const char *subsystem, const char *mod_name)
+{
+ if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE;
+
+ // there is a name conflict between a ethumb module and the emotion library,
+ // this causes the module to link to itself, instead of the library
+ if (!strcmp(subsystem, "ethumb"))
+ snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s_el"MOD_SUFFIX, subsystem, mod_name, mod_name);
+ else
+ snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s"MOD_SUFFIX, subsystem, mod_name, mod_name);
+
+ return EINA_TRUE;
+}
+
+Eina_Bool
+bs_mod_dir_get(char *path, size_t maxlen, const char *subsystem, const char *mod_name)
+{
+ if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE;
+
+ snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/", subsystem, mod_name);
+
+ return EINA_TRUE;
+}
+
+Eina_Bool
+bs_binary_get(char *path, size_t maxlen, const char *subsystem, const char *bin_name)
+{
+ if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE;
+
+ snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/bin/%s/%s"EXE_SUFFIX, subsystem, bin_name);
+
+ return EINA_TRUE;
+}
+
+Eina_Bool
+bs_data_path_get(char *path, size_t maxlen, const char *subsystem, const char *file)
+{
+ if (!getenv("EFL_RUN_IN_TREE")) return EINA_FALSE;
+
+ snprintf(path, maxlen, PACKAGE_SRC_DIR"/data/%s/%s", subsystem, file);
+
+ return EINA_TRUE;
+}
diff --git a/src/static_libs/buildsystem/meson.build b/src/static_libs/buildsystem/meson.build
new file mode 100644
index 0000000000..61e7f1e37e
--- /dev/null
+++ b/src/static_libs/buildsystem/meson.build
@@ -0,0 +1,20 @@
+
+buildsystem_src = [
+ 'buildsystem.h',
+ 'buildsystem_meson.c',
+]
+
+
+buildsystem_lib = static_library('buildsystem',
+ buildsystem_src,
+ dependencies : [eina, efl],
+ include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))],
+ install: false,
+ c_args : ['-DPACKAGE_SRC_DIR="'+ meson.source_root() +'"'],
+)
+
+buildsystem = declare_dependency(
+ include_directories: [include_directories('.'), include_directories(join_paths('..', '..', 'lib'))],
+ link_with: buildsystem_lib,
+ dependencies: [eina],
+)
diff --git a/src/static_libs/draw/meson.build b/src/static_libs/draw/meson.build
new file mode 100644
index 0000000000..1fcc6b1ba8
--- /dev/null
+++ b/src/static_libs/draw/meson.build
@@ -0,0 +1,23 @@
+
+draw_src = [
+ 'draw_main_sse2.c',
+ 'draw_main.c',
+ 'draw_main_neon.c',
+ 'draw_main.c',
+ 'draw_convert.c',
+ 'draw_alpha_main.c'
+]
+
+
+draw_lib = static_library('draw',
+ draw_src,
+ dependencies : [eina, efl],
+ include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))],
+ install: false,
+)
+
+draw = declare_dependency(
+ include_directories: [include_directories('.'), include_directories(join_paths('..', '..', 'lib'))],
+ link_with: draw_lib,
+ dependencies: [eina],
+)
diff --git a/src/static_libs/freetype/meson.build b/src/static_libs/freetype/meson.build
new file mode 100644
index 0000000000..bfa685b78e
--- /dev/null
+++ b/src/static_libs/freetype/meson.build
@@ -0,0 +1,23 @@
+
+freetype_src = [
+ 'sw_ft_math.c',
+ 'sw_ft_math.h',
+ 'sw_ft_raster.c',
+ 'sw_ft_raster.h',
+ 'sw_ft_stroker.c',
+ 'sw_ft_stroker.h',
+ 'sw_ft_types.h',
+]
+
+
+freetype_lib = static_library('freetype',
+ freetype_src,
+ include_directories : config_dir,
+ install: false,
+)
+
+freetype = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: freetype_lib,
+ dependencies: [eina],
+)
diff --git a/src/static_libs/http-parser/meson.build b/src/static_libs/http-parser/meson.build
new file mode 100644
index 0000000000..7e1308400e
--- /dev/null
+++ b/src/static_libs/http-parser/meson.build
@@ -0,0 +1,11 @@
+http_parser_lib = [
+ 'http_parser.c',
+ 'http_parser.h',
+]
+
+http_parser_lib = static_library('http-parser', http_parser_lib)
+
+http_parser = declare_dependency(
+ include_directories: include_directories('.') ,
+ link_with: http_parser_lib,
+) \ No newline at end of file
diff --git a/src/static_libs/libdrm/meson.build b/src/static_libs/libdrm/meson.build
new file mode 100644
index 0000000000..ec0278b243
--- /dev/null
+++ b/src/static_libs/libdrm/meson.build
@@ -0,0 +1,3 @@
+libdrm = declare_dependency(
+ include_directories: include_directories('.')
+) \ No newline at end of file
diff --git a/src/static_libs/libunibreak/meson.build b/src/static_libs/libunibreak/meson.build
new file mode 100644
index 0000000000..77bb2f93ac
--- /dev/null
+++ b/src/static_libs/libunibreak/meson.build
@@ -0,0 +1,32 @@
+
+libunibreak_src = [
+ 'unibreakbase.h',
+ 'unibreakdef.h',
+ 'linebreak.h',
+ 'linebreakdef.h',
+ 'wordbreakdef.h',
+ 'wordbreak.h',
+ 'wordbreakdata.c',
+ 'unibreakbase.c',
+ 'unibreakdef.c',
+ 'linebreak.c',
+ 'linebreakdata.c',
+ 'linebreakdef.c',
+ 'wordbreak.c',
+ 'graphemebreak.c',
+ 'graphemebreak.h',
+ 'graphemebreakdata.c',
+ 'graphemebreakdef.h',
+]
+
+libunibreak_lib = static_library('libunibreak',
+ libunibreak_src,
+ include_directories : config_dir,
+ install: false,
+)
+
+libunibreak = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: libunibreak_lib,
+ dependencies: [eina],
+)
diff --git a/src/static_libs/lz4/meson.build b/src/static_libs/lz4/meson.build
new file mode 100644
index 0000000000..4e3dc02189
--- /dev/null
+++ b/src/static_libs/lz4/meson.build
@@ -0,0 +1,17 @@
+if (get_option('embedded-lz4'))
+ lz4_src = [
+ 'lz4.c',
+ 'lz4hc.c'
+ ]
+
+ lz4_lib = static_library('lz4', lz4_src,
+ include_directories : config_dir,
+ )
+
+ lz4 = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: lz4_lib
+ )
+else
+ lz4 = dependency('liblz4')
+endif
diff --git a/src/static_libs/rg_etc/meson.build b/src/static_libs/rg_etc/meson.build
new file mode 100644
index 0000000000..3dad342457
--- /dev/null
+++ b/src/static_libs/rg_etc/meson.build
@@ -0,0 +1,16 @@
+rg_etc_src = [
+'etc2_encoder.c',
+'rg_etc1.c',
+'rg_etc1.h',
+'rg_etc2.c',
+]
+
+rg_etc_lib = static_library('rg_etc', rg_etc_src,
+ dependencies : eina,
+ include_directories : config_dir,
+)
+
+rg_etc = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: rg_etc_lib
+)
diff --git a/src/static_libs/triangulator/meson.build b/src/static_libs/triangulator/meson.build
new file mode 100644
index 0000000000..1a1af2ac0e
--- /dev/null
+++ b/src/static_libs/triangulator/meson.build
@@ -0,0 +1,21 @@
+
+triangulator_src = [
+ 'triangulator_simple.c',
+ 'triangulator_simple.h',
+ 'triangulator_stroker.c',
+ 'triangulator_stroker.h',
+]
+
+
+triangulator_lib = static_library('triangulator',
+ triangulator_src,
+ dependencies : [eina, efl],
+ include_directories : config_dir + [include_directories(join_paths('..', '..', 'lib'))],
+ install: false,
+)
+
+triangulator = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: triangulator_lib,
+ dependencies: [eina],
+)
diff --git a/src/static_libs/vg_common/meson.build b/src/static_libs/vg_common/meson.build
new file mode 100644
index 0000000000..eeb72fce52
--- /dev/null
+++ b/src/static_libs/vg_common/meson.build
@@ -0,0 +1,13 @@
+#vg common is not really a static lib, is required by evas and requires evas ... so only collecting src here and compile them into evas ... ...
+
+vg_common_src = files([
+ 'vg_common.c',
+ 'vg_common.h',
+])
+
+vg_common_inc_dir = include_directories('.')
+
+vg_common = declare_dependency(
+ include_directories: vg_common_inc_dir,
+ sources: vg_common_src,
+)
diff --git a/src/tests/ecore/meson.build b/src/tests/ecore/meson.build
new file mode 100644
index 0000000000..4c8351a8bc
--- /dev/null
+++ b/src/tests/ecore/meson.build
@@ -0,0 +1,56 @@
+
+ecore_suite_src = [
+ 'ecore_suite.c',
+ 'ecore_test_ecore.c',
+ 'ecore_test_ecore_imf.c',
+ 'ecore_test_idle.c',
+ 'ecore_test_timer.c',
+ 'ecore_test_ecore_evas.c',
+ 'ecore_test_animator.c',
+ 'ecore_test_ecore_thread_eina_thread_queue.c',
+ 'ecore_test_ecore_input.c',
+ 'ecore_test_ecore_file.c',
+ 'ecore_test_job.c',
+ 'ecore_test_args.c',
+ 'ecore_test_pipe.c',
+ 'ecore_suite.h'
+]
+
+ecore_suite_deps = [m]
+ecore_suite_deps += ecore
+ecore_suite_deps += ecore_file
+ecore_suite_deps += ecore_evas
+ecore_suite_deps += ecore_input
+ecore_suite_deps += ecore_imf
+
+if get_option('audio')
+ ecore_suite_deps += ecore_audio
+ ecore_suite_src += 'ecore_test_ecore_audio.c'
+endif
+
+if get_option('fb')
+ ecore_suite_deps += ecore_fb
+ ecore_suite_src += 'ecore_test_ecore_fb.c'
+endif
+
+if get_option('drm')
+ ecore_suite_deps += ecore_drm2
+endif
+
+if get_option('x11')
+ ecore_suite_src += 'ecore_test_ecore_x.c'
+ ecore_suite_deps += ecore_x
+endif
+
+ecore_suite = executable('ecore_suite',
+ ecore_suite_src,
+ dependencies: [ecore_suite_deps, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('ecore-suite', ecore_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/ecore_con/meson.build b/src/tests/ecore_con/meson.build
new file mode 100644
index 0000000000..0b8bd78909
--- /dev/null
+++ b/src/tests/ecore_con/meson.build
@@ -0,0 +1,20 @@
+ecore_con_suite_src = [
+ 'ecore_con_suite.c',
+ 'ecore_con_test_ecore_con.c',
+ 'ecore_con_test_ecore_con_url.c',
+ 'ecore_con_test_ecore_con_eet.c',
+ 'ecore_con_test_efl_net_ip_address.c',
+ 'ecore_con_suite.h'
+]
+
+ecore_con_suite = executable('ecore_con_suite',
+ ecore_con_suite_src,
+ dependencies: [ecore_con, eet, ecore, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('ecore_con-suite', ecore_con_suite,
+ env : test_env
+)
diff --git a/src/tests/ector/meson.build b/src/tests/ector/meson.build
new file mode 100644
index 0000000000..3bc3d6ef47
--- /dev/null
+++ b/src/tests/ector/meson.build
@@ -0,0 +1 @@
+subdir('suite') \ No newline at end of file
diff --git a/src/tests/ector/suite/meson.build b/src/tests/ector/suite/meson.build
new file mode 100644
index 0000000000..23335695d9
--- /dev/null
+++ b/src/tests/ector/suite/meson.build
@@ -0,0 +1,18 @@
+ector_suite_src = [
+ 'ector_suite.c',
+ 'ector_suite.h',
+ 'ector_test_init.c',
+]
+
+ector_suite = executable('ector_suite',
+ ector_suite_src,
+ include_directories : include_directories('..'),
+ dependencies: [eo, ector, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('ector-suite', ector_suite,
+ env : test_env
+)
diff --git a/src/tests/edje/data/meson.build b/src/tests/edje/data/meson.build
new file mode 100644
index 0000000000..f9494ca1e7
--- /dev/null
+++ b/src/tests/edje/data/meson.build
@@ -0,0 +1,37 @@
+edc_files = [
+ 'complex_layout.edc',
+ 'test_box.edc',
+ 'test_color_class.edc',
+ 'test_combine_keywords.edc',
+ 'test_filters.edc',
+ 'test_layout.edc',
+ 'test_masking.edc',
+ 'test_messages.edc',
+ 'test_parens.edc',
+ 'test_signal_callback_del_full.edc',
+ 'test_signals.edc',
+ 'test_size_class.edc',
+ 'test_snapshot.edc',
+ 'test_swallows.edc',
+ 'test_table.edc',
+ 'test_text_cursor.edc',
+ 'test_textblock.edc',
+]
+
+themes = []
+
+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', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'),
+ '-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
diff --git a/src/tests/edje/meson.build b/src/tests/edje/meson.build
new file mode 100644
index 0000000000..54aee4f873
--- /dev/null
+++ b/src/tests/edje/meson.build
@@ -0,0 +1,26 @@
+subdir('data')
+subdir('tests')
+
+edje_suite_src = [
+ 'edje_suite.c',
+ 'edje_suite.h',
+ 'edje_test_container.c',
+ 'edje_test_edje.c',
+ 'edje_test_features.c',
+ 'edje_test_signal.c',
+ 'edje_test_swallow.c',
+ 'edje_test_text.c',
+]
+
+edje_suite = executable('edje_suite',
+ edje_suite_src, themes,
+ dependencies: [check, eina, ecore_evas, edje],
+ include_directories : config_dir,
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('edje-suite', edje_suite,
+ env : test_env
+)
diff --git a/src/tests/edje/tests/meson.build b/src/tests/edje/tests/meson.build
new file mode 100644
index 0000000000..4780bcaeba
--- /dev/null
+++ b/src/tests/edje/tests/meson.build
@@ -0,0 +1,19 @@
+edc_files = [
+ 'edje_inherit_nearest.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', join_paths(meson.source_root(), 'src', 'tests', 'emotion', 'data'),
+ '-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 \ No newline at end of file
diff --git a/src/tests/eet/meson.build b/src/tests/eet/meson.build
new file mode 100644
index 0000000000..2e3b2808ce
--- /dev/null
+++ b/src/tests/eet/meson.build
@@ -0,0 +1,27 @@
+eet_suite_src = [
+ 'eet_test_cache.c',
+ 'eet_test_cipher.c',
+ 'eet_test_common.c',
+ 'eet_test_connection.c',
+ 'eet_test_data.c',
+ 'eet_test_file.c',
+ 'eet_test_identity.c',
+ 'eet_test_image.c',
+ 'eet_test_init.c',
+ 'eet_suite.c',
+ 'eet_test_common.h',
+ 'eet_suite.h'
+]
+
+eet_suite = executable('eet_suite',
+ eet_suite_src,
+ dependencies: [eet, check],
+ c_args : [
+ '-DTESTS_WD="`pwd`"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eet-suite', eet_suite,
+ env : test_env
+)
diff --git a/src/tests/eeze/meson.build b/src/tests/eeze/meson.build
new file mode 100644
index 0000000000..d4e5430b96
--- /dev/null
+++ b/src/tests/eeze/meson.build
@@ -0,0 +1,20 @@
+eeze_suite_src = [
+ 'eeze_suite.c',
+ 'eeze_test_init.c',
+ 'eeze_test_net.c',
+ 'eeze_test_sensor.c',
+ 'eeze_test_udev.c',
+ 'eeze_suite.h'
+]
+
+eeze_suite = executable('eeze_suite',
+ eeze_suite_src,
+ dependencies: [eeze, ecore, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eeze-suite', eeze_suite,
+ env : test_env
+)
diff --git a/src/tests/efl/meson.build b/src/tests/efl/meson.build
new file mode 100644
index 0000000000..10b24071b8
--- /dev/null
+++ b/src/tests/efl/meson.build
@@ -0,0 +1,18 @@
+efl_suite_src = [
+ 'efl_suite.c',
+ 'efl_suite.h',
+ 'efl_test_model_composite.c',
+ 'efl_test_model_container.c'
+]
+
+efl_suite_bin = executable('efl_suite',
+ efl_suite_src,
+ dependencies: [efl, ecore, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('efl-suite', efl_suite_bin,
+ env : test_env
+)
diff --git a/src/tests/efreet/meson.build b/src/tests/efreet/meson.build
new file mode 100644
index 0000000000..27ce1a0cc0
--- /dev/null
+++ b/src/tests/efreet/meson.build
@@ -0,0 +1,66 @@
+efreet_suite_src = [
+ 'efreet_suite.c',
+ 'efreet_suite.h',
+ 'efreet_test_efreet.c',
+ 'efreet_test_efreet_cache.c'
+]
+
+efreet_suite = executable('efreet_suite',
+ efreet_suite_src,
+ dependencies: [check, efreet],
+ include_directories : config_dir,
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('efreet-suite', efreet_suite,
+ env : test_env
+)
+
+efreet_test_src = [
+ 'ef_data_dirs.c',
+ 'ef_desktop.c',
+ 'ef_icon_theme.c',
+ 'ef_ini.c',
+ 'ef_locale.c',
+ 'ef_menu.c',
+ 'ef_mime.c',
+ 'ef_test.h',
+ 'ef_utils.c',
+ 'main.c'
+]
+
+efreet_test = executable('efreet_test',
+ efreet_test_src,
+ dependencies: [check, efreet, ecore, ecore_file, efreet_mime],
+ include_directories : config_dir,
+ c_args : [
+ package_c_args,
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
+ '-DDATA_DIR="'+dir_data+'"']
+)
+
+additional_tests = [
+ 'efreet_async_test',
+ 'efreet_spec_test',
+ 'efreet_icon_cache_dump',
+ 'efreet_user_dir',
+ join_paths('compare', 'efreet_alloc'),
+ join_paths('compare', 'efreet_menu_alloc')
+]
+
+foreach additional_test : additional_tests
+ efreet_tmp = executable(additional_test.underscorify(),
+ additional_test+'.c',
+ dependencies: [check, efreet, ecore, eet, ecore_file, efreet_mime],
+ include_directories : config_dir,
+ c_args : [
+ package_c_args,
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
+ '-DDATA_DIR="'+dir_data+'"']
+ )
+
+endforeach
diff --git a/src/tests/eina/meson.build b/src/tests/eina/meson.build
new file mode 100644
index 0000000000..f111e3a12d
--- /dev/null
+++ b/src/tests/eina/meson.build
@@ -0,0 +1,73 @@
+eina_test_src = files(
+'eina_suite.c',
+'eina_suite.h',
+'eina_test_abi.c',
+'eina_test_fp.c',
+'eina_test_ustringshare.c',
+'eina_test_ustr.c',
+'eina_test_binshare.c',
+'eina_test_binbuf.c',
+'eina_test_debug.c',
+'eina_test_inarray.c',
+'eina_test_array.c',
+'eina_test_clist.c',
+'eina_test_error.c',
+'eina_test_sched.c',
+'eina_test_log.c',
+'eina_test_magic.c',
+'eina_test_inlist.c',
+'eina_test_main.c',
+'eina_test_counter.c',
+'eina_test_lalloc.c',
+'eina_test_hash.c',
+'eina_test_iterator.c',
+'eina_test_accessor.c',
+'eina_test_module.c',
+'eina_test_convert.c',
+'eina_test_rbtree.c',
+'eina_test_file.c',
+'eina_test_benchmark.c',
+'eina_test_mempool.c',
+'eina_test_rectangle.c',
+'eina_test_list.c',
+'eina_test_matrixsparse.c',
+'eina_test_tiler.c',
+'eina_test_strbuf.c',
+'eina_test_str.c',
+'eina_test_quadtree.c',
+'eina_test_simple_xml_parser.c',
+'eina_test_value.c',
+'eina_test_cow.c',
+'eina_test_barrier.c',
+'eina_test_tmpstr.c',
+'eina_test_trash.c',
+'eina_test_lock.c',
+'eina_test_xattr.c',
+'eina_test_crc.c',
+'eina_test_quad.c',
+'eina_test_matrix.c',
+'eina_test_quaternion.c',
+'eina_test_vector.c',
+'eina_test_bezier.c',
+'eina_test_safepointer.c',
+'eina_test_slice.c',
+'eina_test_freeq.c',
+'eina_test_slstr.c',
+'eina_test_vpath.c'
+)
+
+
+eina_test_exe = executable('eina_suite',
+ include_directories : config_dir,
+ sources : eina_test_src,
+ dependencies: [m, check, eina],
+ c_args : [
+ '-DTESTS_WD="`pwd`"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eina', eina_test_exe,
+ env : test_env,
+ timeout : 5*60
+)
diff --git a/src/tests/eio/meson.build b/src/tests/eio/meson.build
new file mode 100644
index 0000000000..09feb3769b
--- /dev/null
+++ b/src/tests/eio/meson.build
@@ -0,0 +1,30 @@
+eio_suite_src = [
+ 'eio_suite.c',
+ 'eio_model_test_file.c',
+ 'eio_model_test_monitor_add.c',
+ 'eio_test_monitor.c',
+ 'eio_test_sentry.c',
+ 'eio_test_file.c',
+ 'eio_test_manager.c',
+ 'eio_test_manager_xattr.c',
+ 'eio_test_xattr.c',
+ 'eio_test_common.c',
+ 'eio_test_common.h',
+ 'eio_test_map.c',
+ 'eio_test_eet.c',
+ 'eio_suite.h'
+]
+
+eio_suite = executable('eio_suite',
+ eio_suite_src,
+ include_directories : [config_dir],
+ dependencies: [eo, ecore, eina, ecore_file, eio, check, efreet],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eio-suite', eio_suite,
+ env : test_env,
+ timeout : 10*60 #10 min. can be realistic, this testsuite is slow!
+)
diff --git a/src/tests/eldbus/meson.build b/src/tests/eldbus/meson.build
new file mode 100644
index 0000000000..0b0f97a34b
--- /dev/null
+++ b/src/tests/eldbus/meson.build
@@ -0,0 +1,28 @@
+eldbus_suite_src = [
+ 'eldbus_suite.c',
+ 'eldbus_test_eldbus_init.c',
+ 'eldbus_test_eldbus_model.h',
+ 'eldbus_fake_server.h',
+ 'eldbus_test_eldbus_model.c',
+ 'eldbus_test_eldbus_model_connection.c',
+ 'eldbus_test_eldbus_model_object.c',
+ 'eldbus_test_eldbus_model_proxy.c',
+ 'eldbus_test_eldbus_model_method.c',
+ 'eldbus_test_eldbus_model_signal.c',
+ 'eldbus_test_eldbus_object.c',
+ 'eldbus_test_eldbus_message.c',
+ 'eldbus_test_eldbus_signal_handler.c',
+ 'eldbus_test_eldbus_proxy.c',
+ 'eldbus_test_eldbus_pending_cancel.c',
+ 'eldbus_test_fake_server_eldbus_model_proxy.c',
+ 'eldbus_fake_server.c',
+ 'eldbus_suite.h'
+]
+
+executable('eldbus_suite',
+ eldbus_suite_src,
+ dependencies: [eldbus, ecore, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
diff --git a/src/tests/elementary/meson.build b/src/tests/elementary/meson.build
new file mode 100644
index 0000000000..0f083672cd
--- /dev/null
+++ b/src/tests/elementary/meson.build
@@ -0,0 +1,122 @@
+priv_eo_files = [
+ 'focus_test.eo',
+ 'focus_test_sub_main.eo'
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += 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
+
+
+elementary_suite_src = [
+ 'elm_suite.c',
+ 'elm_test_atspi.c',
+ 'elm_test_check.c',
+ 'elm_test_colorselector.c',
+ 'elm_test_entry.c',
+ 'elm_test_init.c',
+ 'elm_test_list.c',
+ 'elm_test_button.c',
+ 'elm_test_image.c',
+ 'elm_test_photo.c',
+ 'elm_test_actionslider.c',
+ 'elm_test_box.c',
+ 'elm_test_table.c',
+ 'elm_test_thumb.c',
+ 'elm_test_menu.c',
+ 'elm_test_photocam.c',
+ 'elm_test_win.c',
+ 'elm_test_icon.c',
+ 'elm_test_prefs.c',
+ 'elm_test_map.c',
+ 'elm_test_glview.c',
+ 'elm_test_web.c',
+ 'elm_test_toolbar.c',
+ 'elm_test_grid.c',
+ 'elm_test_diskselector.c',
+ 'elm_test_notify.c',
+ 'elm_test_mapbuf.c',
+ 'elm_test_flip.c',
+ 'elm_test_layout.c',
+ 'elm_test_slider.c',
+ 'elm_test_ctxpopup.c',
+ 'elm_test_separator.c',
+ 'elm_test_calendar.c',
+ 'elm_test_inwin.c',
+ 'elm_test_gengrid.c',
+ 'elm_test_radio.c',
+ 'elm_test_scroller.c',
+ 'elm_test_frame.c',
+ 'elm_test_datetime.c',
+ 'elm_test_player.c',
+ 'elm_test_bg.c',
+ 'elm_test_video.c',
+ 'elm_test_segmentcontrol.c',
+ 'elm_test_progressbar.c',
+ 'elm_test_fileselector.c',
+ 'elm_test_fileselector_button.c',
+ 'elm_test_fileselector_entry.c',
+ 'elm_test_hoversel.c',
+ 'elm_test_multibuttonentry.c',
+ 'elm_test_naviframe.c',
+ 'elm_test_popup.c',
+ 'elm_test_bubble.c',
+ 'elm_test_clock.c',
+ 'elm_test_conformant.c',
+ 'elm_test_dayselector.c',
+ 'elm_test_flipselector.c',
+ 'elm_test_genlist.c',
+ 'elm_test_hover.c',
+ 'elm_test_index.c',
+ 'elm_test_label.c',
+ 'elm_test_panel.c',
+ 'elm_test_panes.c',
+ 'elm_test_slideshow.c',
+ 'elm_test_spinner.c',
+ 'elm_test_plug.c',
+ 'elm_test_config.c',
+ 'elm_code_file_test_load.c',
+ 'elm_code_file_test_memory.c',
+ 'elm_code_test_basic.c',
+ 'elm_code_test_line.c',
+ 'elm_code_test_parse.c',
+ 'elm_code_test_syntax.c',
+ 'elm_code_test_text.c',
+ 'elm_code_test_indent.c',
+ 'elm_code_test_widget.c',
+ 'elm_code_test_widget_text.c',
+ 'elm_code_test_widget_selection.c',
+ 'elm_code_test_widget_undo.c',
+ 'elm_test_focus_common.c',
+ 'elm_test_focus_common.h',
+ 'elm_test_focus.c',
+ 'elm_test_focus_sub.c'
+]
+
+elementary_suite = executable('elementary_suite',
+ elementary_suite_src, priv_eo_file_target,
+ dependencies: [check, eina, elementary, elementary_deps],
+ include_directories : [config_dir] + [elementary_config_dir],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"',
+ '-DELM_IMAGE_DATA_DIR="'+join_paths(meson.source_root(), 'data', 'elementary')+'"',
+ '-DELM_TEST_DATA_DIR="'+join_paths(meson.build_root(), 'data', 'elementary')+'"',
+ ]
+)
+
+test('elementary-suite', elementary_suite,
+ env : test_env
+)
+
+
+install_data(files(['testdiff.diff', 'testfile-windows.txt', 'testfile-withblanks.txt', 'testfile.txt']),
+ install_dir : join_paths(dir_data, 'elementary')
+)
diff --git a/src/tests/elput/meson.build b/src/tests/elput/meson.build
new file mode 100644
index 0000000000..529ffa18c2
--- /dev/null
+++ b/src/tests/elput/meson.build
@@ -0,0 +1,17 @@
+elput_suite_src = [
+ 'elput_suite.c',
+ 'elput_suite.h',
+ 'elput_test_elput.c'
+]
+
+elput_suite = executable('elput_suite',
+ elput_suite_src,
+ dependencies: [elput, ecore, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('elput-suite', elput_suite,
+ env : test_env
+)
diff --git a/src/tests/elua/meson.build b/src/tests/elua/meson.build
new file mode 100644
index 0000000000..ec75f672b1
--- /dev/null
+++ b/src/tests/elua/meson.build
@@ -0,0 +1,31 @@
+elua_suite_deps = [check, eina, elua]
+
+elua_suite_src = [
+ 'elua_suite.c',
+ 'elua_suite.h',
+ 'elua_lib.c'
+]
+
+elua_bindings_dir = join_paths(meson.source_root(), 'src', 'bindings', 'luajit')
+elua_core_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'core')
+elua_modules_dir = join_paths(meson.source_root(), 'src', 'scripts', 'elua', 'modules')
+elua_apps_dir = join_paths(meson.source_root(), 'src', 'tests', 'elua', 'data', 'apps')
+
+elua_suite = executable('elua_suite',
+ elua_suite_src,
+ include_directories : config_dir,
+ dependencies: [elua_suite_deps, check],
+ c_args : [
+ '-DELUA_BINDINGS_DIR="'+elua_bindings_dir+'"',
+ '-DELUA_CORE_DIR="'+elua_core_dir+'"',
+ '-DELUA_MODULES_DIR="'+elua_modules_dir+'"',
+ '-DELUA_APPS_DIR="'+elua_apps_dir+'"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"'
+ ]
+)
+
+test('elua-suite', elua_suite,
+ timeout : 10*60,
+ env : test_env
+)
diff --git a/src/tests/emile/meson.build b/src/tests/emile/meson.build
new file mode 100644
index 0000000000..438989a374
--- /dev/null
+++ b/src/tests/emile/meson.build
@@ -0,0 +1,18 @@
+emile_suite_src = [
+ 'emile_suite.c',
+ 'emile_suite.h',
+ 'emile_test_base.c',
+ 'emile_test_base64.c'
+]
+
+emile_suite = executable('emile_suite',
+ emile_suite_src,
+ dependencies: [emile, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('emile-suite', emile_suite,
+ env : test_env
+)
diff --git a/src/tests/emotion/data/meson.build b/src/tests/emotion/data/meson.build
new file mode 100644
index 0000000000..82c3c03ad8
--- /dev/null
+++ b/src/tests/emotion/data/meson.build
@@ -0,0 +1,21 @@
+edc_files = [
+ 'theme.edc',
+]
+
+themes = []
+
+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 \ No newline at end of file
diff --git a/src/tests/emotion/meson.build b/src/tests/emotion/meson.build
new file mode 100644
index 0000000000..ec5027c07b
--- /dev/null
+++ b/src/tests/emotion/meson.build
@@ -0,0 +1,21 @@
+subdir('data')
+
+emotion_eo_suite = executable('emotion_eo_suite',
+ 'emotion_test_main-eo.c', themes,
+ dependencies: [check, eo, evas, emotion, ecore_evas, edje, ecore],
+ include_directories : config_dir,
+ c_args : [
+ '-DPACKAGE_DATA_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+emotion_suite = executable('emotion_suite',
+ 'emotion_test_main.c', themes,
+ dependencies: [check, eo, evas, emotion, ecore_evas, edje, ecore],
+ include_directories : config_dir,
+ c_args : [
+ '-DPACKAGE_DATA_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
diff --git a/src/tests/eo/access/meson.build b/src/tests/eo/access/meson.build
new file mode 100644
index 0000000000..79bc65f982
--- /dev/null
+++ b/src/tests/eo/access/meson.build
@@ -0,0 +1,20 @@
+eo_access_src = [
+ 'access_inherit.c',
+ 'access_inherit.h',
+ 'access_main.c',
+ 'access_simple.c',
+ 'access_simple.h',
+ 'access_simple_protected.h'
+]
+
+eo_access = executable('eo_access',
+ eo_access_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-access', eo_access,
+ env : test_env
+)
diff --git a/src/tests/eo/children/meson.build b/src/tests/eo/children/meson.build
new file mode 100644
index 0000000000..e740b5cc9b
--- /dev/null
+++ b/src/tests/eo/children/meson.build
@@ -0,0 +1,17 @@
+eo_children_src = [
+ 'children_main.c',
+ 'children_simple.c',
+ 'children_simple.h'
+]
+
+eo_children = executable('eo_children',
+ eo_children_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-children', eo_children,
+ env : test_env
+)
diff --git a/src/tests/eo/composite_objects/meson.build b/src/tests/eo/composite_objects/meson.build
new file mode 100644
index 0000000000..578d4fabbc
--- /dev/null
+++ b/src/tests/eo/composite_objects/meson.build
@@ -0,0 +1,19 @@
+eo_composite_objects_src = [
+ 'composite_objects_comp.c',
+ 'composite_objects_comp.h',
+ 'composite_objects_main.c',
+ 'composite_objects_simple.c',
+ 'composite_objects_simple.h'
+]
+
+eo_composite_objects = executable('eo_composite_objects',
+ eo_composite_objects_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-composite-objects', eo_composite_objects,
+ env : test_env
+)
diff --git a/src/tests/eo/constructors/meson.build b/src/tests/eo/constructors/meson.build
new file mode 100644
index 0000000000..612c7be3ec
--- /dev/null
+++ b/src/tests/eo/constructors/meson.build
@@ -0,0 +1,31 @@
+eo_constructors_src = [
+ 'constructors_main.c',
+ 'constructors_mixin.c',
+ 'constructors_mixin.h',
+ 'constructors_simple.c',
+ 'constructors_simple.h',
+ 'constructors_simple2.c',
+ 'constructors_simple2.h',
+ 'constructors_simple3.c',
+ 'constructors_simple3.h',
+ 'constructors_simple4.c',
+ 'constructors_simple4.h',
+ 'constructors_simple5.c',
+ 'constructors_simple5.h',
+ 'constructors_simple6.c',
+ 'constructors_simple6.h',
+ 'constructors_simple7.c',
+ 'constructors_simple7.h'
+]
+
+eo_constructors = executable('eo_constructors',
+ eo_constructors_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-constructors', eo_constructors,
+ env : test_env
+)
diff --git a/src/tests/eo/function_overrides/meson.build b/src/tests/eo/function_overrides/meson.build
new file mode 100644
index 0000000000..fb2b8dcadb
--- /dev/null
+++ b/src/tests/eo/function_overrides/meson.build
@@ -0,0 +1,23 @@
+eo_function_overrides_src = [
+ 'function_overrides_inherit.c',
+ 'function_overrides_inherit.h',
+ 'function_overrides_inherit2.c',
+ 'function_overrides_inherit2.h',
+ 'function_overrides_inherit3.c',
+ 'function_overrides_inherit3.h',
+ 'function_overrides_main.c',
+ 'function_overrides_simple.c',
+ 'function_overrides_simple.h'
+]
+
+eo_function_overrides = executable('eo_function_overrides',
+ eo_function_overrides_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-function-overrides', eo_interface,
+ env : test_env
+)
diff --git a/src/tests/eo/interface/meson.build b/src/tests/eo/interface/meson.build
new file mode 100644
index 0000000000..77f725734b
--- /dev/null
+++ b/src/tests/eo/interface/meson.build
@@ -0,0 +1,21 @@
+eo_interface_src = [
+ 'interface_interface.c',
+ 'interface_interface.h',
+ 'interface_interface2.c',
+ 'interface_interface2.h',
+ 'interface_main.c',
+ 'interface_simple.c',
+ 'interface_simple.h'
+]
+
+eo_interface = executable('eo_interface',
+ eo_interface_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-interface', eo_interface,
+ env : test_env
+)
diff --git a/src/tests/eo/meson.build b/src/tests/eo/meson.build
new file mode 100644
index 0000000000..da4a899da7
--- /dev/null
+++ b/src/tests/eo/meson.build
@@ -0,0 +1,9 @@
+subdir('suite')
+subdir('signals')
+subdir('mixin')
+subdir('interface')
+subdir('function_overrides')
+subdir('constructors')
+subdir('composite_objects')
+subdir('children')
+subdir('access')
diff --git a/src/tests/eo/mixin/meson.build b/src/tests/eo/mixin/meson.build
new file mode 100644
index 0000000000..5ae83a9672
--- /dev/null
+++ b/src/tests/eo/mixin/meson.build
@@ -0,0 +1,27 @@
+eo_mixin_src = [
+ 'mixin_inherit.c',
+ 'mixin_inherit.h',
+ 'mixin_main.c',
+ 'mixin_mixin.c',
+ 'mixin_mixin.h',
+ 'mixin_mixin2.c',
+ 'mixin_mixin2.h',
+ 'mixin_mixin3.c',
+ 'mixin_mixin3.h',
+ 'mixin_mixin4.c',
+ 'mixin_mixin4.h',
+ 'mixin_simple.c',
+ 'mixin_simple.h'
+]
+
+eo_mixin = executable('eo_mixin',
+ eo_mixin_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-mixins', eo_mixin,
+ env : test_env
+)
diff --git a/src/tests/eo/signals/meson.build b/src/tests/eo/signals/meson.build
new file mode 100644
index 0000000000..37006ac3fc
--- /dev/null
+++ b/src/tests/eo/signals/meson.build
@@ -0,0 +1,17 @@
+eo_signals_src = [
+ 'signals_main.c',
+ 'signals_simple.c',
+ 'signals_simple.h'
+]
+
+eo_signals = executable('eo_signals',
+ eo_signals_src,
+ dependencies: [eo],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-signals', eo_signals,
+ env : test_env
+)
diff --git a/src/tests/eo/suite/meson.build b/src/tests/eo/suite/meson.build
new file mode 100644
index 0000000000..6e7f4ba6f7
--- /dev/null
+++ b/src/tests/eo/suite/meson.build
@@ -0,0 +1,33 @@
+eo_suite_src = [
+ 'eo_test_class_simple.c',
+ 'eo_test_class_simple.h',
+ 'eo_test_class_singleton.c',
+ 'eo_test_class_singleton.h',
+ 'eo_test_domain.c',
+ 'eo_test_domain.h',
+ 'eo_suite.c',
+ 'eo_suite.h',
+ 'eo_error_msgs.h',
+ 'eo_error_msgs.c',
+ 'eo_test_class_errors.c',
+ 'eo_test_class_behaviour_errors.c',
+ 'eo_test_call_errors.c',
+ 'eo_test_general.c',
+ 'eo_test_value.c',
+ 'eo_test_event.c',
+ 'eo_test_threaded_calls.c',
+ 'eo_test_init.c',
+ 'eo_test_lifecycle.c'
+]
+
+eo_suite = executable('eo_suite',
+ eo_suite_src,
+ dependencies: [eo, check, valgrind],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eo-suite', eo_suite,
+ env : test_env
+)
diff --git a/src/tests/eolian/meson.build b/src/tests/eolian/meson.build
new file mode 100644
index 0000000000..01fd6d3c10
--- /dev/null
+++ b/src/tests/eolian/meson.build
@@ -0,0 +1,38 @@
+priv_eo_files = [
+ 'generated_future.eo'
+]
+
+eolian_test_src = [
+'eolian_parsing.c',
+'eolian_generation.c',
+'eolian_generated_future.c',
+'eolian_suite.c',
+'eolian_suite.h',
+'eolian_static.c'
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += 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
+
+eolian_suite = executable('eolian_suite',
+ eolian_test_src, priv_eo_file_target,
+ dependencies: [eolian, check, eo],
+ c_args : [
+ '-DEOLIAN_GEN="'+eolian_gen.full_path()+'"',
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DEO_SRC_DIR="'+join_paths(meson.source_root(), 'src', 'lib')+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eolian', eolian_suite,
+ timeout: 30,
+ env : test_env
+)
diff --git a/src/tests/evas/meson.build b/src/tests/evas/meson.build
new file mode 100644
index 0000000000..62898cd241
--- /dev/null
+++ b/src/tests/evas/meson.build
@@ -0,0 +1,31 @@
+evas_suite_src = [
+ 'evas_suite.c',
+ 'evas_test_new.c',
+ 'evas_test_init.c',
+ 'evas_test_object.c',
+ 'evas_test_object_smart.c',
+ 'evas_test_textblock.c',
+ 'evas_test_text.c',
+ 'evas_test_callbacks.c',
+ 'evas_test_render_engines.c',
+ 'evas_test_filters.c',
+ 'evas_test_image.c',
+ 'evas_test_mesh.c',
+ 'evas_test_mask.c',
+ 'evas_test_evasgl.c',
+ 'evas_test_matrix.c',
+ 'evas_tests_helpers.h',
+ 'evas_suite.h'
+]
+
+evas_suite = executable('evas_suite',
+ evas_suite_src,
+ dependencies: [evas_bin, evas, ecore_evas, dl, check],
+ c_args : [
+ '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+ '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('evas-suite', evas_suite,
+ env : test_env
+)
diff --git a/src/tests/meson.build b/src/tests/meson.build
new file mode 100644
index 0000000000..7604ba199a
--- /dev/null
+++ b/src/tests/meson.build
@@ -0,0 +1 @@
+executable('timeout', 'timeout.c')
diff --git a/src/wayland_protocol/meson.build b/src/wayland_protocol/meson.build
new file mode 100644
index 0000000000..5f3680ee93
--- /dev/null
+++ b/src/wayland_protocol/meson.build
@@ -0,0 +1,67 @@
+wayland_scanner_bin = find_program('wayland-scanner')
+
+#make it typo proof
+_wayland_protocols = dependency('wayland-protocols')
+wayland_client = dependency('wayland-client')
+
+wl_protocol_local = [
+ 'efl-aux-hints.xml',
+ 'efl-hints.xml',
+ 'session-recovery.xml',
+ 'teamwork.xml',
+ 'www.xml'
+]
+
+wl_unstable_protocol_sys = [
+ join_paths('xdg-shell', 'xdg-shell-unstable-v6.xml'),
+ join_paths('linux-dmabuf', 'linux-dmabuf-unstable-v1.xml'),
+ join_paths('text-input', 'text-input-unstable-v1.xml'),
+]
+
+wl_stable_protocol_sys = [
+ join_paths('xdg-shell', 'xdg-shell.xml'),
+]
+
+foreach sys_protocol : wl_unstable_protocol_sys
+ wl_protocol_local += [
+ join_paths(_wayland_protocols.get_pkgconfig_variable('pkgdatadir'), 'unstable',
+ sys_protocol)]
+endforeach
+
+foreach sys_protocol : wl_stable_protocol_sys
+ wl_protocol_local += [
+ join_paths(_wayland_protocols.get_pkgconfig_variable('pkgdatadir'), 'stable',
+ sys_protocol)]
+endforeach
+
+gen_obj = []
+
+foreach item : wl_protocol_local
+ gen_obj += custom_target('wl_code_'+item.underscorify(),
+ input: item,
+ output : ['@BASENAME@-protocol.c'],
+ command: [wayland_scanner_bin, ['code','@INPUT@','@OUTPUT@']]
+ )
+ gen_obj += custom_target('wl_client_header_'+item.underscorify(),
+ input: item,
+ output : ['@BASENAME@-client-protocol.h'],
+ command: [wayland_scanner_bin, ['client-header','@INPUT@','@OUTPUT@']]
+ )
+ gen_obj += custom_target('wl_server_header_'+item.underscorify(),
+ input: item,
+ output : ['@BASENAME@-server-protocol.h'],
+ command: [wayland_scanner_bin, ['server-header','@INPUT@','@OUTPUT@']]
+ )
+endforeach
+
+
+wayland_protocol_lib = static_library('wayland_protocol',
+ gen_obj,
+)
+
+wayland_protocol = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: wayland_protocol_lib,
+ sources: gen_obj,
+ dependencies : [wayland_client]
+) \ No newline at end of file