summaryrefslogtreecommitdiff
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
parent70ecf1056bb4be5a68b63044f938ccc2fe0a58c0 (diff)
here comes meson
a new shiny buildtool that currently completes in the total of ~ 4 min.. 1 min. conf time 2:30 min. build time Where autotools takes: 1:50 min. conf time 3:40 min. build time. meson was taken because it went quite good for enlightenment, and is a traction gaining system that is also used by other mayor projects. Additionally, the DSL that is defined my meson makes the configuration of the builds a lot easier to read. Further informations can be gathered from the README.meson Right now, bindings & windows support are missing. It is highly recommented to use meson 0.48 due to optimizations in meson that reduced the time the meson call would need. Co-authored-by: Mike Blumenkrantz <zmike@samsung.com> Differential Revision: https://phab.enlightenment.org/D7012 Depends on D7011
-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 @@
1# BUILDING EFL WITH MESON
2
3 Building, testing, installing:
4 mkdir build
5 cd build
6 meson ..
7 ninja all
8 ninja test
9 sudo ninja install
10
11In autotools there have been a few flags that are used to disable loaders. In meson the following four disbler arrays are used:
12
13 emotion-generic-loaders-disabler
14
15 emotion-loaders-disabler
16
17 ecore-imf-loaders-disabler
18
19 evas-loaders-disabler
20
21Autotools options that are converted are:
22
23 --disable-poppler -> Disable pdf loader
24 --disable-spectre -> Disable ps loader
25 --disable-libraw -> Disable raw loader
26 --disable-librsvg -> Disable svg loader
27 --disable-xcf -> Disable xcf loader
28 --disable-xim -> Disable xim loader
29 --disable-scim -> Disable scim loader
30 --disable-ibus -> Disable ibus loader
31 --enable-xine -> Disable xine loader
32 --enable-libvlc -> Disable vlc loader
33 --disable-librsvg -> Disable svg loader
34
35The following options are dropped as they did not affect compilation
36 --enable-lua-old
37 --enable-cancel-ok
38 --enable-debug
39 --disable-quick-launch
40 --enable-tile-rotate
41
42The following options are merged into the pixman option
43 --enable-pixman-font
44 --enable-pixman-rect
45 --enable-pixman-line
46 --enable-pixman-poly
47 --enable-pixman-image
48 --enable-pixman-image-scale-sample
49
50
51--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 @@
1install_data('edje.inc',
2 install_dir : join_paths(dir_data, 'edje', 'include')
3) \ 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 @@
1subdir('include')
2
3install_data(files('edje.xml'),
4 install_dir : join_paths(dir_data, 'mime', 'packages')
5)
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 @@
1custom_target('config_'+config,
2 input: config_file,
3 output: 'base.cfg',
4 command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
5 install: true,
6 install_dir: join_paths(dir_data, 'elementary', 'config', config),
7)
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 @@
1configs = ['default', 'mobile', 'standard']
2
3foreach config : configs
4 config_file = join_paths(meson.current_source_dir(), config, 'base.src.in')
5 config_icon = join_paths(meson.current_source_dir(), config, 'icon.png')
6 config_desktop = join_paths(meson.current_source_dir(), config, 'profile.desktop')
7
8 install_data([config_icon, config_desktop],
9 install_dir : join_paths(dir_data, 'elementary', 'config', config)
10 )
11
12 subdir(config)
13endforeach
14
15custom_target('config_profile',
16 input: 'profile.src',
17 output: 'profile.cfg',
18 command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
19 install: true,
20 install_dir: join_paths(dir_data, 'elementary', 'config'),
21)
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 @@
1 custom_target('config_'+config,
2 input: config_file,
3 output: 'base.cfg',
4 command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
5 install: true,
6 install_dir: join_paths(dir_data, 'elementary', 'config', config),
7 )
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 @@
1 custom_target('config_'+config,
2 input: config_file,
3 output: 'base.cfg',
4 command: [eet_bin, '-i', '@OUTPUT@', 'config', '@INPUT@', '0'],
5 install: true,
6 install_dir: join_paths(dir_data, 'elementary', 'config', config),
7 )
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 @@
1desktop_files = files('elementary_config.desktop', 'elementary_test.desktop')
2elementary_icon = files('elementary.png')
3
4install_data(desktop_files,
5 install_dir : join_paths(dir_data, 'applications')
6)
7
8install_data(elementary_icon,
9 install_dir : join_paths(dir_data, 'icons', 'hicolor', '128x128', 'apps')
10)
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 @@
1custom_target('edje_cc_edje_externals',
2 input : 'icons.edc',
3 output : '@BASENAME@.edj',
4 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
5 '-id', join_paths(meson.current_source_dir()),
6 '-id', elm_themes_image_include,
7 '@INPUT@', '@OUTPUT@'],
8 depends : edje_cc,
9 install : true,
10 install_dir : join_paths(dir_data, 'elementary', 'edje_externals'),
11)
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 @@
1subdir('config')
2subdir('desktop')
3subdir('themes')
4subdir('objects')
5subdir('edje_externals')
6
7install_subdir('images',
8 install_dir : join_paths(dir_data, 'elementary'),
9 exclude_files : ['Makefile.am']
10)
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 @@
1edc_files = [
2 'test.edc',
3 'test_external.edc',
4 'test_focus_style.edc',
5 'test_masking.edc',
6 'test_tab_pager.edc',
7 'test_tooltip.edc',
8 'test_prefs.edc',
9 'cursors.edc',
10 'font_preview.edc',
11 'multibuttonentry.edc',
12 'multip.edc',
13 'postit_ent.edc'
14]
15
16elm_themes = []
17
18foreach edc_file : edc_files
19 elm_themes += custom_target('edje_cc_elm_' + edc_file,
20 input : edc_file,
21 output : '@BASENAME@.edj',
22 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
23 '-sd', join_paths(meson.current_source_dir()),
24 '-id', elm_themes_image_include,
25 '-id', join_paths(meson.current_source_dir()),
26 '-fd', join_paths(meson.current_source_dir()),
27 '@INPUT@', '@OUTPUT@'],
28 depends : edje_cc,
29 install : true,
30 install_dir : join_paths(dir_data, 'elementary', 'objects'),
31 )
32endforeach
33
34custom_target('prefs_compile',
35 input: 'test_prefs.epc',
36 output: 'test_prefs.epb',
37 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path(),
38 '@INPUT@', '@OUTPUT@'],
39 depends : elm_prefs_cc,
40 install : true,
41 install_dir : join_paths(dir_data, 'elementary', 'objects'),
42)
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 @@
1edc_files = [
2 'default.edc',
3]
4
5elm_themes = []
6
7elm_themes_image_include = join_paths(meson.current_source_dir(), 'img')
8
9foreach edc_file : edc_files
10 elm_themes += custom_target('edje_cc_' + edc_file,
11 input : edc_file,
12 output : '@BASENAME@.edj',
13 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
14 '-sd', join_paths(meson.current_source_dir(), 'snd'),
15 '-id', elm_themes_image_include,
16 '-id', join_paths(meson.current_source_dir(), 'fdo'),
17 '-fd', join_paths(meson.current_source_dir(), 'fnt'),
18 '@INPUT@', '@OUTPUT@'],
19 depends : edje_cc,
20 install : true,
21 install_dir : join_paths(dir_data, 'elementary', 'themes'),
22 )
23endforeach
24
25install_subdir('fdo',
26 install_dir : join_paths(dir_data, 'icons', 'Enlightenment-X'),
27 strip_directory : true,
28 exclude_directories : [
29 join_paths('status', '128-svg'),
30 join_paths('places', '16-svg'),
31 join_paths('places', '128-svg'),
32 join_paths('emblems', '96-svg'),
33 join_paths('devices', '128-svg'),
34 join_paths('categories', '128-svg'),
35 join_paths('actions', '128-svg'),
36 ]
37)
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 @@
1install_data('default.inc',
2 install_dir : join_paths(dir_data, 'embryo', 'include')
3)
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 @@
1install_data('eo_gdb.py',
2 install_dir : join_paths(dir_data, 'eo', 'gdb')
3)
4
5configuration = configuration_data()
6configuration.set('datadir', dir_data)
7
8configure_file(
9 input: 'libeo-gdb.py.in',
10 output: 'libeo.so.'+meson.project_version()+'-gdb.py',
11 configuration: configuration,
12 install_dir: join_paths(dir_data, 'gdb', 'autoload', 'usr', 'lib')
13)
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 @@
1ethumb_frame = files('default.edc')
2
3custom_target('edje_cc_ethumb_frame',
4 input : ethumb_frame,
5 output : '@BASENAME@.edj',
6 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
7 '-sd', join_paths(meson.current_source_dir()),
8 '-id', join_paths(meson.current_source_dir()),
9 '-fd', join_paths(meson.current_source_dir()),
10 '@INPUT@', '@OUTPUT@'],
11 depends : edje_cc,
12 install : true,
13 install_dir : join_paths(dir_data, 'ethumb', 'frames'),
14)
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 @@
1checkme_files = ['ecore', 'ecore_imf', 'ecore_x', 'eeze', 'efreet', 'elua', 'emotion', 'ethumb', 'ethumb_client', 'evas']
2foreach checkme : checkme_files
3 install_data(join_paths(checkme, 'checkme'),
4 install_dir : join_paths(dir_data, checkme)
5 )
6endforeach
7
8subdir('eo')
9subdir('edje')
10subdir('embryo')
11subdir(join_paths('ethumb', 'frames'))
12subdir('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 @@
1header_checks = [
2 'alloca.h',
3 'asm/hwcap.h',
4 'bsd/string.h',
5 'dirent.h',
6 'execinfo.h',
7 'mcheck.h',
8 'netinet/in.h',
9 'netinet/ssl.h',
10 'netinet/tcp.h',
11 'netinet/udp.h',
12 'net/if.h',
13 'stdlib.h',
14 'mman.h',
15 'sys/auxv.h',
16 'sys/inotify.h',
17 'sys/ioctl.h',
18 'sys/mman.h',
19 'sys/types.h',
20 'sys/socket.h',
21 'sys/filio.h',
22 'arpa/inet.h',
23 'sys/epoll.h',
24 'sys/un.h',
25 'sys/wait.h',
26 'sys/resource.h',
27 'sys/times.h',
28 'dirent.h',
29 'longinfo.h',
30 'exotic.h',
31 'ieeefp.h',
32 'node/uv.h',
33 'sys/timerfd.h',
34 'features.h',
35 'langinfo.h',
36 'locale.h',
37 'uv.h',
38 'ws2tcpip.h'
39]
40
41function_checks = [
42# function name | headers that are needed | libraries to include | Defines that are needed
43 ['alloca', ['alloca.h']],
44 ['backtrace', ['execinfo.h']],
45 ['backtrace_symbols', ['execinfo.h']],
46 ['clock_gettime', ['time.h']],
47 ['dirfd', ['dirent.h sys/types.h']],
48 ['fchmod', ['sys/stat.h']],
49 ['fcntl', ['fcntl.h']],
50 ['fork', ['unistd.h']],
51 ['fpathconf', ['unistd.h']],
52 ['geteuid', ['unistd.h']],
53 ['getpagesize', ['unistd.h']],
54 ['getpwent', ['sys/types.h', 'pwd.h']],
55 ['getuid', ['unistd.h']],
56 ['getxattr', ['sys/types.h', 'sys/xattr.h']],
57 ['iconv', ['iconv.h']],
58 ['listxattr', ['sys/types.h', 'sys/xattr.h']],
59 ['mallinfo', ['malloc.h']],
60 ['malloc_info', ['malloc.h']],
61 ['malloc_usable_size', ['malloc.h']],
62 ['mkdirat', ['sys/stat.h']],
63 ['mmap', ['sys/mman.h']],
64 ['mtrace', ['mcheck.h']],
65 ['prctl', ['sys/prctl.h']],
66 ['realpath', ['stdlib.h']],
67 ['setxattr', ['sys/types.h', 'sys/xattr.h']],
68 ['siglongjmp', ['setjmp.h']],
69 ['strerror_r', ['string.h']],
70 ['gettimeofday', ['sys/time.h']],
71 ['execvp', ['unistd.h']],
72 ['pause', ['unistd.h']],
73 ['isfinite', ['math.h']],
74#FIXME strlcpy is detected by meson but drops at compilation time
75# ['strlcpy', ['string.h']],
76 ['siginfo_t', ['signal.h']],
77 ['strerror_r', ['string.h']],
78 ['pthread_getcpuclockid', ['pthread.h', 'time.h']],
79 ['timerfd_create', ['sys/timerfd.h']],
80 ['kevent', ['sys/types.h', 'sys/event.h', 'sys/time.h']],
81#from here on we specify the dependencies
82 ['dlopen', ['dlfcn.h'], ['dl']],
83 ['dlsym', ['dlfcn.h'], ['dl']],
84 ['lround', ['math.h'], ['m']],
85 ['shm_open', ['sys/mman.h', 'sys/stat.h', 'fcntl.h'], ['rt']],
86#from here on we specify arguments
87 ['splice', ['fcntl.h'], [], '-D_GNU_SOURCE=1'],
88 ['sched_getcpu', ['sched.h'], [], '-D_GNU_SOURCE=1'],
89 ['dladdr', ['dlfcn.h'], ['dl'], '-D_GNU_SOURCE=1']
90]
91
92strerror_r_char_p = cc.compiles('''#define _GNU_SOURCE
93 #include <string.h>
94 int func (void)
95 {
96 char error_string[256];
97 char *ptr = strerror_r (-2, error_string, 256);
98 char c = *strerror_r (-2, error_string, 256);
99 return c != 0 && ptr != (void*) 0L;
100 }
101 ''',
102 name : 'strerror_r() returns char *')
103
104if strerror_r_char_p
105 config_h.set('STRERROR_R_CHAR_P', '1')
106endif
107
108#for later use, a bunch of librarie findings
109m = cc.find_library('m')
110#just keep this here as required false, if it is not inplace the library rt will just be linked as NOP
111dl = cc.find_library('dl', required: false)
112rt = cc.find_library('rt', required: false)
113
114thread_dep = dependency('threads')
115
116#check for the headers
117foreach header : header_checks
118 if cc.has_header(header)
119 config_h.set10('HAVE_'+header.underscorify().to_upper(), true)
120 endif
121endforeach
122
123foreach function : function_checks
124 function_name = function[0]
125 headers_to_search = function[1]
126 dependencies = []
127 args = []
128
129 # if there is a library, make sure they exist
130 if function.length() > 2
131 foreach library : function[2]
132 lib = cc.find_library(library, required : false)
133 if lib.found() == true
134 dependencies += lib
135 endif
136 endforeach
137 endif
138
139 #check if there are args
140 if function.length() > 3
141 args = function[3]
142 endif
143
144 # Only check the header if the dependencies are ready
145 foreach header : headers_to_search
146 if cc.has_header_symbol(header, function_name,
147 dependencies : dependencies,
148 args : args)
149 config_h.set10('HAVE_'+function_name.to_upper(), true)
150 endif
151 endforeach
152endforeach
153
154# The next checks are manually for now due to the fact that some names are not within the default pattern
155if (cc.has_header_symbol('sys/stat.h', 'fstatat'))
156 config_h.set10('HAVE_ATFILE_SOURCE', true)
157endif
158
159if (cc.has_header('sys/mman.h'))
160 config_h.set10('HAVE_MMAN_H', true)
161endif
162
163config_h.set('VMAJ', version_major)
164config_h.set('VMIN', version_minor)
165config_h.set('VMIC', version_micro)
166config_h.set('VREV', '0')
167
168#jpeg detection ... life is a bit more complex there
169
170jpeg = dependency('libjpeg', required: false)
171if jpeg.found() == false
172 jpeg = cc.find_library('jpeg')
173endif
174
175if config_h.has('HAVE_KEVENT')
176 config_h.set('HAVE_NOTIFY_KEVENT', '1')
177endif \ 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 @@
1project('efl', ['c','cpp'],
2 version: '1.21.99',
3 default_options : ['buildtype=plain'],
4 meson_version : '>=0.46'
5)
6
7if target_machine.system() == 'darwin'
8 add_languages('objc')
9endif
10
11
12clean_check = run_command('meson/clean_check.sh')
13if clean_check.returncode() == 0
14 error('Meson build requires a clean source tree')
15endif
16
17pkgconfig = import('pkgconfig')
18
19test_env = environment()
20test_env.set('EFL_RUN_IN_TREE', '1')
21
22version_arr = meson.project_version().split('.')
23
24version_major = version_arr[0]
25version_minor = version_arr[1]
26version_micro = version_arr[2]
27version_name = 'v-'+version_major + '.' + version_minor
28
29cc = meson.get_compiler('c')
30host_os = host_machine.system()
31
32if host_os == 'linux'
33 if cc.has_header_symbol('features.h', '__UCLIBC__')
34 host_os = 'linux-uclibc'
35 elif cc.has_header_symbol('features.h', '__dietlibc__')
36 host_os = 'linux-dietlibc'
37 else
38 host_os = 'linux-gnu'
39 endif
40endif
41
42#prepare a special linker args flag for binaries on macos
43bin_linker_args = []
44if target_machine.system() == 'darwin'
45 bin_linker_args = ['-pagezero_size', '10000', '-image_base', '100000000']
46endif
47
48module_files = []
49evas_loader_map = []
50
51#install paths
52dir_prefix = get_option('prefix')
53dir_sysconf = join_paths(dir_prefix, get_option('sysconfdir'))
54dir_bin = join_paths(dir_prefix, get_option('bindir'))
55dir_data = join_paths(dir_prefix, get_option('datadir'))
56dir_include = join_paths(dir_prefix, get_option('includedir'))
57dir_lib = join_paths(dir_prefix, get_option('libdir'))
58
59#local paths
60local_lib = join_paths('src', 'lib')
61local_bin = join_paths('src', 'bin')
62local_module = join_paths('src', 'modules')
63local_tests = join_paths('src', 'tests')
64local_benchmark = join_paths('src', 'benchmarks')
65local_examples = join_paths('src', 'examples')
66local_scripts = join_paths('src', 'scripts')
67
68add_global_arguments('-DHAVE_CONFIG_H=1', language: 'c')
69add_global_arguments('-D_GNU_SOURCE=1', language: 'c')
70add_global_arguments('-fPIC', language: 'c')
71
72add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'c')
73add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'c')
74add_global_arguments('-DNEED_RUN_IN_TREE=1', language: 'c')
75add_global_arguments('-DEFL_BUILD=1', language: 'c')
76add_global_arguments('-DEFL_BUILD=1', language: 'objc')
77add_global_arguments('-DEFL_EO_API_SUPPORT=1', language: 'objc')
78add_global_arguments('-DEFL_BETA_API_SUPPORT=1', language: 'objc')
79add_global_arguments('-DELM_INTERNAL_API_ARGESFSDFEFC=1', language: 'c')
80
81config_h = configuration_data()
82config_h.set_quoted('MODULE_ARCH', version_name)
83config_h.set_quoted('PACKAGE', meson.project_name())
84config_h.set_quoted('PACKAGE_VERSION', meson.project_version())
85config_h.set_quoted('VERSION', meson.project_version())
86config_h.set_quoted('LOCALE_DIR', join_paths([dir_prefix, 'share/locale']))
87config_h.set_quoted('PACKAGE_URL', 'https://www.enlightenment.org')
88config_h.set_quoted('PACKAGE_TARNAME', meson.project_name())
89config_h.set_quoted('PACKAGE_BUGREPORT', 'enlightenment-devel@lists.sourceforge.net')
90config_h.set_quoted('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version())
91config_h.set_quoted('PACKAGE_NAME', meson.project_name())
92config_h.set_quoted('PACKAGE_BIN_DIR', dir_bin)
93config_h.set_quoted('PACKAGE_LIB_DIR', dir_lib)
94config_h.set_quoted('PACKAGE_SRC_DIR', meson.source_root())
95config_h.set_quoted('PACKAGE_BUILD_DIR', meson.current_build_dir())
96config_h.set_quoted('PACKAGE_SYSCONF_DIR', dir_sysconf)
97config_h.set_quoted('BINDIR', dir_bin)
98config_h.set_quoted('DATADIR', dir_data)
99config_h.set10('EFL_HAVE_THREADS', true)
100config_h.set('NEED_RUN_IN_TREE', '1')
101
102config_dir = [include_directories('.')]
103eolian_include_directories = []
104
105windows = ['windows', 'cygwin']
106#bsd for meson 0.46 and 0.47
107bsd = ['bsd', 'freebsd', 'dragonfly', 'netbsd']
108linux = ['linux']
109osx = ['darwin']
110
111if linux.contains(target_machine.system()) or bsd.contains(target_machine.system())
112 sys_lib_extension = 'so'
113 sys_exe_extension = ''
114 sys_mod_extension = 'so'
115elif windows.contains(target_machine.system())
116 sys_lib_extension = 'dll'
117 sys_exe_extension = 'exe'
118 sys_mod_extension = 'dll'
119elif osx.contains(target_machine.system())
120 sys_lib_extension = 'dylib'
121 sys_exe_extension = ''
122 sys_mod_extension = 'dylib'
123else
124 error('System '+target_machine.system()+' not known')
125endif
126
127if (get_option('crypto') == 'gnutls')
128 # gcrypt does not want to provide a pkg config file so we try the lib
129 crypto = [dependency('gnutls'), cc.find_library('gcrypt')]
130 config_h.set('HAVE_GNUTLS', '1')
131elif (get_option('crypto') == 'openssl')
132 crypto = dependency('openssl')
133 config_h.set('HAVE_OPENSSL', '1')
134endif
135
136config_h.set_quoted('SHARED_LIB_SUFFIX', '.'+sys_lib_extension)
137config_h.set_quoted('MOD_SUFFIX', '.'+sys_mod_extension)
138config_h.set_quoted('EXE_SUFFIX', '.'+sys_exe_extension)
139config_h.set('EFL_BUILD', '1')
140
141subdir('header_checks')
142subdir('po')
143
144if get_option('wl') == true
145 subdir(join_paths('src', 'wayland_protocol'))
146endif
147
148ecore_evas_wayland_engine_include_dir = []
149
150subprojects = [
151# name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs
152['eina' ,[] , false, true, true, true, true, true, [], []],
153['eolian' ,[] , false, true, true, false, true, false, ['eina'], []],
154['eo' ,[] , false, true, false, true, true, false, ['eina'], []],
155['efl' ,[] , false, true, false, false, true, false, ['eo'], []],
156['emile' ,[] , false, true, false, false, true, true, ['eina', 'efl'], ['lz4', 'rg_etc']],
157['eet' ,[] , false, true, true, false, true, true, ['eina', 'emile', 'efl'], []],
158['ecore' ,[] , false, true, false, false, false, false, ['eina', 'eo', 'efl'], ['buildsystem']],
159['eldbus' ,[] , false, true, true, false, true, true, ['eina', 'eo', 'efl'], []],
160['ecore' ,[] , true, false, false, false, true, true, ['eina', 'eo', 'efl'], []], #ecores modules depend on eldbus
161['ecore_audio' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
162['ecore_avahi' ,['avahi'] , false, true, false, false, false, true, ['eina', 'ecore'], []],
163['ecore_con' ,[] , false, true, true, false, true, false, ['eina', 'eo', 'efl', 'ecore'], ['http-parser']],
164['ecore_file' ,[] , false, true, false, false, false, false, ['eina'], []],
165['eeze' ,['eeze'] , true, true, true, false, true, false, ['eina', 'efl'], []],
166['ecore_input' ,[] , false, true, false, false, false, false, ['eina', 'eo'], []],
167['ecore_x' ,['x11'] , false, true, false, false, false, false, ['eina', 'efl'], []],
168['ecore_fb' ,['fb'] , false, true, false, false, false, false, ['eina'], []],
169['ecore_wl2' ,['wl'] , true, true, false, false, false, false, ['eina'], ['libdrm']],
170['ecore_sdl' ,['sdl'] , false, true, false, false, false, false, ['eina'], []],
171['ecore_ipc' ,[] , false, true, false, false, false, false, ['eina'], []],
172['ecore_buffer' ,['buffer'] , true, true, true, false, false, false, ['eina'], []],
173['ector' ,[] , false, true, false, false, true, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']],
174['elput' ,['drm'] , false, true, false, false, true, false, ['eina', 'eldbus'], []],
175['ecore_drm2' ,['drm'] , false, true, false, false, false, false, ['ecore'], ['libdrm']],
176['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, ['eina'], []],
177['evas' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']],
178['evas_goal' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
179['ecore_input_evas' ,[] , false, true, false, false, false, false, ['eina', 'evas'], []],
180['ecore_evas' ,[] , true, true, true, false, false, false, ['evas', 'ector'], []],
181['ecore_imf' ,[] , true, true, false, false, false, false, ['eina'], []],
182['embryo' ,[] , false, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
183['efreet' ,[] , false, true, false, false, true, false, ['eina', 'efl', 'eo'], []],
184['eio' ,[] , false, true, false, false, true, true, ['eina', 'eet'], []],
185['efreet' ,[] , false, false, true, false, false, false, ['eina', 'efl', 'eo'], []],
186['ecore_imf_evas' ,[] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
187['ephysics' ,['physics'] , false, true, false, false, false, false, ['eina', 'efl', 'eo'], []],
188['edje' ,[] , false, true, true, false, true, true, ['evas', 'eo', 'efl', 'luajit'], []],
189['emotion' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], []],
190['ethumb' ,[] , true, true, true, false, false, false, ['eina', 'efl', 'eo'], []],
191['ethumb_client' ,[] , false, true, true, false, false, true, ['eina', 'efl', 'eo', 'ethumb'], []],
192['elocation' ,[] , false, true, false, false, false, false, ['ecore', 'eldbus'], []],
193['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']],
194['efl_wl' ,['wl'] , false, true, true, false, false, false, ['evas', 'ecore'], []],
195['elua' ,['elua'] , false, true, true, false, true, false, ['eina', 'luajit'], []],
196['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, ['eina'], []],
197['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, ['eina'], []],
198]
199
200# We generate Efl_Config.h and config.h later, they will be available here
201config_dir += include_directories('.')
202
203#we have to do that first, eina modules are required by eina
204#the other modules require theire package
205subdir(join_paths(local_module, 'eina'))
206
207test_dirs = []
208example_dirs = []
209tmp_empty = declare_dependency()
210
211
212foreach package : subprojects
213 package_name = package[0]
214 package_version_name = '-'.join(package_name.split('_')) + '-' + version_major
215 package_c_args = [
216 '-DPACKAGE_DATA_DIR="'+ join_paths(dir_data, package_name)+'"',
217 '-DNEED_RUN_IN_TREE=1'
218 ]
219 automatic_pkgfile = true
220 if package[1].length() == 0 or get_option(package[1][0])
221 config_h.set('HAVE_'+package_name.to_upper(), '1')
222
223 dir_package_include = join_paths(dir_include, package_version_name)
224 dir_package_modules = join_paths(dir_lib, package_name, 'modules')
225
226 #ensure that we really dont copy the eo file targets from a previous library
227 pub_eo_file_target = []
228 priv_eo_file_target = []
229
230 foreach static_lib : package[9]
231 if get_variable(static_lib, tmp_empty) == tmp_empty
232 subdir(join_paths('src', 'static_libs', static_lib))
233 endif
234 endforeach
235
236 if (package[3])
237 subdir(join_paths(local_lib, package_name))
238 endif
239 if (package[2])
240 subdir(join_paths(local_module, package_name))
241 endif
242 if (package[4])
243 subdir(join_paths(local_bin, package_name))
244 endif
245 if (package[5])
246 subdir(join_paths(local_benchmark, package_name))
247 endif
248 if (package[6])
249 test_dirs += [package_name]
250 endif
251 if (package[7])
252 example_dirs += [package_name]
253 endif
254
255 set_variable('build_'+package_name, true)
256
257 # generate automatic pc files for libraries
258 if automatic_pkgfile == true and package[3]
259 tmp_lib = get_variable(package_name+'_lib')
260 tmp_deps = get_variable(package_name+'_deps')
261 tmp_pub_deps = get_variable(package_name+'_pub_deps')
262
263 pkgconfig.generate(tmp_lib,
264 name : '-'.join(package_name.split('_')),
265 subdirs : package_version_name,
266 version : version_major + '.' + version_minor,
267 libraries : tmp_pub_deps,
268 requires : package[8],
269 )
270 endif
271 else
272 message(package_name+' disabled!')
273 endif
274
275endforeach
276
277#build this later, as the debug services are depending on ecore
278subdir(join_paths('src', 'bin', 'efl'))
279
280subdir(join_paths('src', 'generic', 'evas'))
281subdir(join_paths('src', 'generic', 'emotion'))
282
283subdir(join_paths('src', 'bindings', 'luajit'))
284subdir(join_paths('src', 'edje_external'))
285
286
287subdir(join_paths('data'))
288
289if get_option('build-tests')
290 check = dependency('check')
291 subdir(join_paths('src', 'tests'))
292 foreach test : test_dirs
293 subdir(join_paths(local_tests, test))
294 endforeach
295endif
296
297if get_option('build-examples')
298 foreach example : example_dirs
299 subdir(join_paths(local_examples, example))
300 endforeach
301endif
302
303subdir(join_paths(local_scripts))
304
305meson.add_install_script('meson/meson_modules.sh', module_files)
306
307foreach evas_loader_map_inst : evas_loader_map
308 evas_loader_original = evas_loader_map_inst[0]
309 evas_loader_link_types = evas_loader_map_inst[1]
310
311 meson.add_install_script('meson/evas_loader_conf.sh', evas_loader_original, evas_loader_link_types)
312endforeach
313
314#
315# Configure files
316#
317
318efl_config_h = configuration_data()
319efl_config_h.set('EFL_VERSION_MAJOR', version_major)
320efl_config_h.set('EFL_VERSION_MINOR', version_minor)
321efl_config_h.set('EFL_VERSION_MICRO', version_micro)
322efl_config_h.set('EFL_BUILD_ID', get_option('build-id'))
323
324#FIXME placeholder
325efl_config_h.set('EFL_API_EO_DEF', '#define EFL_API_EO_DEF "FIXME NOT IMPLEMENTED"')
326efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"')
327
328configure_file(
329 output: 'config.h',
330 install: false,
331 configuration: config_h
332)
333
334configure_file(
335 input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'),
336 output: 'Efl_Config.h',
337 install_dir : join_paths(dir_include,'efl-'+version_major),
338 configuration: efl_config_h
339)
340
341configure_file(
342 input: 'elm_intro.h.in',
343 output: 'elm_intro.h',
344 configuration: config_h,
345 install_dir : join_paths(dir_include,'elementary-'+version_major)
346)
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 @@
1#!/bin/sh
2
3test -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 @@
1#!/bin/bash
2
3original_loader=$1
4filename="$(basename $original_loader)"
5ext="${ext##*.}"
6original_name="$(basename $original_loader $ext)"
7loader_dir="$(dirname $original_loader)"
8loader="$(basename $original_loader)"
9loader_name="$(echo $original_name | cut -f 1 -d '.')"
10
11if [ ${original_loader: -3} == "$ext" ]
12 then
13 mv "$DESTDIR"/"$original_loader" "$DESTDIR"/"$loader_dir"/"$original_name"
14fi
15
16for x in "${@:2}"; do
17 ln -sf "$DESTDIR"/"$loader_dir"/"$original_name" "$DESTDIR"/"$loader_dir"/"$loader_name"."$x"
18done \ 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 @@
1#!/bin/sh
2
3for x in "$@" ; do
4 dir="$(dirname $x)"
5 filename="$(basename $x)"
6 ext="${filename##*.}"
7 mv "$DESTDIR"/"$x" "$DESTDIR"/"$dir"/module."$ext"
8done
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 @@
1option('audio',
2 type : 'boolean',
3 value : true,
4 description : 'Flag for handling audio support in efl'
5)
6
7option('avahi',
8 type : 'boolean',
9 value : true,
10 description : 'Flag for handling avahi support in efl'
11)
12
13option('x11',
14 type : 'boolean',
15 value : true,
16 description : 'Flag for handling x11 support in efl'
17)
18
19option('fb',
20 type : 'boolean',
21 value : false,
22 description : 'Flag for handling frame buffer support in efl'
23)
24
25option('sdl',
26 type : 'boolean',
27 value : false,
28 description : 'Flag for handling sdl support in efl'
29)
30
31option('wl',
32 type : 'boolean',
33 value : false,
34 description : 'Flag for handling wayland support in efl'
35)
36
37option('buffer',
38 type : 'boolean',
39 value : false,
40 description : 'Flag for handling buffer support in efl'
41)
42
43option('drm',
44 type : 'boolean',
45 value : false,
46 description : 'Flag for handling drm support in efl'
47)
48
49option('cocoa',
50 type : 'boolean',
51 value : false,
52 description : 'Flag for handling drm support in efl'
53)
54
55option('physics',
56 type : 'boolean',
57 value : true,
58 description : 'Flag for handling the internal physics engine in efl'
59)
60
61option('eeze',
62 type : 'boolean',
63 value : true,
64 description : 'Flag for handling the device abstraction layer in efl'
65)
66
67option('opengl',
68 type : 'combo',
69 choices : ['full', 'es-egl', 'none'],
70 value : 'full',
71 description : 'build efl with a special opengl support'
72)
73
74option('build-id',
75 type : 'string',
76 value : 'none',
77 description : 'The build id to attach to the efl build')
78
79option('eina-magic-debug',
80 type : 'boolean',
81 value : true,
82 description : 'magic debug of eina structure'
83)
84
85option('debug-threads',
86 type : 'boolean',
87 value : false,
88 description : 'thread debugging'
89)
90
91option('build-examples',
92 type : 'boolean',
93 value : true,
94 description : 'build examples'
95)
96
97option('build-tests',
98 type : 'boolean',
99 value : true,
100 description : 'build examples'
101)
102
103option('crypto',
104 type : 'combo',
105 choices : ['gnutls', 'openssl'],
106 value : 'openssl'
107)
108
109option('glib',
110 type : 'boolean',
111 value : true,
112 description : 'use glib or not'
113)
114
115option('g-mainloop',
116 type : 'boolean',
117 value : false,
118 description : 'use glib mainloop or not'
119)
120
121option('gstreamer',
122 type : 'boolean',
123 value : true,
124 description : 'use gstreamer 1.0 support'
125)
126
127option('systemd',
128 type : 'boolean',
129 value : true,
130 description : 'use systemd support'
131)
132
133option('pulseaudio',
134 type : 'boolean',
135 value : true,
136 description : 'pulseaudio support'
137)
138
139option('network-backend',
140 type : 'combo',
141 choices : ['connman', 'none'],
142 value : 'none',
143 description : 'connman support'
144)
145
146option('xpresent',
147 type : 'boolean',
148 value : false,
149 description : 'xpresent support'
150)
151
152option('xgesture',
153 type : 'boolean',
154 value : false,
155 description : 'xgesture support'
156)
157
158option('xinput2',
159 type : 'boolean',
160 value : true,
161 description : 'xi2 support'
162)
163
164option('xinput22',
165 type : 'boolean',
166 value : false,
167 description : 'xi22 support'
168)
169
170option('tslib',
171 type : 'boolean',
172 value : true,
173 description : 'tslib support'
174)
175
176option('eject-path',
177 type : 'string',
178 value : 'detect',
179 description : 'path to use as eject binary, if "detect" internal eeze bins are used'
180)
181
182option('mount-path',
183 type : 'string',
184 value : 'detect',
185 description : 'path to use as eject binary, if "detect" internal eeze bins are used'
186)
187
188option('unmount-path',
189 type : 'string',
190 value : 'detect',
191 description : 'path to use as eject binary, if "detect" internal eeze bins are used'
192)
193
194option('evas-modules',
195 type : 'combo',
196 choices : ['shared', 'static'],
197 value : 'shared',
198 description : 'how to build the evas modules'
199)
200
201option('evas-loaders-disabler',
202 type : 'array',
203 description : 'add names here to disable the loaders',
204 choices : ['gst', 'pdf', 'ps', 'raw', 'svg', 'xcf', 'bmp', 'dds', 'eet', 'generic', 'gif', 'ico', 'jp2k', 'jpeg', 'pmaps', 'png', 'psd', 'tga', 'tgv', 'tiff', 'wbmp', 'webp', 'xpm'],
205 value : ['webp']
206)
207
208option('ecore-imf-loaders-disabler',
209 type : 'array',
210 description : 'add names here to disable the loaders',
211 choices : ['xim', 'ibus', 'scim'],
212 value : ['scim']
213)
214
215option('emotion-loaders-disabler',
216 type : 'array',
217 description : 'add names here to disable the loaders',
218 choices : ['gstreamer', 'gstreamer1', 'libvlc', 'xine'],
219 value : ['gstreamer', 'libvlc', 'xine']
220)
221
222option('emotion-generic-loaders-disabler',
223 type : 'array',
224 description : 'add names here to disable the loaders',
225 choices : ['vlc'],
226 value : ['vlc']
227)
228
229option('harfbuzz',
230 type : 'boolean',
231 value : false,
232 description : 'harfbuzz support'
233)
234
235option('fribidi',
236 type : 'boolean',
237 value : true,
238 description : 'fribidi support'
239)
240
241option('fontconfig',
242 type : 'boolean',
243 value : true,
244 description : 'fontconfig support'
245)
246
247option('edje-sound-and-video',
248 type : 'boolean',
249 value : true,
250 description : 'disable sound and video for edje'
251)
252
253option('pixman',
254 type : 'boolean',
255 value : false,
256 description : 'Enable pixman support in evas'
257)
258
259option('hyphen',
260 type : 'boolean',
261 value : false,
262 description : 'Enable hyphen support in evas'
263)
264
265option('embedded-lz4',
266 type : 'boolean',
267 value : true,
268 description : 'do not use the system lz4, but rather the embedded r131 release'
269)
270
271option('libmount',
272 type : 'boolean',
273 value : true,
274 description : 'use libmount support or not'
275)
276
277option('vnc-server',
278 type : 'boolean',
279 value : false,
280 description : 'use libmount support or not'
281)
282
283option('v4l2',
284 type : 'boolean',
285 value : true,
286 description : 'add v4l2 support'
287)
288
289option('elua',
290 type : 'boolean',
291 value : true,
292 description : 'Flag for handling elua support in efl'
293)
294
295option('wl-deprecated',
296 type : 'boolean',
297 value : true,
298 description : 'Flag for handling deprecated wayland support in efl'
299)
300
301option('drm-deprecated',
302 type : 'boolean',
303 value : true,
304 description : 'Flag for handling deprecated drm support in efl'
305)
306
307option('nls',
308 type: 'boolean',
309 value: true,
310 description: 'enable localization: (default=true)'
311)
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 @@
1if get_option('nls')
2 i18n = import('i18n')
3 i18n.gettext('efl',
4 args: [
5 '--keyword=_',
6 '--keyword=d_:1',
7 '--keyword=P_:1,2',
8 '--keyword=dP_:1,2',
9 '--keyword=N_',
10 '--keyword=NP_:1,2',
11 '--from-code=UTF-8',
12 '--foreign-user'
13 ])
14 config_h.set('HAVE_GETTEXT', '1')
15 config_h.set('ENABLE_NLS', '1')
16 intl = cc.find_library('intl', required : false)
17 if cc.has_header('libintl.h', dependencies : intl) == false
18 error('libintl.h not found')
19 endif
20else
21 intl = declare_dependency()
22endif
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 @@
1#!/bin/bash
2
3BUILD_DIR=`mktemp -d`
4INSTALL_DIR=`mktemp -d`
5
6meson $@ --prefix ${INSTALL_DIR} ${BUILD_DIR}
7
8ninja -C ${BUILD_DIR} all
9ninja -C ${BUILD_DIR} install
10#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 @@
1options = {
2 {"-Dopengl=", "full", "none", "es-egl"},
3 {"--buildtype ", "plain", "debug", "release"},
4 {"-Devas-modules ", "shared", "static"},
5}
6
7concated_options = {}
8
9for i,v in pairs(options) do
10 tmp_options = {}
11
12 option_name = v[1]
13
14 for i=2, #v do
15 table.insert(tmp_options, option_name..v[i])
16 end
17
18 table.insert(concated_options, tmp_options)
19end
20
21function permutate(values)
22 local permutater = {table.unpack(values[1])}
23
24 if #values == 1 then
25 return {table.unpack(values[1])}
26 else
27 local result = {}
28 table.remove(values, 1)
29 local list_to_complete = permutate(values)
30
31 for k,v in pairs(list_to_complete) do
32 for k_perm,v_perm in pairs(permutater) do
33 table.insert(result, v_perm.." "..v)
34 end
35 end
36 return result
37 end
38end
39
40all_options = permutate(concated_options)
41
42print("GOING TO BUILD ALOT OF EFL")
43
44for k,v in pairs(all_options) do
45 cmd = "sh ./scripts/check_options.sh "..v.." "..arg[1]
46 exitcode = os.execute(cmd)
47 if exitcode ~= true then
48 print("command "..cmd.." failed. ")
49 print(exitcode)
50 os.exit(-1)
51 end
52end
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 @@
1eina_bench_src = files(
2'eina_bench.c',
3'eina_bench_sort.c',
4'eina_bench_hash.c',
5'eina_bench_crc_hash.c',
6'eina_bench_stringshare.c',
7'eina_bench_convert.c',
8'eina_bench_mempool.c',
9'eina_bench_stringshare_e17.c',
10'eina_bench_array.c',
11'eina_bench_rectangle_pool.c',
12'ecore_list.c',
13'ecore_strings.c',
14'ecore_hash.c',
15'ecore_sheap.c',
16'evas_hash.c',
17'evas_list.c',
18'evas_mempool.c',
19'evas_object_list.c',
20'evas_stringshare.c',
21'eina_bench_quad.c',
22'eina_bench.h',
23'Ecore_Data.h',
24'Evas_Data.h',
25'evas_mempool.h')
26
27city = shared_library('city',
28 sources : ['city.cc','city.h'],
29)
30
31eina_bench = executable('eina_bench',
32 sources : eina_bench_src,
33 dependencies : eina,
34 c_args : ['-fPIC','-DCITYHASH_BENCH', '-DEINA_ENABLE_BENCH_E17'],
35 include_directories : config_dir,
36 link_with : city,
37)
38
39benchmark('eina_bench', eina_bench,
40 timeout : 20*60
41) \ 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 @@
1eo_benchmark_src = [
2 'class_simple.c',
3 'class_simple.h',
4 'eo_bench.c',
5 'eo_bench.h',
6 'eo_bench_callbacks.c',
7 'eo_bench_eo_do.c',
8 'eo_bench_eo_add.c'
9]
10
11eo_bench = executable('eo_bench',
12 eo_benchmark_src,
13 dependencies: [eo, eina],
14)
15
16benchmark('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 @@
1executable('bq_mgr',
2 ['bq_mgr_protocol.c', 'bq_mgr.c'],
3 dependencies: [ecore, ecore_buffer, ecore_buffer_deps],
4 install : true
5)
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 @@
1executable('efl_net_proxy_helper',
2 'efl_net_proxy_helper.c',
3 dependencies : [ecore_con],
4 install : true,
5 install_dir : join_paths(dir_lib, 'ecore_con', 'utils', version_name)
6)
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 @@
1executable('ecore_evas_convert',
2 'ecore_evas_convert.c',
3 dependencies : [eina, ecore, evas, ecore_evas],
4 install : true
5)
6
7executable('eetpack',
8 'eetpack.c',
9 dependencies : [eina, eet, evas, ecore_evas],
10 install : true
11)
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 @@
1epp_src = [
2 'cpplib.h',
3 'cpphash.h',
4 'cppalloc.c',
5 'cpperror.c',
6 'cppexp.c',
7 'cpphash.c',
8 'cpplib.c',
9 'cppmain.c'
10]
11
12epp = executable('epp',
13 epp_src,
14 dependencies: eolian,
15 install: true,
16 install_dir : join_paths(dir_lib, 'edje', 'utils', version_name),
17 c_args : [
18 package_c_args,
19 '-DHAVE_CONFIG_H',
20 '-DHAVE_STRERROR',
21 '-DFATAL_EXIT_CODE=1',
22 '-DSUCCESS_EXIT_CODE=0',
23 '-DGCC_INCLUDE_DIR="/usr/include"',
24 '-DGPLUSPLUS_INCLUDE_DIR="/usr/include"',
25 '-DTOOL_INCLUDE_DIR="/usr/bin"',
26 '-DHOST_BITS_PER_LONG=32',
27 '-DBITS_PER_UNIT=8',
28 '-DHOST_BITS_PER_INT=32',
29 '-DBITS_PER_WORD=16',
30 '-DTARGET_BELL=7',
31 '-DTARGET_BS=8',
32 '-DTARGET_FF=12',
33 '-DTARGET_NEWLINE=10',
34 '-DTARGET_CR=13',
35 '-DTARGET_TAB=9',
36 '-DTARGET_VT=11'
37 ],
38)
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 @@
1subdir('epp')
2
3edje_bin_deps = [
4 eina, eo, efl, m,
5 luajit, eet, evas,
6 ecore_file, ecore_input,
7 ecore_imf, ecore_imf_evas,
8 embryo, efreet, eio,
9 edje, ecore_evas
10]
11
12edje_cc_src = [
13 'edje_multisense_convert.h',
14 'edje_cc.h',
15 'edje_cc.c',
16 'edje_cc_out.c',
17 'edje_cc_parse.c',
18 'edje_cc_mem.c',
19 'edje_cc_handlers.c',
20 'edje_cc_sources.c',
21 'edje_cc_script.c',
22 'edje_multisense_convert.c'
23]
24
25edje_cc = executable('edje_cc',
26 edje_cc_src,
27 dependencies: [edje_bin_deps, eet, ecore_evas, ecore_file],
28 install: true,
29 c_args : package_c_args,
30 link_args : bin_linker_args
31)
32
33edje_decc_src = [
34 'edje_decc.c',
35 'edje_decc.h',
36 'edje_cc_mem.c',
37 'edje_cc_sources.c',
38]
39
40edje_decc = executable('edje_decc',
41 edje_decc_src,
42 dependencies: [edje_bin_deps, eet, ecore_file, ecore_evas],
43 install: true,
44 c_args : package_c_args,
45)
46
47edje_player = executable('edje_player',
48 'edje_player.c',
49 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
50 install: true,
51 c_args : package_c_args,
52)
53
54edje_inspector = executable('edje_inspector',
55 'edje_inspector.c',
56 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
57 install: true,
58 c_args : package_c_args,
59)
60
61edje_external_inspector = executable('edje_external_inspector',
62 'edje_external_inspector.c',
63 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
64 install: true,
65 c_args : package_c_args,
66)
67
68edje_codegen = executable('edje_codegen',
69 'edje_codegen.c',
70 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
71 install: true,
72 c_args : package_c_args,
73)
74
75edje_pick = executable('edje_pick',
76 'edje_pick.c',
77 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
78 install: true,
79 c_args : package_c_args,
80)
81
82edje_watch = executable('edje_watch',
83 'edje_watch.c',
84 dependencies: [edje_bin_deps, eet, ecore, eio, ecore_evas],
85 install: true,
86 c_args : package_c_args,
87)
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 @@
1eet_bin = executable('eet',
2 'eet_main.c',
3 dependencies: [eet],
4 install : true
5)
6
7install_data(['diffeet','vieet'],
8 install_mode: 'rwxr--r--',
9 install_dir : dir_bin
10)
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 @@
1eeze_bins = ['disk_ls', 'mount', 'scanner', 'scanner_monitor', 'umount']
2
3foreach eeze_bin : eeze_bins
4 src_file = join_paths('eeze_'+eeze_bin, 'eeze_'+eeze_bin+'.c')
5 tmp = executable('eeze_'+eeze_bin, src_file,
6 dependencies: [ecore, eeze, ecore_con, ecore_file, eet],
7 install: true,
8 )
9 set_variable('eeze_'+eeze_bin, tmp)
10endforeach
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 @@
1executable('efl_debug',
2 'efl_debug.c',
3 dependencies: [eina, ecore],
4 install: true,
5)
6executable('efl_debugd',
7 'efl_debugd.c',
8 dependencies: [eina, ecore, ecore_con],
9 install: true,
10)
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 @@
1executable('efl_wl_test',
2 'efl_wl_test.c',
3 include_directories : config_dir,
4 dependencies: [efl_wl, elementary]
5)
6
7executable('efl_wl_test_stack',
8 'efl_wl_test_stack.c',
9 include_directories : config_dir,
10 dependencies: [efl_wl, elementary]
11)
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 @@
1efreetd_src = [
2 'efreetd.c',
3 'efreetd.h',
4 'efreetd_ipc.h',
5 'efreetd_ipc.c',
6 'efreetd_cache.h',
7 'efreetd_cache.c'
8]
9
10config_h.set('STRICT_SPEC', '1')
11
12efreetd = executable('efreetd',
13 efreetd_src,
14 dependencies: [efreet, ecore, ecore_ipc, ecore_file, eio],
15 install: true,
16 c_args : package_c_args,
17)
18
19efreet_desktop_cache_create = executable('efreet_desktop_cache_create',
20 'efreet_desktop_cache_create.c',
21 dependencies: [efreet, ecore, eet, ecore_file],
22 install: true,
23 install_dir : join_paths(dir_lib, 'efreet', version_name),
24 c_args : package_c_args,
25)
26
27efreet_icon_cache_create = executable('efreet_icon_cache_create',
28 'efreet_icon_cache_create.c',
29 dependencies: [efreet, ecore, eet, ecore_file],
30 install: true,
31 install_dir : join_paths(dir_lib, 'efreet', version_name),
32 c_args : package_c_args,
33)
34
35efreet_mime_cache_create = executable('efreet_mime_cache_create',
36 'efreet_mime_cache_create.c',
37 dependencies: [efreet, ecore, eet, ecore_file],
38 install: true,
39 install_dir : join_paths(dir_lib, 'efreet', version_name),
40 c_args : package_c_args,
41)
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 @@
1executable('eina_btlog',
2 'eina_btlog.c',
3 dependencies: eina,
4 install: true,
5)
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 @@
1executable('eina_modinfo',
2 'eina_modinfo.c',
3 dependencies: eina,
4 install: true,
5)
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 @@
1subdir('eina_btlog')
2subdir('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 @@
1eldbus_codegen_src = [
2 'codegen.h',
3 'utils.c',
4 'parser.c',
5 'dbus.c',
6 'source_client.c',
7 'client.c'
8]
9executable('eldbus-codegen',
10 eldbus_codegen_src,
11 dependencies: [eldbus, ecore],
12 install: true,
13)
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 @@
1elementary_test_src = [
2 'test.c',
3 'test_explode.c',
4 'test_explode.h',
5 'test_3d.c',
6 'test_access.c',
7 'test_actionslider.c',
8 'test_anim.c',
9 'test_bg.c',
10 'test_box.c',
11 'test_bubble.c',
12 'test_button.c',
13 'test_ui_button.c',
14 'test_calendar.c',
15 'test_check.c',
16 'test_clock.c',
17 'test_cnp.c',
18 'test_code.c',
19 'test_colorselector.c',
20 'test_colorclass.c',
21 'test_combobox.c',
22 'test_config.c',
23 'test_conform.c',
24 'test_conform_indicator.c',
25 'test_ctxpopup.c',
26 'test_cursor.c',
27 'test_datetime.c',
28 'test_dayselector.c',
29 'test_disable.c',
30 'test_diskselector.c',
31 'test_dnd.c',
32 'test_efl_anim_alpha.c',
33 'test_efl_anim_rotate.c',
34 'test_efl_anim_scale.c',
35 'test_efl_anim_translate.c',
36 'test_efl_anim_group_parallel.c',
37 'test_efl_anim_group_sequential.c',
38 'test_efl_anim_event_anim.c',
39 'test_efl_anim_pause.c',
40 'test_efl_anim_repeat.c',
41 'test_efl_anim_start_delay.c',
42 'test_efl_anim_interpolator.c',
43 'test_eio.c',
44 'test_entry.c',
45 'test_entry_anchor.c',
46 'test_entry_anchor2.c',
47 'test_events.c',
48 'test_evas_mask.c',
49 'test_evas_map.c',
50 'test_efl_gfx_map.c',
51 'test_evas_snapshot.c',
52 'test_external.c',
53 'test_fileselector_button.c',
54 'test_fileselector.c',
55 'test_fileselector_entry.c',
56 'test_flip.c',
57 'test_flip_page.c',
58 'test_flip_page_eo.c',
59 'test_flipselector.c',
60 'test_floating.c',
61 'test_focus.c',
62 'test_focus_custom_chain.c',
63 'test_focus_policy.c',
64 'test_focus_style.c',
65 'test_gengrid.c',
66 'test_genlist.c',
67 'test_gesture_layer.c',
68 'test_gesture_layer2.c',
69 'test_gesture_layer3.c',
70 'test_gfx_filters.c',
71 'test_glview_simple.c',
72 'test_glview.c',
73 'test_glview_manygears.c',
74 'test_grid.c',
75 'test_ui_table_static.c',
76 'test_ui_stack.c',
77 'test_hover.c',
78 'test_hoversel.c',
79 'test_icon.c',
80 'test_icon_desktops.c',
81 'test_icon_animated.c',
82 'test_image.c',
83 'test_index.c',
84 'test_inwin.c',
85 'test_label.c',
86 'test_launcher.c',
87 'test_layout.c',
88 'test_list.c',
89 'test_map.c',
90 'test_main_menu.c',
91 'test_menu.c',
92 'test_multi.c',
93 'test_multibuttonentry.c',
94 'test_naviframe.c',
95 'test_naviframe_complex.c',
96 'test_notify.c',
97 'test_nstate.c',
98 'test_panel.c',
99 'test_panes.c',
100 'test_ui_panes.c',
101 'test_part_bg.c',
102 'test_part_shadow.c',
103 'test_photo.c',
104 'test_photocam.c',
105 'test_popup.c',
106 'test_prefs.c',
107 'test_progressbar.c',
108 'test_ui_progressbar.c',
109 'test_radio.c',
110 'test_scaling.c',
111 'test_scroller.c',
112 'test_ui_scroller.c',
113 'test_segment_control.c',
114 'test_separator.c',
115 'test_slider.c',
116 'test_ui_slider.c',
117 'test_ui_slider_interval.c',
118 'test_ui_spin.c',
119 'test_ui_spin_button.c',
120 'test_ui_datepicker.c',
121 'test_ui_timepicker.c',
122 'test_ui_tags.c',
123 'test_slideshow.c',
124 'test_spinner.c',
125 'test_store.c',
126 'test_sys_notify.c',
127 'test_systray.c',
128 'test_table.c',
129 'test_thumb.c',
130 'test_toolbar.c',
131 'test_tooltip.c',
132 'test_transit.c',
133 'test_transit_bezier.c',
134 'test_ui_box.c',
135 'test_ui_clock.c',
136 'test_ui_table.c',
137 'test_ui_popup.c',
138 'test_ui_textpath.c',
139 'test_video.c',
140 'test_weather.c',
141 'test_web.c',
142 'test_win_inline.c',
143 'test_win_keygrab.c',
144 'test_win_socket.c',
145 'test_win_plug.c',
146 'test_win_state.c',
147 'test_win_wm_rotation.c',
148 'test_win_dialog.c',
149 'test_win_modal.c',
150 'test_efl_ui_text.c',
151 'test_win_stack.c',
152 'test_win_indicator.c',
153 'test_gesture_framework.c',
154 'test_ui_tab_pager.c',
155 'test.h'
156]
157
158elementary_test = executable('elementary_test',
159 elementary_test_src,
160 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
161 install: true,
162 c_args : package_c_args + [
163 '-Delementary_test_BIN_DIR="'+dir_bin+'"',
164 '-Delementary_test_LIB_DIR="'+dir_lib+'"',
165 '-Delementary_test_DATA_DIR="'+join_paths(dir_data,'elementary')+'"'
166 ]
167)
168
169elementary_config_src = [
170 'config.c'
171]
172
173elementary_config = executable('elementary_config',
174 elementary_config_src,
175 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
176 install: true,
177 c_args : package_c_args,
178)
179
180elementary_quicklaunch_src = [
181 'quicklaunch.c'
182]
183
184elementary_quicklaunch = executable('elementary_quicklaunch',
185 elementary_quicklaunch_src,
186 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
187 install: true,
188 c_args : package_c_args,
189)
190
191elementary_codegen_src = [
192 'elementary_codegen.c'
193]
194
195elementary_codegen = executable('elementary_codegen',
196 elementary_codegen_src,
197 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
198 install: true,
199 c_args : package_c_args,
200)
201
202elm_prefs_cc_src = [
203 'elm_prefs_cc.h',
204 'elm_prefs_cc.c',
205 'elm_prefs_cc_mem.c',
206 'elm_prefs_cc_out.c',
207 'elm_prefs_cc_parse.c',
208 'elm_prefs_cc_handlers.c'
209
210]
211
212elm_prefs_cc = executable('elm_prefs_cc',
213 elm_prefs_cc_src,
214 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
215 install: true,
216 c_args : package_c_args,
217)
218
219elementary_run_src = [
220 'run.c'
221]
222
223elementary_run = executable('elementary_run',
224 elementary_run_src,
225 dependencies: [elementary] + elementary_deps + elementary_pub_deps,
226 install: true,
227 c_args : package_c_args,
228)
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 @@
1executable('elua',
2 'main.c',
3 dependencies: [eina, ecore, elua, intl],
4 install: true,
5)
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 @@
1embryo_cc_src = [
2 'embryo_cc_amx.h',
3 'embryo_cc_osdefs.h',
4 'embryo_cc_sc.h',
5 'embryo_cc_sc1.c',
6 'embryo_cc_sc2.c',
7 'embryo_cc_sc3.c',
8 'embryo_cc_sc4.c',
9 'embryo_cc_sc5.c',
10 'embryo_cc_sc6.c',
11 'embryo_cc_sc7.c',
12 'embryo_cc_scexpand.c',
13 'embryo_cc_sclist.c',
14 'embryo_cc_scvars.c',
15 'embryo_cc_prefix.c',
16 'embryo_cc_prefix.h'
17]
18
19embryo_cc = executable('embryo_cc',
20 embryo_cc_src,
21 dependencies: [embryo, m, buildsystem],
22 install: true,
23 c_args : package_c_args,
24)
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 @@
1eolian_gen_src = [
2 'main.c',
3 'main.h',
4 'types.c',
5 'types.h',
6 'headers.c',
7 'headers.h',
8 'sources.c',
9 'sources.h',
10 'docs.c',
11 'docs.h'
12]
13
14eolian_gen = executable('eolian_gen',
15 eolian_gen_src,
16 dependencies: eolian,
17 install: true,
18 c_args : package_c_args,
19)
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 @@
1ethumb_bin = executable('ethumb',
2 'ethumb.c',
3 dependencies: [ecore, ethumb],
4 install: true,
5 c_args : package_c_args,
6)
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 @@
1ethumbd = executable('ethumbd',
2 'ethumbd.c',
3 install: true,
4 dependencies : [ecore, ethumb, ethumb_client, ecore, eldbus],
5 include_directories : config_dir,
6 c_args : package_c_args,
7)
8
9ethumbd_client = executable('ethumbd_client',
10 'ethumbd_client.c',
11 install: true,
12 dependencies : [ecore, ethumb, ethumb_client, ecore],
13 include_directories : config_dir,
14 c_args : package_c_args,
15)
16
17ethumbd_slave = executable('ethumbd_slave',
18 'ethumbd_slave.c',
19 install: true,
20 install_dir : join_paths(dir_lib, 'ethumb_client', 'utils', version_name),
21 dependencies : [ecore, ethumb, ethumb_client, ecore],
22 include_directories : config_dir,
23 c_args : package_c_args,
24)
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 @@
1install_subdir('eina',
2 install_dir : join_paths(dir_data, 'elua', 'modules')
3)
4
5install_data(files(['eo.lua', 'eolian.lua']),
6 install_dir : join_paths(dir_data, 'elua', 'modules')
7)
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 @@
1edje_external_elementary = [
2 'private.h',
3 'elm.c',
4 'elm_actionslider.c',
5 'elm_bg.c',
6 'elm_bubble.c',
7 'elm_button.c',
8 'elm_calendar.c',
9 'elm_check.c',
10 'elm_clock.c',
11 'elm_combobox.c',
12 'elm_entry.c',
13 'elm_fileselector.c',
14 'elm_fileselector_button.c',
15 'elm_fileselector_entry.c',
16 'elm_frame.c',
17 'elm_gengrid.c',
18 'elm_genlist.c',
19 'elm_hoversel.c',
20 'elm_icon.c',
21 'elm_index.c',
22 'elm_label.c',
23 'elm_list.c',
24 'elm_map.c',
25 'elm_multibuttonentry.c',
26 'elm_naviframe.c',
27 'elm_notify.c',
28 'elm_panes.c',
29 'elm_photocam.c',
30 'elm_progressbar.c',
31 'elm_radio.c',
32 'elm_scroller.c',
33 'elm_segment_control.c',
34 'elm_slider.c',
35 'elm_slideshow.c',
36 'elm_spinner.c',
37 'elm_thumb.c',
38 'elm_toolbar.c',
39 'elm_video.c',
40 'elm_web.c'
41]
42
43ecore_systemd_mod = shared_module('elementary',
44 edje_external_elementary,
45 dependencies: [edje, elementary, elementary_deps],
46 install: true,
47 install_dir: mod_install_dir,
48 c_args : elm_package_c_args,
49)
50module_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 @@
1ecore_systemd_mod = shared_module('emotion',
2 'emotion.c',
3 dependencies: [edje, emotion],
4 install: true,
5 install_dir: mod_install_dir,
6 c_args : emotion_package_c_args
7)
8module_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 @@
1edje_externals = ['emotion', 'elementary']
2
3foreach edje_external : edje_externals
4 #!?%$ยง#! custom nane for edje externals
5 if (edje_external == 'elementary')
6 mod_install_dir = join_paths(dir_lib, 'edje', 'modules', 'elm', version_name)
7 else
8 mod_install_dir = join_paths(dir_lib, 'edje', 'modules', edje_external, version_name)
9 endif
10 subdir(edje_external)
11endforeach
12
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 @@
1examples = [
2 'ecore_event_example_01',
3 'ecore_event_example_02',
4 'ecore_exe_example',
5 'ecore_exe_example_child',
6 'ecore_fd_handler_example',
7 'ecore_file_download_example',
8 'ecore_idler_example',
9 'ecore_job_example',
10 'ecore_pipe_gstreamer_example',
11 'ecore_pipe_simple_example',
12 'ecore_poller_example',
13 'ecore_thread_example',
14 'ecore_time_functions_example',
15 'ecore_timer_example',
16 'ecore_getopt_example'
17]
18
19gnutls = dependency('gnutls', required : false)
20if gnutls.found()
21examples += ['ecore_fd_handler_gnutls_example']
22endif
23
24foreach example : examples
25 executable(example, example + '.c', dependencies: [eina, ecore, gstreamer, ecore_file, gnutls])
26endforeach
27
28examples = [
29# 'ecore_audio_custom',
30# 'ecore_audio_playback',
31# 'ecore_audio_to_ogg',
32]
33
34foreach example : examples
35 executable(example, example + '.c', dependencies: [eina, ecore, ecore_audio])
36endforeach
37
38
39examples = [
40 'ecore_con_client_example',
41 'ecore_con_client_simple_example',
42 'ecore_con_lookup_example',
43 'ecore_con_server_example',
44 'ecore_con_server_http_example',
45 'ecore_con_server_simple_example',
46 'ecore_con_url_cookies_example',
47 'ecore_con_url_download_example',
48 'ecore_con_url_headers_example',
49 'ecore_client_bench',
50 'ecore_server_bench',
51]
52
53foreach example : examples
54 executable(example, example + '.c', dependencies: [eina, ecore, ecore_con])
55endforeach
56
57examples = [
58 'ecore_animator_example',
59 'ecore_evas_basics_example',
60 'ecore_evas_buffer_example_01',
61 'ecore_evas_buffer_example_02',
62 'ecore_evas_callbacks',
63 'ecore_evas_ews_example',
64 'ecore_evas_object_example',
65 'ecore_evas_window_sizes_example',
66]
67
68foreach example : examples
69 executable(example, example + '.c',
70 dependencies: [eina, ecore_evas],
71 c_args : [
72 '-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"']
73 )
74endforeach
75
76# '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 @@
1examples = [
2 'ecore_avahi_browse_example',
3 'ecore_avahi_example',
4]
5
6foreach example : examples
7 executable(example, example + '.c', dependencies: [ecore_avahi_deps, ecore_avahi])
8endforeach
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 @@
1edc_files = [
2 'animations.edc',
3 'animations2.edc',
4 'basic.edc',
5 'basic2.edc',
6 'bezier-transition-example.edc',
7 'box.edc',
8 'box_example.edc',
9 'color-class.edc',
10 'drag.edc',
11 'dynamic_multiseat.edc',
12 'edje-group.edc',
13 'edje-nested.edc',
14 'edje-threshold.edc',
15 'edje_example.edc',
16 'embryo_custom_state.edc',
17 'embryo_pong.edc',
18 'embryo_run_program.edc',
19 'embryo_set_state.edc',
20 'embryo_set_state_anim.edc',
21 'embryo_set_text.edc',
22 'embryo_timer.edc',
23 'embryo_tween_anim.edc',
24 'entry.edc',
25 'external_elm_anchorblock.edc',
26 'external_elm_button.edc',
27 'external_elm_check.edc',
28 'external_elm_panes.edc',
29 'external_emotion_elm.edc',
30 'focus.edc',
31 'lua_script.edc',
32 'messages_echo.edc',
33 'multiseat.edc',
34 'multiseat_custom_names.edc',
35 'multiseat_filter.edc',
36 'perspective.edc',
37 'signals-messages.edc',
38 'signalsBubble.edc',
39 'sigtest.edc',
40 'svg.edc',
41 'swallow.edc',
42 'table.edc',
43 'text.edc',
44 'textblock-hyphen.edc',
45 'toggle_using_filter.edc'
46]
47
48if (get_option('physics'))
49 edc_files += [
50 'physics_3d.edc',
51 'physics_actions.edc',
52 'physics_backcull.edc',
53 'physics_basic.edc',
54 'physics_complex.edc',
55 'physics_soft_bodies.edc'
56 ]
57endif
58
59themes = []
60
61foreach edc_file : edc_files
62 themes += custom_target('edje_cc_' + edc_file,
63 input : edc_file,
64 output : '@BASENAME@.edj',
65 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
66 '-id', meson.current_source_dir(),
67 '-fd', meson.current_source_dir(),
68 '-sd', meson.current_source_dir(),
69 '-vd', meson.current_source_dir(),
70 '-dd', meson.current_source_dir(),
71 '-md', meson.current_source_dir(),
72 '-td', meson.current_source_dir(),
73 '@INPUT@', '@OUTPUT@'],
74 depends : edje_cc, )
75endforeach
76
77codegen = custom_target('edje_cc_codegen_edc',
78 input : 'codegen.edc',
79 output : '@BASENAME@.edj',
80 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_cc.full_path(), '-beta',
81 '-id', meson.current_source_dir(),
82 '-fd', meson.current_source_dir(),
83 '-sd', meson.current_source_dir(),
84 '-vd', meson.current_source_dir(),
85 '-dd', meson.current_source_dir(),
86 '-md', meson.current_source_dir(),
87 '-td', meson.current_source_dir(),
88 '@INPUT@', '@OUTPUT@'],
89 depends : edje_cc, )
90
91themes += custom_target('edje_codegen_codegen.edj',
92 input : codegen,
93 output : ['@BASENAME@_example_generated.c', '@BASENAME@_example_generated.h'],
94 command : ['/usr/bin/env', 'EFL_RUN_IN_TREE=1', edje_codegen.full_path(),
95 '--prefix=codegen_example', '@INPUT@',
96 'example_group', '@OUTPUT0@', '@OUTPUT1@'],
97 depends : [edje_codegen, themes])
98
99edje_examples = [
100 'animations2',
101 'edje-animations',
102 'edje-basic',
103 'edje-basic2',
104 'edje-box',
105 'edje-box2',
106 'edje-codegen-example',
107 'edje-color-class',
108 'edje-drag',
109 'edje-dynamic-multiseat',
110 'edje-edit-part-box',
111 'edje-entry',
112 'edje-focus',
113 'edje-multiseat',
114 'edje-multiseat-custom-names',
115 'edje-multiseat-filter',
116 'edje-multisense',
117 'edje-perspective',
118 'edje-signals-messages',
119 'edje-swallow',
120 'edje-swallow2',
121 'edje-table',
122 'edje-text',
123 'edje-textblock-hyphenation',
124 'edje_example',
125 'signals2',
126 'sigtest',
127 'svg-test'
128]
129
130foreach edje_example : edje_examples
131 executable(edje_example,
132 [edje_example + '.c'] + themes,
133 dependencies: [edje, ecore_evas],
134 )
135endforeach
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 @@
1examples = [
2 'eet-basic',
3 'eet-file',
4 'eet-data-simple',
5 'eet-data-nested',
6 'eet-data-file_descriptor_01',
7 'eet-data-file_descriptor_02',
8 'eet-data-cipher_decipher'
9]
10
11foreach example : examples
12 executable(example, example + '.c', dependencies: eet)
13endforeach
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 @@
1examples = [
2'eina_accessor_01',
3'eina_array_01',
4'eina_array_02',
5'eina_error_01',
6'eina_file_01',
7'eina_file_02',
8'eina_hash_01',
9'eina_hash_02',
10'eina_hash_03',
11'eina_hash_04',
12'eina_hash_05',
13'eina_hash_06',
14'eina_hash_07',
15'eina_hash_08',
16'eina_iterator_01',
17'eina_list_01',
18'eina_list_02',
19'eina_list_03',
20'eina_list_04',
21'eina_log_01',
22'eina_log_02',
23'eina_log_03',
24'eina_inlist_01',
25'eina_inlist_02',
26'eina_inlist_03',
27'eina_str_01',
28'eina_strbuf_01',
29'eina_stringshare_01',
30'eina_tmpstr_01',
31#that examples is using ecore evas ... WTF
32#'eina_tiler_01',
33'eina_simple_xml_parser_01',
34'eina_value_01',
35'eina_value_02',
36'eina_value_03',
37'eina_inarray_01',
38'eina_inarray_02',
39'eina_inarray_03',
40'eina_magic_01',
41'eina_xattr_01',
42'eina_xattr_02'
43]
44
45foreach example : examples
46 executable(example, example + '.c', dependencies: eina)
47endforeach
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 @@
1files = [
2 'efl_io_manager_ls',
3 'efl_io_manager_open',
4 'efl_io_manager_open_multi',
5 'eio_file_copy',
6 'eio_file_ls',
7 'eio_sentry'
8]
9
10foreach file : files
11 executable(file,
12 file + '.c',
13 dependencies: [ecore, eio],
14 )
15endforeach \ 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 @@
1examples = [
2 'connman-list-services',
3 'ofono-dial',
4 'banshee',
5 'complex-types',
6 'complex-types-server',
7 'server',
8 'client',
9 'simple-signal-emit',
10 'complex-types-client-eina-value',
11 'connect-address',
12 'dbusmodel',
13]
14
15foreach example : examples
16 executable(example, example + '.c', dependencies: [eldbus, ecore])
17endforeach
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 @@
1examples = [
2 'emile_base64'
3]
4
5foreach example : examples
6 executable(example, example + '.c', dependencies: emile)
7endforeach
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 @@
1files = [
2 'emotion_basic_example',
3 'emotion_border_example',
4 'emotion_generic_example',
5 'emotion_generic_subtitle_example',
6 'emotion_signals_example',
7]
8
9foreach file : files
10 executable(file,
11 file + '.c',
12 dependencies: [emotion, evas, ecore_evas, ecore],
13 )
14endforeach \ 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 @@
1files = [
2 'ethumb_dbus'
3]
4
5foreach file : files
6 executable(file,
7 file + '.c',
8 dependencies: [ethumb, ethumb_client, ecore, eina],
9 )
10endforeach \ 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 @@
1examples = [
2 'evas-3d-aabb',
3 'evas-3d-blending',
4 'evas-3d-colorpick',
5 'evas-3d-cube2',
6 'evas-3d-cube',
7 'evas-3d-cube-rotate',
8 'evas-3d-eet',
9 'evas-3d-fog',
10 'evas-3d-frustum',
11 'evas-3d-hull',
12 'evas-3d-md2',
13 'evas-3d-mmap-set',
14 'evas-3d-obj',
15 'evas-3d-parallax-occlusion',
16 'evas-3d-pick',
17 'evas-3d-ply',
18 'evas-3d-proxy',
19 'evas-3d-shadows',
20 'evas-3d-static-lod',
21 #'evas-aspect-hints',
22 'evas-box',
23 'evas-buffer-simple',
24 'evas-event-filter',
25 'evas-events',
26 'evas-gl',
27 'evas-hints',
28 'evas-images2',
29 'evas-images3',
30 'evas-images4',
31 'evas-images5',
32 'evas-images',
33 'evas-init-shutdown',
34 'evas-map-aa',
35 'evas-map-aa-eo',
36 'evas-map-utils',
37 'evas-map-utils-eo',
38 'evas-multiseat-events',
39 'evas-multi-touch',
40 'evas-object-manipulation',
41 'evas-object-manipulation-eo',
42 'evas-smart-interface',
43 'evas-smart-object',
44 'evas-stacking',
45 'evas-table',
46 'evas-textblock-obstacles',
47 'evas-text',
48 'evas-transparent',
49 'evas-vg-batman',
50 'evas-vg-simple',
51]
52
53foreach example : examples
54 executable(example, example + '.c',
55 dependencies: [eina, ecore_evas, ecore_file, m],
56 c_args : ['-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"'])
57endforeach
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 @@
1generic_loaders = ['vlc']
2
3foreach loader : generic_loaders
4 if get_option('emotion-generic-loaders-disabler').contains(loader) == false
5 subdir(loader)
6 endif
7endforeach
8
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 @@
1vlc = dependency('libvlc')
2
3executable('vlc',
4 'emotion_generic_vlc.c',
5 dependencies: [emotion_generic, eina, ecore, rt, vlc],
6 install: true,
7 install_dir: join_paths(dir_lib, 'emotion', 'generic_players', version_name)
8)
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 @@
1generic_src = files([
2 'shmfile.c',
3 'shmfile.h',
4 'timeout.c',
5 'timeout.h',
6])
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 @@
1
2# gstreamer 0.1 support
3#generic_deps = [dependency('gstreamer')]
4#generic_src = files([
5# 'main_0_10.c'
6#])
7
8
9generic_src = files([
10 'main.c'
11])
12
13generic_deps = [dependency('gstreamer-1.0')]
14generic_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 @@
1generic_loaders = ['gst', 'pdf',
2'ps',
3'raw',
4'svg',
5'xcf']
6
7generic_src = []
8generic_deps = []
9
10subdir('common')
11
12common = static_library('evas_loader_common',
13 generic_src,
14 include_directories : config_dir,
15 dependencies: [generic_deps, rt],
16)
17
18foreach loader : generic_loaders
19 generic_src = []
20 generic_deps = []
21 generic_support = []
22
23 if get_option('evas-loaders-disabler').contains(loader) == false
24 subdir(loader)
25
26 tmp = shared_module('image_loader.'+loader,
27 generic_src,
28 include_directories : config_dir + [include_directories('common')],
29 link_with : common,
30 dependencies: [eina, generic_deps],
31 name_prefix : 'evas_',
32 install_dir : join_paths(dir_lib, 'evas', 'utils'),
33 install : true,
34 )
35
36 set_variable(loader, tmp)
37 mod = join_paths(dir_lib, 'evas', 'utils', 'evas_image_loader.'+loader+'.'+sys_mod_extension)
38 evas_loader_map += [[mod, generic_support]]
39 else
40 message('Image loader '+loader+' disabled')
41 endif
42endforeach
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 @@
1generic_src = files([
2 'main.cpp'
3])
4
5generic_deps = [dependency('poppler-cpp')]
6generic_support = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
7
8install_data('evas_generic_pdf_loader.libreoffice',
9 install_dir : join_paths(dir_lib, 'evas', 'utils')
10)
11
12generic_pdf_loader_types = ['ppt','pptx','odp','xls','xlsx','ods','doc','docx','odt','rtf']
13
14meson.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 @@
1generic_src = files([
2 'main.c'
3])
4
5generic_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 @@
1generic_src = files([
2 'main.c'
3])
4
5generic_deps = [dependency('libraw')]
6generic_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 @@
1generic_src = files([
2 'main.c'
3])
4
5rsvg = dependency('librsvg-2.0')
6
7if rsvg.version() >= '2.36.0'
8 config_h.set('HAVE_SVG_2_36', '1')
9endif
10
11generic_deps = [rsvg]
12generic_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 @@
1generic_src = files([
2 'common.h',
3 'main.c',
4 'pixelfuncs.c'
5])
6
7generic_deps = [dependency('zlib')]
8generic_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 @@
1ecore_deps = [intl]
2ecore_pub_deps = [eina, eo, efl]
3
4pub_legacy_eo_files = [
5 'ecore_exe.eo',
6 'ecore_event_message.eo',
7 'ecore_event_message_handler.eo',
8 'efl_loop_timer.eo'
9]
10
11pub_eo_file_target = []
12foreach eo_file : pub_legacy_eo_files
13 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
14 input : eo_file,
15 output : [eo_file + '.h', eo_file + '.legacy.h',],
16 install : true,
17 install_dir : dir_package_include,
18 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
19 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
20 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
21 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
22 '-gchl', '@INPUT@'])
23
24endforeach
25
26pub_eo_files = [
27 'efl_app.eo',
28 'efl_loop.eo',
29 'efl_loop_consumer.eo',
30 'efl_loop_fd.eo',
31 'efl_loop_handler.eo',
32 'efl_loop_message.eo',
33 'efl_loop_message_handler.eo',
34 'efl_exe.eo',
35 'efl_thread.eo',
36 'efl_threadio.eo',
37 'efl_appthread.eo',
38 'efl_task.eo',
39 'efl_io_closer_fd.eo',
40 'efl_io_positioner_fd.eo',
41 'efl_io_reader_fd.eo',
42 'efl_io_sizer_fd.eo',
43 'efl_io_writer_fd.eo',
44 'efl_io_stdin.eo',
45 'efl_io_stdout.eo',
46 'efl_io_stderr.eo',
47 'efl_io_file.eo',
48 'efl_io_copier.eo',
49 'efl_io_buffered_stream.eo',
50 'efl_interpolator.eo',
51 'efl_interpolator_linear.eo',
52 'efl_interpolator_accelerate.eo',
53 'efl_interpolator_decelerate.eo',
54 'efl_interpolator_sinusoidal.eo',
55 'efl_interpolator_divisor.eo',
56 'efl_interpolator_bounce.eo',
57 'efl_interpolator_spring.eo',
58 'efl_interpolator_cubic_bezier.eo',
59 'efl_loop_message_future_handler.eo',
60 'efl_loop_message_future.eo',
61 'efl_model_item.eo',
62 'efl_model_container.eo',
63 'efl_model_container_item.eo',
64 'efl_model_composite_boolean.eo',
65 'efl_model_composite_boolean_children.eo',
66 'efl_model_composite_selection.eo',
67 'efl_model_composite_selection_children.eo',
68 'efl_model_composite.eo'
69]
70
71foreach eo_file : pub_eo_files
72 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
73 input : eo_file,
74 output : [eo_file + '.h'],
75 install : true,
76 install_dir : dir_package_include,
77 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
78 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
79 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
80 '-gch', '@INPUT@'])
81endforeach
82
83# special handling, because this is already eo API and legacy API
84pub_eo_files += ['efl_loop_timer.eo']
85
86pub_eo_types_files = []
87
88eolian_include_directories += ['-I', meson.current_source_dir()]
89
90ecore_header_src = [
91 'Ecore.h',
92 'Ecore_Common.h',
93 'Ecore_Legacy.h',
94 'Ecore_Eo.h',
95 'Efl_Core.h',
96 'efl_general.h',
97 'Ecore_Getopt.h'
98]
99
100ecore_src = [
101 'efl_app.c',
102 'ecore.c',
103 'ecore_alloc.c',
104 'ecore_anim.c',
105 'ecore_app.c',
106 'ecore_events.c',
107 'ecore_getopt.c',
108 'ecore_glib.c',
109 'ecore_idle_enterer.c',
110 'ecore_idle_exiter.c',
111 'ecore_idler.c',
112 'ecore_job.c',
113 'ecore_main.c',
114 'ecore_event_message.c',
115 'ecore_event_message_handler.c',
116 'efl_loop.c',
117 'efl_loop_consumer.c',
118 'efl_loop_fd.c',
119 'efl_loop_handler.c',
120 'efl_loop_message.c',
121 'efl_loop_message_future.c',
122 'efl_loop_message_handler.c',
123 'efl_loop_message_future_handler.c',
124 'efl_task.c',
125 'efl_io_closer_fd.c',
126 'efl_io_positioner_fd.c',
127 'efl_io_reader_fd.c',
128 'efl_io_sizer_fd.c',
129 'efl_io_writer_fd.c',
130 'efl_io_stdin.c',
131 'efl_io_stdout.c',
132 'efl_io_stderr.c',
133 'efl_io_file.c',
134 'efl_io_copier.c',
135 'efl_io_buffered_stream.c',
136 'efl_model_item.c',
137 'efl_model_container.c',
138 'efl_model_container_item.c',
139 'efl_model_container_private.h',
140 'efl_model_composite.c',
141 'efl_model_composite_boolean.c',
142 'efl_model_composite_selection.c',
143 'efl_model_accessor_view.c',
144 'efl_model_accessor_view_private.h',
145 'efl_interpolator.c',
146 'efl_interpolator_linear.c',
147 'efl_interpolator_accelerate.c',
148 'efl_interpolator_decelerate.c',
149 'efl_interpolator_sinusoidal.c',
150 'efl_interpolator_divisor.c',
151 'efl_interpolator_bounce.c',
152 'efl_interpolator_spring.c',
153 'efl_interpolator_cubic_bezier.c',
154 'ecore_main_timechanges.c',
155 'ecore_pipe.c',
156 'ecore_poller.c',
157 'ecore_time.c',
158 'ecore_timer.c',
159 'ecore_thread.c',
160 'ecore_throttle.c',
161 'ecore_exe.c',
162 'ecore_exe_private.h',
163 'ecore_private.h',
164 'ecore_internal.h',
165 'ecore_main_common.h'
166]
167
168if target_machine.system() == 'windows'
169 #nothing for now ... needs testing
170else
171 ecore_src += ['ecore_signal.c', 'ecore_exe_posix.c']
172endif
173
174if get_option('glib') == true
175 ecore_deps += dependency('glib-2.0')
176 ecore_deps += dependency('gthread-2.0')
177 config_h.set('GLIB_INTEGRATION_ALWAYS', '1')
178 config_h.set('HAVE_GLIB', '1')
179endif
180
181if get_option('g-mainloop') == true
182 config_h.set('USE_G_MAIN_LOOP', '1')
183endif
184
185if get_option('gstreamer') == true
186 gstreamer = dependency('gstreamer-1.0')
187 ecore_deps += gstreamer
188endif
189
190if get_option('systemd') == true
191 ecore_deps += systemd
192endif
193
194ecore_lib = library('ecore',
195 ecore_src, pub_eo_file_target,
196 dependencies: ecore_pub_deps + [m, buildsystem, ecore_deps],
197 include_directories : config_dir + [include_directories(join_paths('..','..'))],
198 install: true,
199 c_args : package_c_args,
200 version : meson.project_version()
201)
202
203ecore = declare_dependency(
204 include_directories: [include_directories('.')],
205 link_with: ecore_lib,
206 sources : pub_eo_file_target + priv_eo_file_target,
207 dependencies: ecore_pub_deps,
208)
209
210eolian_ecore_dir = join_paths(eolian_include_dir, package_version_name)
211
212install_data(pub_eo_files + pub_eo_types_files,
213 install_dir: eolian_ecore_dir
214)
215
216install_headers(ecore_header_src,
217 install_dir : dir_package_include,
218)
219
220#TODO:
221# HAVE_TIZEN_CONFIGUREATION_MANAGER
222# 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 @@
1ecore_audio_deps = [ecore]
2ecore_audio_pub_deps = [eina, eo]
3
4pub_eo_files = [
5 'ecore_audio.eo',
6 'ecore_audio_in.eo',
7 'ecore_audio_out.eo',
8 'ecore_audio_in_sndfile.eo',
9 'ecore_audio_out_sndfile.eo',
10 'ecore_audio_out_pulse.eo',
11 'ecore_audio_in_tone.eo',
12 'ecore_audio_out_wasapi.eo'
13]
14
15foreach eo_file : pub_eo_files
16 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
17 input : eo_file,
18 output : [eo_file + '.h'],
19 install : true,
20 install_dir : dir_package_include,
21 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
22 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
23 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
24 '-gch', '@INPUT@'])
25endforeach
26
27pub_eo_types_files = []
28
29ecore_audio_header_src = [
30 'Ecore_Audio.h',
31 'ecore_audio_obj.h',
32 'ecore_audio_obj_in.h',
33 'ecore_audio_obj_out.h',
34 'ecore_audio_obj_in_tone.h',
35 'ecore_audio_protected.h',
36 'ecore_audio_obj_out_pulse.h',
37 'ecore_audio_obj_in_sndfile.h',
38 'ecore_audio_obj_out_sndfile.h',
39 'ecore_audio_obj_out_wasapi.h'
40]
41
42ecore_audio_src = [
43 'ecore_audio.c',
44 'ecore_audio_obj.c',
45 'ecore_audio_obj_in.c',
46 'ecore_audio_obj_out.c',
47 'ecore_audio_obj_in_tone.c',
48 'ecore_audio_private.h'
49]
50
51ecore_audio_src += [
52 'ecore_audio_obj_in_sndfile.c',
53 'ecore_audio_obj_out_sndfile.c',
54 'ecore_audio_sndfile_vio.c'
55]
56
57ecore_audio_deps += dependency('sndfile')
58config_h.set('HAVE_SNDFILE', '1')
59
60if get_option('pulseaudio')
61 ecore_audio_deps += dependency('libpulse')
62
63 ecore_audio_src += [
64 'ecore_audio_pulse_ml.c',
65 'ecore_audio_obj_out_pulse.c'
66 ]
67
68 config_h.set('HAVE_PULSE', '1')
69endif
70
71ecore_audio_lib = library('ecore_audio',
72 ecore_audio_src, pub_eo_file_target,
73 dependencies: ecore_audio_pub_deps + [m] + ecore_audio_deps,
74 include_directories : config_dir,
75 install: true,
76 version : meson.project_version()
77)
78
79ecore_audio = declare_dependency(
80 include_directories: [include_directories('.')],
81 link_with: ecore_audio_lib,
82 sources : pub_eo_file_target + priv_eo_file_target,
83 dependencies: ecore_audio_pub_deps,
84)
85
86install_data(pub_eo_files + pub_eo_types_files,
87 install_dir: eolian_ecore_dir
88)
89
90install_headers(ecore_audio_header_src,
91 install_dir : dir_package_include,
92)
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 @@
1ecore_avahi_deps = []
2ecore_avahi_pub_deps = [eina, ecore]
3
4ecore_avahi_src = ['ecore_avahi.c']
5ecore_avahi_header_src = ['Ecore_Avahi.h']
6
7ecore_avahi_deps += dependency('avahi-client')
8config_h.set('HAVE_AVAHI', '1')
9
10ecore_avahi_lib = library('ecore_avahi',
11 ecore_avahi_src,
12 dependencies: [m] + ecore_avahi_deps + ecore_avahi_pub_deps,
13 include_directories : config_dir + [include_directories(join_paths('..','..'))],
14 install: true,
15 version : meson.project_version()
16)
17
18ecore_avahi = declare_dependency(
19 include_directories: [include_directories('.')],
20 link_with: ecore_avahi_lib,
21 dependencies: ecore_avahi_pub_deps,
22)
23
24install_headers(ecore_avahi_header_src,
25 install_dir : dir_package_include,
26)
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 @@
1ecore_buffer_deps = [dependency('wayland-client'), dependency('wayland-server'), ecore]
2ecore_buffer_pub_deps = [eina]
3
4ecore_buffer_header_src = [
5 'Ecore_Buffer.h',
6 'Ecore_Buffer_Queue.h'
7]
8
9ecore_buffer_src = [
10 'bq_mgr_protocol.c',
11 'buffer_queue.c',
12 'shared_buffer.c',
13 'ecore_buffer.c',
14 'ecore_buffer_queue_main.c',
15 'ecore_buffer_con.c',
16 'ecore_buffer_provider.c',
17 'ecore_buffer_consumer.c'
18]
19
20ecore_buffer_lib = library('ecore_buffer',
21 ecore_buffer_src, pub_eo_file_target,
22 dependencies: ecore_buffer_pub_deps + ecore_buffer_deps,
23 include_directories : config_dir,
24 install: true,
25 version : meson.project_version()
26)
27
28ecore_buffer = declare_dependency(
29 include_directories: [include_directories('.')],
30 link_with: ecore_buffer_lib,
31 sources : pub_eo_file_target + priv_eo_file_target,
32 dependencies: ecore_buffer_pub_deps,
33)
34
35install_headers(ecore_buffer_header_src,
36 install_dir : dir_package_include,
37)
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 @@
1ecore_cocoa_deps = [eina, ecore_input, ecore, emile, eet]
2ecore_cocoa_pub_deps = [eina]
3pub_eo_file_target = []
4
5ecore_cocoa_header_src = [
6 'Ecore_Cocoa.h'
7]
8
9ecore_cocoa_src = [
10 'ecore_cocoa.m',
11 'ecore_cocoa_keys.h',
12 'ecore_cocoa_window.h',
13 'ecore_cocoa_window.m',
14 'ecore_cocoa_cnp.m',
15 'ecore_cocoa_app.m',
16 'ecore_cocoa_app.h',
17 'ecore_cocoa_private.h'
18]
19
20evas_include_directories = [
21 include_directories(join_paths('..', 'evas')),
22 include_directories(join_paths('..', 'evas','canvas')),
23 include_directories(join_paths('..', 'evas','common')),
24 include_directories(join_paths('..', 'evas','common3d')),
25 include_directories(join_paths('..', 'evas','common3d', 'save_load')),
26 include_directories(join_paths('..', 'evas','include')),
27 include_directories(join_paths('..', 'evas','filters'))
28]
29
30ecore_cocoa_lib = library('ecore_cocoa',
31 ecore_cocoa_src, pub_eo_file_target,
32 dependencies: ecore_cocoa_deps + ecore_cocoa_pub_deps,
33 include_directories : config_dir + evas_include_directories,
34 link_args : ['-lobjc', '-framework', 'CoreFoundation', '-framework', 'cocoa', '-Wl,-U,_evas_textblock_text_markup_to_utf8'],
35 install: true,
36 version : meson.project_version()
37)
38
39ecore_cocoa = declare_dependency(
40 include_directories: [include_directories('.')],
41 link_with: ecore_cocoa_lib,
42 sources : pub_eo_file_target + priv_eo_file_target,
43 dependencies: ecore_cocoa_pub_deps,
44)
45
46install_headers(ecore_cocoa_header_src,
47 install_dir : dir_package_include,
48)
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 @@
1ecore_con_deps = []
2ecore_con_pub_deps = [eina, eo, efl, ecore]
3
4if target_machine.system() == 'windows' or target_machine.system() == 'cygwin'
5 ipv6 = cc.compiles('''
6 #include <ws2tcpip.h>
7 struct ipv6_mreq tmp;
8 ''')
9else
10 ipv6 = cc.compiles('''
11 #include <netinet/in.h>
12 struct ipv6_mreq tmp;
13 ''')
14endif
15
16if ipv6
17 config_h.set('HAVE_IPV6', 1)
18endif
19
20pub_legacy_eo_files = [
21 'ecore_con_eet_base.eo',
22 'ecore_con_eet_server_obj.eo',
23 'ecore_con_eet_client_obj.eo'
24]
25
26pub_eo_file_target = []
27foreach eo_file : pub_legacy_eo_files
28 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
29 input : eo_file,
30 output : [eo_file + '.h', eo_file + '.legacy.h',],
31 install : true,
32 install_dir : dir_package_include,
33 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
34 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
35 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
36 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
37 '-gchl', '@INPUT@'])
38
39endforeach
40
41pub_eo_files = [
42 'efl_net_socket.eo',
43 'efl_net_socket_simple.eo',
44 'efl_net_socket_fd.eo',
45 'efl_net_socket_tcp.eo',
46 'efl_net_socket_udp.eo',
47 'efl_net_dialer.eo',
48 'efl_net_dialer_simple.eo',
49 'efl_net_dialer_tcp.eo',
50 'efl_net_dialer_udp.eo',
51 'efl_net_dialer_http.eo',
52 'efl_net_dialer_websocket.eo',
53 'efl_net_server.eo',
54 'efl_net_server_simple.eo',
55 'efl_net_server_fd.eo',
56 'efl_net_server_ip.eo',
57 'efl_net_server_tcp.eo',
58 'efl_net_server_udp.eo',
59 'efl_net_server_udp_client.eo',
60 'efl_net_socket_ssl.eo',
61 'efl_net_ssl_context.eo',
62 'efl_net_dialer_ssl.eo',
63 'efl_net_server_ssl.eo',
64 'efl_net_control_access_point.eo',
65 'efl_net_control_technology.eo',
66 'efl_net_control_manager.eo',
67 'efl_net_session.eo',
68 'efl_net_ip_address.eo',
69]
70
71if target_machine.system() == 'windows'
72pub_eo_files += [
73 'efl_net_socket_windows.eo',
74 'efl_net_dialer_windows.eo',
75 'efl_net_server_windows.eo'
76]
77else
78pub_eo_files += [
79 'efl_net_socket_unix.eo',
80 'efl_net_dialer_unix.eo',
81 'efl_net_server_unix.eo'
82]
83endif
84
85foreach eo_file : pub_eo_files
86 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
87 input : eo_file,
88 output : [eo_file + '.h', eo_file + '.legacy.h',],
89 install : true,
90 install_dir : dir_package_include,
91 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
92 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
93 '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
94 '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
95 '-gch', '@INPUT@'])
96endforeach
97
98
99pub_eo_types_files = [
100 'efl_net_types.eot',
101 'efl_net_http_types.eot',
102 'efl_net_ssl_types.eot'
103]
104
105foreach eo_file : pub_eo_types_files
106 pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
107 input : eo_file,
108 output : [eo_file + '.h'],
109 install : true,
110 install_dir : dir_package_include,
111 command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
112 '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
113 '-gh', '@INPUT@'])
114endforeach
115
116eolian_include_directories += ['-I', meson.current_source_dir()]
117
118ecore_con_header_src = [
119 'Ecore_Con.h',
120 'Efl_Net.h',
121 'Ecore_Con_Eet.h',
122 'Ecore_Con_Eet_Legacy.h',
123 'Ecore_Con_Eet_Eo.h'
124]
125
126ecore_con_src = [
127 'ecore_con_alloc.c',
128 'ecore_con.c',
129 'ecore_con_proxy_helper.c',
130 'ecore_con_legacy.c',
131 'ecore_con_eet.c',
132 'ecore_con_socks.c',
133 'ecore_con_url.c',
134 'ecore_con_url_curl.c',
135 'ecore_con_url_curl.h',
136 'ecore_con_private.h',
137 'efl_net_socket.c',
138 'efl_net_socket_simple.c',
139 'efl_net_socket_fd.c',
140 'efl_net_socket_tcp.c',
141 'efl_net_socket_udp.c',
142 'efl_net_dialer.c',
143 'efl_net_dialer_simple.c',
144 'efl_net_dialer_tcp.c',
145 'efl_net_dialer_udp.c',
146 'efl_net_dialer_http.c',
147 'efl_net_dialer_websocket.c',
148 'efl_net_server.c',
149 'efl_net_server_simple.c',
150 'efl_net_server_fd.c',
151 'efl_net_server_ip.c',
152 'efl_net_server_tcp.c',
153 'efl_net_server_udp.c',
154 'efl_net_server_udp_client.c',
155 'efl_net_socket_ssl.c',
156 'efl_net_ssl_context.c',
157 'efl_net_dialer_ssl.c',
158 'efl_net_server_ssl.c',
159 'ecore_con_local.c',
160 'efl_net_ip_address.c'
161]
162
163if target_machine.system() == 'windows'
164 ecore_con_src += [
165 'efl_net_socket_windows.c',
166 'efl_net_dialer_windows.c',
167 'efl_net_server_windows.c'
168 ]
169else
170 ecore_con_src += [
171 'efl_net_socket_unix.c',
172 'efl_net_dialer_unix.c',
173 'efl_net_server_unix.c'
174 ]
175endif
176
177if get_option('network-backend') == 'none'
178 ecore_con_src += [
179 'efl_net_control_access_point-none.c',
180 'efl_net_control_technology-none.c',
181 'efl_net_control-none.c',
182 'efl_net_session-none.c'
183 ]
184else
185 ecore_con_src += [
186 'efl_net-connman.h',
187 'efl_net-connman.c',
188 'efl_net_control_access_point-connman.c',
189 'efl_net_control_technology-connman.c',
190 'efl_net_control-connman.c',
191 'efl_net_session-connman.c'
192 ]
193 ecore_con_deps += eldbus
194endif
195
196ecore_con_deps += crypto
197
198ecore_con_lib = library('ecore_con',
199 ecore_con_src, pub_eo_file_target,
200 dependencies: [ecore, ecore_con_deps, http_parser, eldbus, eet, systemd, buildsystem, dl],
201 include_directories : config_dir,
202 install: true,
203 c_args : package_c_args,
204 version : meson.project_version()
205)
206
207ecore_con = declare_dependency(
208 include_directories: [include_directories('.')],
209 link_with: ecore_con_lib,
210 sources : pub_eo_file_target + priv_eo_file_target,
211 dependencies: ecore_con_pub_deps,
212)
213
214install_data(pub_eo_files + pub_eo_types_files + pub_legacy_eo_files,
215 install_dir: eolian_ecore_dir
216)
217
218install_headers(ecore_con_header_src,
219 install_dir : dir_package_include,
220)
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 @@
1ecore_drm_deps = [eeze, eldbus, ecore_input, ecore, eo, efl, eina, m]
2ecore_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')]
3
4ecore_drm_src = [
5 'ecore_drm_sprites.c',
6 'ecore_drm_fb.c',
7 'ecore_drm_evdev.c',
8 'ecore_drm_inputs.c',
9 'ecore_drm_output.c',
10 'ecore_drm_tty.c',
11 'ecore_drm_device.c',
12 'ecore_drm_launcher.c',
13 'ecore_drm_dbus.c',
14 'ecore_drm_logind.c',
15 'ecore_drm.c',
16 'ecore_drm_private.h'
17]
18ecore_drm_header_src = [
19 'Ecore_Drm.h'
20]
21
22
23ecore_drm_lib = library('ecore_drm',
24 ecore_drm_src,
25 dependencies: [m] + ecore_drm_deps + ecore_drm_pub_deps,
26 include_directories : config_dir + [include_directories(join_paths('..','..'))],
27 install: true,
28 c_args : package_c_args,
29)
30
31ecore_drm = declare_dependency(
32 include_directories: [include_directories('.')],
33 link_with: ecore_drm_lib,
34 dependencies: ecore_drm_pub_deps,
35)
36
37install_headers(ecore_drm_header_src,
38 install_dir : dir_package_include,
39)
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 @@
1ecore_drm2_deps = [eeze, elput, dl, libdrm]
2ecore_drm2_pub_deps = [ecore]
3
4ecore_drm2_header_src = [
5 'Ecore_Drm2.h'
6]
7
8ecore_drm2_src = [
9 'ecore_drm2_plane.c',
10 'ecore_drm2_fb.c',
11 'ecore_drm2_outputs.c',
12 'ecore_drm2_device.c',
13 'ecore_drm2.c',
14 'ecore_drm2_private.h'
15]
16
17ecore_drm2_lib = library('ecore_drm2',
18 ecore_drm2_src, pub_eo_file_target,
19 dependencies: ecore_drm2_pub_deps + ecore_drm2_deps,
20 include_directories : config_dir,
21 install: true,
22 version : meson.project_version()
23)
24
25ecore_drm2 = declare_dependency(
26 include_directories: [include_directories('.')],
27 link_with: ecore_drm2_lib,
28 sources : pub_eo_file_target + priv_eo_file_target,
29 dependencies: ecore_drm2_pub_deps,
30)
31
32install_headers(ecore_drm2_header_src,
33 install_dir : dir_package_include,
34)
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 @@
1ecore_evas_deps = [eina, ecore_input_evas, ecore_input, ecore, eet, evas, efl, eo, eina, emile]
2ecore_evas_pub_deps = [evas, ecore]
3pub_eo_file_target = []
4
5ecore_evas_header_src = [
6 'Ecore_Evas_Types.h',
7 'Ecore_Evas.h',
8
9]
10
11ecore_evas_src = [
12 'ecore_evas.c',
13 'ecore_evas_buffer.c',
14 'ecore_evas_buffer.h',
15 'ecore_evas_deprecated.c',
16 'ecore_evas_drm.h',
17 'ecore_evas_ews.c',
18 'ecore_evas_module.c',
19 'ecore_evas_private.h',
20 'ecore_evas_extn.h',
21 'ecore_evas_extn.c',
22 'ecore_evas_wayland.h',
23 'ecore_evas_cocoa.h',
24 'ecore_evas_win32.h',
25 'ecore_evas_x11.h',
26 'ecore_evas_util.c'
27]
28
29
30ecore_evas_lib = library('ecore_evas',
31 ecore_evas_src, pub_eo_file_target,
32 dependencies: [ecore_evas_deps, buildsystem],
33 include_directories : config_dir,
34 install: true,
35 version : meson.project_version()
36)
37
38ecore_evas = declare_dependency(
39 include_directories: [include_directories('.')],
40 link_with: ecore_evas_lib,
41 sources : pub_eo_file_target + priv_eo_file_target,
42 dependencies: [evas],
43)
44
45install_headers(ecore_evas_header_src,
46 install_dir : dir_package_include,
47)
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 @@
1ecore_fb_deps = [ecore, ecore_input]
2ecore_fb_pub_deps = [eina]
3
4ecore_fb_header_src = [
5 'Ecore_Fb.h'
6]
7
8ecore_fb_src = [
9 'ecore_fb.c',
10 'ecore_fb_li.c',
11 'ecore_fb_ts.c',
12 'ecore_fb_vt.c',
13 'ecore_fb_keytable.h',
14 'ecore_fb_private.h'
15]
16
17ecore_fb_lib = library('ecore_fb',
18 ecore_fb_src, pub_eo_file_target,
19 dependencies: ecore_fb_pub_deps + ecore_fb_deps,
20 include_directories : config_dir,
21 install: true,
22 version : meson.project_version()
23)
24
25ecore_fb = declare_dependency(
26 include_directories: [include_directories('.')],
27 link_with: ecore_fb_lib,
28 sources : pub_eo_file_target + priv_eo_file_target,
29 dependencies: ecore_fb_pub_deps,
30)
31
32install_headers(ecore_fb_header_src,
33 install_dir : dir_package_include,
34)
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 @@
1ecore_file_deps = [ecore_con, ecore]
2ecore_file_pub_deps = [eina]
3
4ecore_file_src = [
5 'ecore_file.c',
6 'ecore_file_download.c',
7 'ecore_file_monitor.c',
8 'ecore_file_path.c',
9 'ecore_file_private.h'
10]
11
12if target_machine.system() == 'windows'
13 ecore_file_src += [ 'ecore_file_monitor_win32.c']
14elif cc.has_header('sys/inotify.h')
15 ecore_file_src += [ 'ecore_file_monitor_inotify.c']
16else
17 ecore_file_src += [ 'ecore_file_monitor_poll.c']
18endif
19
20ecore_file_header_src = ['Ecore_File.h']
21
22
23ecore_file_lib = library('ecore_file',
24 ecore_file_src,
25 dependencies: ecore_file_deps + ecore_file_pub_deps + ecore_file_deps,
26 include_directories : config_dir + [include_directories(join_paths('..','..'))],
27 install: true,
28 version : meson.project_version()
29)
30
31ecore_file = declare_dependency(
32 include_directories: [include_directories('.')],
33 link_with: ecore_file_lib,
34 dependencies: ecore_file_pub_deps,
35)
36
37install_headers(ecore_file_header_src,
38 install_dir : dir_package_include,
39)
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 @@
1ecore_imf_deps = [ecore]
2ecore_imf_pub_deps = [eina]
3
4ecore_imf_header_src = [
5 'Ecore_IMF.h'
6]
7
8ecore_imf_src = [
9 'ecore_imf.c',
10 'ecore_imf_context.c',
11 'ecore_imf_module.c',
12 'ecore_imf_private.h',
13]
14
15
16ecore_imf_lib = library('ecore_imf',
17 ecore_imf_src, pub_eo_file_target,
18 dependencies: [buildsystem, ecore_imf_deps, ecore_imf_pub_deps],
19 include_directories : config_dir,
20 c_args : package_c_args,
21 install: true,
22 version : meson.project_version()
23)
24
25ecore_imf = declare_dependency(
26 include_directories: [include_directories('.')],
27 link_with: ecore_imf_lib,
28 sources : pub_eo_file_target + priv_eo_file_target,
29 dependencies: ecore_imf_pub_deps,
30)
31
32install_headers(ecore_imf_header_src,
33 install_dir : dir_package_include,
34)
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 @@
1ecore_imf_evas_header_src = [
2 'Ecore_IMF_Evas.h'
3]
4
5ecore_imf_evas_src = [
6 'ecore_imf_evas.c'
7]
8
9ecore_imf_evas_deps = [ecore_imf, evas]
10ecore_imf_evas_pub_deps = [eina, eo, efl]
11
12ecore_imf_evas_lib = library('ecore_imf_evas',
13 ecore_imf_evas_src,
14 dependencies: ecore_imf_evas_pub_deps + [m] + ecore_imf_evas_deps,
15 include_directories : config_dir + [include_directories('.')],
16 install: true,
17 c_args : package_c_args,
18 version : meson.project_version()
19)
20
21ecore_imf_evas = declare_dependency(
22 include_directories: [include_directories('.')],
23 link_with: ecore_imf_evas_lib,
24 sources : pub_eo_file_target + priv_eo_file_target,
25 dependencies: ecore_imf_evas_pub_deps,
26)
27
28install_headers(ecore_imf_evas_header_src,
29 install_dir : dir_package_include,
30)
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 @@
1ecore_input_deps = [ecore]
2ecore_input_pub_deps = [eina, eo]
3
4ecore_input_header_src = [
5 'Ecore_Input.h'
6]
7
8ecore_input_src = [
9 'ecore_input.c',
10 'ecore_input_compose.c',
11 'ecore_input_joystick.c',
12 'ecore_input_compose.h',
13 'ecore_input_private.h'
14]
15
16if get_option('eeze')
17 ecore_input_deps += eeze
18endif
19
20
21ecore_input_lib = library('ecore_input',
22 ecore_input_src, pub_eo_file_target,
23 dependencies: ecore_input_pub_deps + ecore_input_deps,
24 include_directories : config_dir,
25 install: true,
26 version : meson.project_version()
27)
28
29ecore_input = declare_dependency(
30 include_directories: [include_directories('.')],
31 link_with: ecore_input_lib,
32 sources : pub_eo_file_target + priv_eo_file_target,
33 dependencies: ecore_input_pub_deps,
34)
35
36install_headers(ecore_input_header_src,
37 install_dir : dir_package_include,
38)
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 @@
1ecore_input_evas_deps = [ecore, ecore_input, evas]
2ecore_input_evas_pub_deps = [eina, evas]