summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib')
-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
66 files changed, 4756 insertions, 0 deletions
diff --git a/src/lib/ecore/meson.build b/src/lib/ecore/meson.build
new file mode 100644
index 0000000000..f5872ffb76
--- /dev/null
+++ b/src/lib/ecore/meson.build
@@ -0,0 +1,222 @@
+ecore_deps = [intl]
+ecore_pub_deps = [eina, eo, efl]
+
+pub_legacy_eo_files = [
+ 'ecore_exe.eo',
+ 'ecore_event_message.eo',
+ 'ecore_event_message_handler.eo',
+ 'efl_loop_timer.eo'
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_app.eo',
+ 'efl_loop.eo',
+ 'efl_loop_consumer.eo',
+ 'efl_loop_fd.eo',
+ 'efl_loop_handler.eo',
+ 'efl_loop_message.eo',
+ 'efl_loop_message_handler.eo',
+ 'efl_exe.eo',
+ 'efl_thread.eo',
+ 'efl_threadio.eo',
+ 'efl_appthread.eo',
+ 'efl_task.eo',
+ 'efl_io_closer_fd.eo',
+ 'efl_io_positioner_fd.eo',
+ 'efl_io_reader_fd.eo',
+ 'efl_io_sizer_fd.eo',
+ 'efl_io_writer_fd.eo',
+ 'efl_io_stdin.eo',
+ 'efl_io_stdout.eo',
+ 'efl_io_stderr.eo',
+ 'efl_io_file.eo',
+ 'efl_io_copier.eo',
+ 'efl_io_buffered_stream.eo',
+ 'efl_interpolator.eo',
+ 'efl_interpolator_linear.eo',
+ 'efl_interpolator_accelerate.eo',
+ 'efl_interpolator_decelerate.eo',
+ 'efl_interpolator_sinusoidal.eo',
+ 'efl_interpolator_divisor.eo',
+ 'efl_interpolator_bounce.eo',
+ 'efl_interpolator_spring.eo',
+ 'efl_interpolator_cubic_bezier.eo',
+ 'efl_loop_message_future_handler.eo',
+ 'efl_loop_message_future.eo',
+ 'efl_model_item.eo',
+ 'efl_model_container.eo',
+ 'efl_model_container_item.eo',
+ 'efl_model_composite_boolean.eo',
+ 'efl_model_composite_boolean_children.eo',
+ 'efl_model_composite_selection.eo',
+ 'efl_model_composite_selection_children.eo',
+ 'efl_model_composite.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+# special handling, because this is already eo API and legacy API
+pub_eo_files += ['efl_loop_timer.eo']
+
+pub_eo_types_files = []
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+ecore_header_src = [
+ 'Ecore.h',
+ 'Ecore_Common.h',
+ 'Ecore_Legacy.h',
+ 'Ecore_Eo.h',
+ 'Efl_Core.h',
+ 'efl_general.h',
+ 'Ecore_Getopt.h'
+]
+
+ecore_src = [
+ 'efl_app.c',
+ 'ecore.c',
+ 'ecore_alloc.c',
+ 'ecore_anim.c',
+ 'ecore_app.c',
+ 'ecore_events.c',
+ 'ecore_getopt.c',
+ 'ecore_glib.c',
+ 'ecore_idle_enterer.c',
+ 'ecore_idle_exiter.c',
+ 'ecore_idler.c',
+ 'ecore_job.c',
+ 'ecore_main.c',
+ 'ecore_event_message.c',
+ 'ecore_event_message_handler.c',
+ 'efl_loop.c',
+ 'efl_loop_consumer.c',
+ 'efl_loop_fd.c',
+ 'efl_loop_handler.c',
+ 'efl_loop_message.c',
+ 'efl_loop_message_future.c',
+ 'efl_loop_message_handler.c',
+ 'efl_loop_message_future_handler.c',
+ 'efl_task.c',
+ 'efl_io_closer_fd.c',
+ 'efl_io_positioner_fd.c',
+ 'efl_io_reader_fd.c',
+ 'efl_io_sizer_fd.c',
+ 'efl_io_writer_fd.c',
+ 'efl_io_stdin.c',
+ 'efl_io_stdout.c',
+ 'efl_io_stderr.c',
+ 'efl_io_file.c',
+ 'efl_io_copier.c',
+ 'efl_io_buffered_stream.c',
+ 'efl_model_item.c',
+ 'efl_model_container.c',
+ 'efl_model_container_item.c',
+ 'efl_model_container_private.h',
+ 'efl_model_composite.c',
+ 'efl_model_composite_boolean.c',
+ 'efl_model_composite_selection.c',
+ 'efl_model_accessor_view.c',
+ 'efl_model_accessor_view_private.h',
+ 'efl_interpolator.c',
+ 'efl_interpolator_linear.c',
+ 'efl_interpolator_accelerate.c',
+ 'efl_interpolator_decelerate.c',
+ 'efl_interpolator_sinusoidal.c',
+ 'efl_interpolator_divisor.c',
+ 'efl_interpolator_bounce.c',
+ 'efl_interpolator_spring.c',
+ 'efl_interpolator_cubic_bezier.c',
+ 'ecore_main_timechanges.c',
+ 'ecore_pipe.c',
+ 'ecore_poller.c',
+ 'ecore_time.c',
+ 'ecore_timer.c',
+ 'ecore_thread.c',
+ 'ecore_throttle.c',
+ 'ecore_exe.c',
+ 'ecore_exe_private.h',
+ 'ecore_private.h',
+ 'ecore_internal.h',
+ 'ecore_main_common.h'
+]
+
+if target_machine.system() == 'windows'
+ #nothing for now ... needs testing
+else
+ ecore_src += ['ecore_signal.c', 'ecore_exe_posix.c']
+endif
+
+if get_option('glib') == true
+ ecore_deps += dependency('glib-2.0')
+ ecore_deps += dependency('gthread-2.0')
+ config_h.set('GLIB_INTEGRATION_ALWAYS', '1')
+ config_h.set('HAVE_GLIB', '1')
+endif
+
+if get_option('g-mainloop') == true
+ config_h.set('USE_G_MAIN_LOOP', '1')
+endif
+
+if get_option('gstreamer') == true
+ gstreamer = dependency('gstreamer-1.0')
+ ecore_deps += gstreamer
+endif
+
+if get_option('systemd') == true
+ ecore_deps += systemd
+endif
+
+ecore_lib = library('ecore',
+ ecore_src, pub_eo_file_target,
+ dependencies: ecore_pub_deps + [m, buildsystem, ecore_deps],
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_pub_deps,
+)
+
+eolian_ecore_dir = join_paths(eolian_include_dir, package_version_name)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_header_src,
+ install_dir : dir_package_include,
+)
+
+#TODO:
+# HAVE_TIZEN_CONFIGUREATION_MANAGER
+# avahi
diff --git a/src/lib/ecore_audio/meson.build b/src/lib/ecore_audio/meson.build
new file mode 100644
index 0000000000..099f8454db
--- /dev/null
+++ b/src/lib/ecore_audio/meson.build
@@ -0,0 +1,92 @@
+ecore_audio_deps = [ecore]
+ecore_audio_pub_deps = [eina, eo]
+
+pub_eo_files = [
+ 'ecore_audio.eo',
+ 'ecore_audio_in.eo',
+ 'ecore_audio_out.eo',
+ 'ecore_audio_in_sndfile.eo',
+ 'ecore_audio_out_sndfile.eo',
+ 'ecore_audio_out_pulse.eo',
+ 'ecore_audio_in_tone.eo',
+ 'ecore_audio_out_wasapi.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+pub_eo_types_files = []
+
+ecore_audio_header_src = [
+ 'Ecore_Audio.h',
+ 'ecore_audio_obj.h',
+ 'ecore_audio_obj_in.h',
+ 'ecore_audio_obj_out.h',
+ 'ecore_audio_obj_in_tone.h',
+ 'ecore_audio_protected.h',
+ 'ecore_audio_obj_out_pulse.h',
+ 'ecore_audio_obj_in_sndfile.h',
+ 'ecore_audio_obj_out_sndfile.h',
+ 'ecore_audio_obj_out_wasapi.h'
+]
+
+ecore_audio_src = [
+ 'ecore_audio.c',
+ 'ecore_audio_obj.c',
+ 'ecore_audio_obj_in.c',
+ 'ecore_audio_obj_out.c',
+ 'ecore_audio_obj_in_tone.c',
+ 'ecore_audio_private.h'
+]
+
+ecore_audio_src += [
+ 'ecore_audio_obj_in_sndfile.c',
+ 'ecore_audio_obj_out_sndfile.c',
+ 'ecore_audio_sndfile_vio.c'
+]
+
+ecore_audio_deps += dependency('sndfile')
+config_h.set('HAVE_SNDFILE', '1')
+
+if get_option('pulseaudio')
+ ecore_audio_deps += dependency('libpulse')
+
+ ecore_audio_src += [
+ 'ecore_audio_pulse_ml.c',
+ 'ecore_audio_obj_out_pulse.c'
+ ]
+
+ config_h.set('HAVE_PULSE', '1')
+endif
+
+ecore_audio_lib = library('ecore_audio',
+ ecore_audio_src, pub_eo_file_target,
+ dependencies: ecore_audio_pub_deps + [m] + ecore_audio_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_audio = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_audio_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_audio_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_audio_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_avahi/meson.build b/src/lib/ecore_avahi/meson.build
new file mode 100644
index 0000000000..40e037850a
--- /dev/null
+++ b/src/lib/ecore_avahi/meson.build
@@ -0,0 +1,26 @@
+ecore_avahi_deps = []
+ecore_avahi_pub_deps = [eina, ecore]
+
+ecore_avahi_src = ['ecore_avahi.c']
+ecore_avahi_header_src = ['Ecore_Avahi.h']
+
+ecore_avahi_deps += dependency('avahi-client')
+config_h.set('HAVE_AVAHI', '1')
+
+ecore_avahi_lib = library('ecore_avahi',
+ ecore_avahi_src,
+ dependencies: [m] + ecore_avahi_deps + ecore_avahi_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_avahi = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_avahi_lib,
+ dependencies: ecore_avahi_pub_deps,
+)
+
+install_headers(ecore_avahi_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_buffer/meson.build b/src/lib/ecore_buffer/meson.build
new file mode 100644
index 0000000000..4cf3fc65da
--- /dev/null
+++ b/src/lib/ecore_buffer/meson.build
@@ -0,0 +1,37 @@
+ecore_buffer_deps = [dependency('wayland-client'), dependency('wayland-server'), ecore]
+ecore_buffer_pub_deps = [eina]
+
+ecore_buffer_header_src = [
+ 'Ecore_Buffer.h',
+ 'Ecore_Buffer_Queue.h'
+]
+
+ecore_buffer_src = [
+ 'bq_mgr_protocol.c',
+ 'buffer_queue.c',
+ 'shared_buffer.c',
+ 'ecore_buffer.c',
+ 'ecore_buffer_queue_main.c',
+ 'ecore_buffer_con.c',
+ 'ecore_buffer_provider.c',
+ 'ecore_buffer_consumer.c'
+]
+
+ecore_buffer_lib = library('ecore_buffer',
+ ecore_buffer_src, pub_eo_file_target,
+ dependencies: ecore_buffer_pub_deps + ecore_buffer_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_buffer = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_buffer_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_buffer_pub_deps,
+)
+
+install_headers(ecore_buffer_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_cocoa/meson.build b/src/lib/ecore_cocoa/meson.build
new file mode 100644
index 0000000000..b7aca40031
--- /dev/null
+++ b/src/lib/ecore_cocoa/meson.build
@@ -0,0 +1,48 @@
+ecore_cocoa_deps = [eina, ecore_input, ecore, emile, eet]
+ecore_cocoa_pub_deps = [eina]
+pub_eo_file_target = []
+
+ecore_cocoa_header_src = [
+ 'Ecore_Cocoa.h'
+]
+
+ecore_cocoa_src = [
+ 'ecore_cocoa.m',
+ 'ecore_cocoa_keys.h',
+ 'ecore_cocoa_window.h',
+ 'ecore_cocoa_window.m',
+ 'ecore_cocoa_cnp.m',
+ 'ecore_cocoa_app.m',
+ 'ecore_cocoa_app.h',
+ 'ecore_cocoa_private.h'
+]
+
+evas_include_directories = [
+ include_directories(join_paths('..', 'evas')),
+ include_directories(join_paths('..', 'evas','canvas')),
+ include_directories(join_paths('..', 'evas','common')),
+ include_directories(join_paths('..', 'evas','common3d')),
+ include_directories(join_paths('..', 'evas','common3d', 'save_load')),
+ include_directories(join_paths('..', 'evas','include')),
+ include_directories(join_paths('..', 'evas','filters'))
+]
+
+ecore_cocoa_lib = library('ecore_cocoa',
+ ecore_cocoa_src, pub_eo_file_target,
+ dependencies: ecore_cocoa_deps + ecore_cocoa_pub_deps,
+ include_directories : config_dir + evas_include_directories,
+ link_args : ['-lobjc', '-framework', 'CoreFoundation', '-framework', 'cocoa', '-Wl,-U,_evas_textblock_text_markup_to_utf8'],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_cocoa = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_cocoa_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_cocoa_pub_deps,
+)
+
+install_headers(ecore_cocoa_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build
new file mode 100644
index 0000000000..f60e0a7185
--- /dev/null
+++ b/src/lib/ecore_con/meson.build
@@ -0,0 +1,220 @@
+ecore_con_deps = []
+ecore_con_pub_deps = [eina, eo, efl, ecore]
+
+if target_machine.system() == 'windows' or target_machine.system() == 'cygwin'
+ ipv6 = cc.compiles('''
+ #include <ws2tcpip.h>
+ struct ipv6_mreq tmp;
+ ''')
+else
+ ipv6 = cc.compiles('''
+ #include <netinet/in.h>
+ struct ipv6_mreq tmp;
+ ''')
+endif
+
+if ipv6
+ config_h.set('HAVE_IPV6', 1)
+endif
+
+pub_legacy_eo_files = [
+ 'ecore_con_eet_base.eo',
+ 'ecore_con_eet_server_obj.eo',
+ 'ecore_con_eet_client_obj.eo'
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_net_socket.eo',
+ 'efl_net_socket_simple.eo',
+ 'efl_net_socket_fd.eo',
+ 'efl_net_socket_tcp.eo',
+ 'efl_net_socket_udp.eo',
+ 'efl_net_dialer.eo',
+ 'efl_net_dialer_simple.eo',
+ 'efl_net_dialer_tcp.eo',
+ 'efl_net_dialer_udp.eo',
+ 'efl_net_dialer_http.eo',
+ 'efl_net_dialer_websocket.eo',
+ 'efl_net_server.eo',
+ 'efl_net_server_simple.eo',
+ 'efl_net_server_fd.eo',
+ 'efl_net_server_ip.eo',
+ 'efl_net_server_tcp.eo',
+ 'efl_net_server_udp.eo',
+ 'efl_net_server_udp_client.eo',
+ 'efl_net_socket_ssl.eo',
+ 'efl_net_ssl_context.eo',
+ 'efl_net_dialer_ssl.eo',
+ 'efl_net_server_ssl.eo',
+ 'efl_net_control_access_point.eo',
+ 'efl_net_control_technology.eo',
+ 'efl_net_control_manager.eo',
+ 'efl_net_session.eo',
+ 'efl_net_ip_address.eo',
+]
+
+if target_machine.system() == 'windows'
+pub_eo_files += [
+ 'efl_net_socket_windows.eo',
+ 'efl_net_dialer_windows.eo',
+ 'efl_net_server_windows.eo'
+]
+else
+pub_eo_files += [
+ 'efl_net_socket_unix.eo',
+ 'efl_net_dialer_unix.eo',
+ 'efl_net_server_unix.eo'
+]
+endif
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'efl_net_types.eot',
+ 'efl_net_http_types.eot',
+ 'efl_net_ssl_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+ecore_con_header_src = [
+ 'Ecore_Con.h',
+ 'Efl_Net.h',
+ 'Ecore_Con_Eet.h',
+ 'Ecore_Con_Eet_Legacy.h',
+ 'Ecore_Con_Eet_Eo.h'
+]
+
+ecore_con_src = [
+ 'ecore_con_alloc.c',
+ 'ecore_con.c',
+ 'ecore_con_proxy_helper.c',
+ 'ecore_con_legacy.c',
+ 'ecore_con_eet.c',
+ 'ecore_con_socks.c',
+ 'ecore_con_url.c',
+ 'ecore_con_url_curl.c',
+ 'ecore_con_url_curl.h',
+ 'ecore_con_private.h',
+ 'efl_net_socket.c',
+ 'efl_net_socket_simple.c',
+ 'efl_net_socket_fd.c',
+ 'efl_net_socket_tcp.c',
+ 'efl_net_socket_udp.c',
+ 'efl_net_dialer.c',
+ 'efl_net_dialer_simple.c',
+ 'efl_net_dialer_tcp.c',
+ 'efl_net_dialer_udp.c',
+ 'efl_net_dialer_http.c',
+ 'efl_net_dialer_websocket.c',
+ 'efl_net_server.c',
+ 'efl_net_server_simple.c',
+ 'efl_net_server_fd.c',
+ 'efl_net_server_ip.c',
+ 'efl_net_server_tcp.c',
+ 'efl_net_server_udp.c',
+ 'efl_net_server_udp_client.c',
+ 'efl_net_socket_ssl.c',
+ 'efl_net_ssl_context.c',
+ 'efl_net_dialer_ssl.c',
+ 'efl_net_server_ssl.c',
+ 'ecore_con_local.c',
+ 'efl_net_ip_address.c'
+]
+
+if target_machine.system() == 'windows'
+ ecore_con_src += [
+ 'efl_net_socket_windows.c',
+ 'efl_net_dialer_windows.c',
+ 'efl_net_server_windows.c'
+ ]
+else
+ ecore_con_src += [
+ 'efl_net_socket_unix.c',
+ 'efl_net_dialer_unix.c',
+ 'efl_net_server_unix.c'
+ ]
+endif
+
+if get_option('network-backend') == 'none'
+ ecore_con_src += [
+ 'efl_net_control_access_point-none.c',
+ 'efl_net_control_technology-none.c',
+ 'efl_net_control-none.c',
+ 'efl_net_session-none.c'
+ ]
+else
+ ecore_con_src += [
+ 'efl_net-connman.h',
+ 'efl_net-connman.c',
+ 'efl_net_control_access_point-connman.c',
+ 'efl_net_control_technology-connman.c',
+ 'efl_net_control-connman.c',
+ 'efl_net_session-connman.c'
+ ]
+ ecore_con_deps += eldbus
+endif
+
+ecore_con_deps += crypto
+
+ecore_con_lib = library('ecore_con',
+ ecore_con_src, pub_eo_file_target,
+ dependencies: [ecore, ecore_con_deps, http_parser, eldbus, eet, systemd, buildsystem, dl],
+ include_directories : config_dir,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore_con = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_con_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_con_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files + pub_legacy_eo_files,
+ install_dir: eolian_ecore_dir
+)
+
+install_headers(ecore_con_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_drm/meson.build b/src/lib/ecore_drm/meson.build
new file mode 100644
index 0000000000..9bc62a7be3
--- /dev/null
+++ b/src/lib/ecore_drm/meson.build
@@ -0,0 +1,39 @@
+ecore_drm_deps = [eeze, eldbus, ecore_input, ecore, eo, efl, eina, m]
+ecore_drm_pub_deps = [dependency('libinput', version: '>= 1.6.0'), dependency('libdrm', version: '>= 2.4'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.3.0'), dependency('gbm')]
+
+ecore_drm_src = [
+ 'ecore_drm_sprites.c',
+ 'ecore_drm_fb.c',
+ 'ecore_drm_evdev.c',
+ 'ecore_drm_inputs.c',
+ 'ecore_drm_output.c',
+ 'ecore_drm_tty.c',
+ 'ecore_drm_device.c',
+ 'ecore_drm_launcher.c',
+ 'ecore_drm_dbus.c',
+ 'ecore_drm_logind.c',
+ 'ecore_drm.c',
+ 'ecore_drm_private.h'
+]
+ecore_drm_header_src = [
+ 'Ecore_Drm.h'
+]
+
+
+ecore_drm_lib = library('ecore_drm',
+ ecore_drm_src,
+ dependencies: [m] + ecore_drm_deps + ecore_drm_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_drm = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_drm_lib,
+ dependencies: ecore_drm_pub_deps,
+)
+
+install_headers(ecore_drm_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_drm2/meson.build b/src/lib/ecore_drm2/meson.build
new file mode 100644
index 0000000000..1a36fbbede
--- /dev/null
+++ b/src/lib/ecore_drm2/meson.build
@@ -0,0 +1,34 @@
+ecore_drm2_deps = [eeze, elput, dl, libdrm]
+ecore_drm2_pub_deps = [ecore]
+
+ecore_drm2_header_src = [
+ 'Ecore_Drm2.h'
+]
+
+ecore_drm2_src = [
+ 'ecore_drm2_plane.c',
+ 'ecore_drm2_fb.c',
+ 'ecore_drm2_outputs.c',
+ 'ecore_drm2_device.c',
+ 'ecore_drm2.c',
+ 'ecore_drm2_private.h'
+]
+
+ecore_drm2_lib = library('ecore_drm2',
+ ecore_drm2_src, pub_eo_file_target,
+ dependencies: ecore_drm2_pub_deps + ecore_drm2_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_drm2 = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_drm2_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_drm2_pub_deps,
+)
+
+install_headers(ecore_drm2_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_evas/meson.build b/src/lib/ecore_evas/meson.build
new file mode 100644
index 0000000000..c0fb459a56
--- /dev/null
+++ b/src/lib/ecore_evas/meson.build
@@ -0,0 +1,47 @@
+ecore_evas_deps = [eina, ecore_input_evas, ecore_input, ecore, eet, evas, efl, eo, eina, emile]
+ecore_evas_pub_deps = [evas, ecore]
+pub_eo_file_target = []
+
+ecore_evas_header_src = [
+ 'Ecore_Evas_Types.h',
+ 'Ecore_Evas.h',
+
+]
+
+ecore_evas_src = [
+ 'ecore_evas.c',
+ 'ecore_evas_buffer.c',
+ 'ecore_evas_buffer.h',
+ 'ecore_evas_deprecated.c',
+ 'ecore_evas_drm.h',
+ 'ecore_evas_ews.c',
+ 'ecore_evas_module.c',
+ 'ecore_evas_private.h',
+ 'ecore_evas_extn.h',
+ 'ecore_evas_extn.c',
+ 'ecore_evas_wayland.h',
+ 'ecore_evas_cocoa.h',
+ 'ecore_evas_win32.h',
+ 'ecore_evas_x11.h',
+ 'ecore_evas_util.c'
+]
+
+
+ecore_evas_lib = library('ecore_evas',
+ ecore_evas_src, pub_eo_file_target,
+ dependencies: [ecore_evas_deps, buildsystem],
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: [evas],
+)
+
+install_headers(ecore_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_fb/meson.build b/src/lib/ecore_fb/meson.build
new file mode 100644
index 0000000000..0bcf11e3c8
--- /dev/null
+++ b/src/lib/ecore_fb/meson.build
@@ -0,0 +1,34 @@
+ecore_fb_deps = [ecore, ecore_input]
+ecore_fb_pub_deps = [eina]
+
+ecore_fb_header_src = [
+ 'Ecore_Fb.h'
+]
+
+ecore_fb_src = [
+ 'ecore_fb.c',
+ 'ecore_fb_li.c',
+ 'ecore_fb_ts.c',
+ 'ecore_fb_vt.c',
+ 'ecore_fb_keytable.h',
+ 'ecore_fb_private.h'
+]
+
+ecore_fb_lib = library('ecore_fb',
+ ecore_fb_src, pub_eo_file_target,
+ dependencies: ecore_fb_pub_deps + ecore_fb_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_fb = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_fb_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_fb_pub_deps,
+)
+
+install_headers(ecore_fb_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_file/meson.build b/src/lib/ecore_file/meson.build
new file mode 100644
index 0000000000..a3e70f8a99
--- /dev/null
+++ b/src/lib/ecore_file/meson.build
@@ -0,0 +1,39 @@
+ecore_file_deps = [ecore_con, ecore]
+ecore_file_pub_deps = [eina]
+
+ecore_file_src = [
+ 'ecore_file.c',
+ 'ecore_file_download.c',
+ 'ecore_file_monitor.c',
+ 'ecore_file_path.c',
+ 'ecore_file_private.h'
+]
+
+if target_machine.system() == 'windows'
+ ecore_file_src += [ 'ecore_file_monitor_win32.c']
+elif cc.has_header('sys/inotify.h')
+ ecore_file_src += [ 'ecore_file_monitor_inotify.c']
+else
+ ecore_file_src += [ 'ecore_file_monitor_poll.c']
+endif
+
+ecore_file_header_src = ['Ecore_File.h']
+
+
+ecore_file_lib = library('ecore_file',
+ ecore_file_src,
+ dependencies: ecore_file_deps + ecore_file_pub_deps + ecore_file_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_file = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_file_lib,
+ dependencies: ecore_file_pub_deps,
+)
+
+install_headers(ecore_file_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_imf/meson.build b/src/lib/ecore_imf/meson.build
new file mode 100644
index 0000000000..978594d20a
--- /dev/null
+++ b/src/lib/ecore_imf/meson.build
@@ -0,0 +1,34 @@
+ecore_imf_deps = [ecore]
+ecore_imf_pub_deps = [eina]
+
+ecore_imf_header_src = [
+ 'Ecore_IMF.h'
+]
+
+ecore_imf_src = [
+ 'ecore_imf.c',
+ 'ecore_imf_context.c',
+ 'ecore_imf_module.c',
+ 'ecore_imf_private.h',
+]
+
+
+ecore_imf_lib = library('ecore_imf',
+ ecore_imf_src, pub_eo_file_target,
+ dependencies: [buildsystem, ecore_imf_deps, ecore_imf_pub_deps],
+ include_directories : config_dir,
+ c_args : package_c_args,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_imf = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_imf_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_imf_pub_deps,
+)
+
+install_headers(ecore_imf_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_imf_evas/meson.build b/src/lib/ecore_imf_evas/meson.build
new file mode 100644
index 0000000000..28d53ea78d
--- /dev/null
+++ b/src/lib/ecore_imf_evas/meson.build
@@ -0,0 +1,30 @@
+ecore_imf_evas_header_src = [
+ 'Ecore_IMF_Evas.h'
+]
+
+ecore_imf_evas_src = [
+ 'ecore_imf_evas.c'
+]
+
+ecore_imf_evas_deps = [ecore_imf, evas]
+ecore_imf_evas_pub_deps = [eina, eo, efl]
+
+ecore_imf_evas_lib = library('ecore_imf_evas',
+ ecore_imf_evas_src,
+ dependencies: ecore_imf_evas_pub_deps + [m] + ecore_imf_evas_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ecore_imf_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_imf_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_imf_evas_pub_deps,
+)
+
+install_headers(ecore_imf_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_input/meson.build b/src/lib/ecore_input/meson.build
new file mode 100644
index 0000000000..c57ec4e04c
--- /dev/null
+++ b/src/lib/ecore_input/meson.build
@@ -0,0 +1,38 @@
+ecore_input_deps = [ecore]
+ecore_input_pub_deps = [eina, eo]
+
+ecore_input_header_src = [
+ 'Ecore_Input.h'
+]
+
+ecore_input_src = [
+ 'ecore_input.c',
+ 'ecore_input_compose.c',
+ 'ecore_input_joystick.c',
+ 'ecore_input_compose.h',
+ 'ecore_input_private.h'
+]
+
+if get_option('eeze')
+ ecore_input_deps += eeze
+endif
+
+
+ecore_input_lib = library('ecore_input',
+ ecore_input_src, pub_eo_file_target,
+ dependencies: ecore_input_pub_deps + ecore_input_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_input = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_input_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_input_pub_deps,
+)
+
+install_headers(ecore_input_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_input_evas/meson.build b/src/lib/ecore_input_evas/meson.build
new file mode 100644
index 0000000000..8b48142f7d
--- /dev/null
+++ b/src/lib/ecore_input_evas/meson.build
@@ -0,0 +1,32 @@
+ecore_input_evas_deps = [ecore, ecore_input, evas]
+ecore_input_evas_pub_deps = [eina, evas]
+pub_eo_file_target = []
+
+ecore_input_evas_header_src = [
+ 'Ecore_Input_Evas.h'
+]
+
+ecore_input_evas_src = [
+ 'ecore_input_evas.c',
+ 'ecore_input_evas_private.h',
+]
+
+
+ecore_input_evas_lib = library('ecore_input_evas',
+ ecore_input_evas_src, pub_eo_file_target,
+ dependencies: ecore_input_evas_pub_deps + ecore_input_evas_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_input_evas = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_input_evas_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_input_evas_pub_deps,
+)
+
+install_headers(ecore_input_evas_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_ipc/meson.build b/src/lib/ecore_ipc/meson.build
new file mode 100644
index 0000000000..dbc95b0531
--- /dev/null
+++ b/src/lib/ecore_ipc/meson.build
@@ -0,0 +1,30 @@
+ecore_ipc_deps = [ecore, ecore_con]
+ecore_ipc_pub_deps = [eina]
+
+ecore_ipc_header_src = [
+ 'Ecore_Ipc.h'
+]
+
+ecore_ipc_src = [
+ 'ecore_ipc.c',
+ 'ecore_ipc_private.h',
+]
+
+ecore_ipc_lib = library('ecore_ipc',
+ ecore_ipc_src, pub_eo_file_target,
+ dependencies: ecore_ipc_deps + ecore_ipc_pub_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_ipc = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_ipc_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_ipc_pub_deps,
+)
+
+install_headers(ecore_ipc_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_sdl/meson.build b/src/lib/ecore_sdl/meson.build
new file mode 100644
index 0000000000..01ef3981b9
--- /dev/null
+++ b/src/lib/ecore_sdl/meson.build
@@ -0,0 +1,31 @@
+ecore_sdl_deps = [eina, ecore, ecore_input]
+ecore_sdl_pub_deps = []
+
+ecore_sdl_src = [
+ 'ecore_sdl.c'
+]
+
+ecore_sdl_header_src = [
+ 'Ecore_Sdl.h',
+ 'Ecore_Sdl_Keys.h'
+]
+
+ecore_sdl_deps += dependency('sdl')
+
+ecore_sdl_lib = library('ecore_sdl',
+ ecore_sdl_src,
+ dependencies: [m] + ecore_sdl_deps + ecore_sdl_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_sdl = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_sdl_lib,
+ dependencies: ecore_sdl_pub_deps,
+)
+
+install_headers(ecore_sdl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_wayland/meson.build b/src/lib/ecore_wayland/meson.build
new file mode 100644
index 0000000000..4a24fb661e
--- /dev/null
+++ b/src/lib/ecore_wayland/meson.build
@@ -0,0 +1,42 @@
+ecore_wayland_deps = [ecore_input, ecore, eo, efl, eina]
+ecore_wayland_pub_deps = [dependency('wayland-client', version: '>= 1.8.0'), dependency('wayland-cursor', version: '>= 1.8.0 '), dependency('xkbcommon', version: '>= 0.5.0'), dependency('uuid')]
+
+ecore_wayland_src = [
+ 'ecore_wl.c',
+ 'ecore_wl_dnd.c',
+ 'ecore_wl_input.c',
+ 'ecore_wl_output.c',
+ 'ecore_wl_window.c',
+ 'ecore_wl_subsurf.c',
+ 'ecore_wl_private.h',
+ 'subsurface-protocol.c',
+ 'subsurface-client-protocol.h',
+ 'ivi-application-protocol.c',
+ 'ivi-application-client-protocol.h',
+ 'xdg-shell-client-protocol.h',
+ 'xdg-shell-protocol.c',
+ 'session-recovery-client-protocol.h',
+ 'session-recovery-protocol.c'
+]
+ecore_wayland_header_src = [
+ 'Ecore_Wayland.h'
+]
+
+
+ecore_wayland_lib = library('ecore_wayland',
+ ecore_wayland_src,
+ dependencies: [m] + ecore_wayland_deps + ecore_wayland_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+)
+
+ecore_wayland = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_wayland_lib,
+ dependencies: ecore_wayland_pub_deps,
+)
+
+install_headers(ecore_wayland_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_wl2/meson.build b/src/lib/ecore_wl2/meson.build
new file mode 100644
index 0000000000..c1527ae4e3
--- /dev/null
+++ b/src/lib/ecore_wl2/meson.build
@@ -0,0 +1,38 @@
+ecore_wl2_deps = [dependency('wayland-client'), dependency('wayland-server'), dependency('xkbcommon'), wayland_protocol, dependency('wayland-client')]
+ecore_wl2_pub_deps = [eina, ecore, wayland_protocol]
+
+ecore_wl2_header_src = [
+ 'Ecore_Wl2.h'
+]
+
+ecore_wl2_src = [
+ 'ecore_wl2_subsurf.c',
+ 'ecore_wl2_dnd.c',
+ 'ecore_wl2_window.c',
+ 'ecore_wl2_input.c',
+ 'ecore_wl2_output.c',
+ 'ecore_wl2_display.c',
+ 'ecore_wl2.c',
+ 'ecore_wl2_private.h',
+ 'ecore_wl2_buffer.c',
+ 'ecore_wl2_surface.c'
+]
+
+ecore_wl2_lib = library('ecore_wl2',
+ ecore_wl2_src, pub_eo_file_target,
+ dependencies: ecore_wl2_pub_deps + [dl, m, ecore, ecore_input, ecore_wl2_deps, libdrm],
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_wl2 = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_wl2_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_wl2_pub_deps,
+)
+
+install_headers(ecore_wl2_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ecore_x/meson.build b/src/lib/ecore_x/meson.build
new file mode 100644
index 0000000000..9c1f00ddfe
--- /dev/null
+++ b/src/lib/ecore_x/meson.build
@@ -0,0 +1,142 @@
+ecore_x_deps = [ecore, dl, m, ecore_input]
+ecore_x_pub_deps = [eina, efl]
+
+ecore_x_header_src = [
+ 'Ecore_X.h',
+ 'Ecore_X_Atoms.h',
+ 'Ecore_X_Cursor.h'
+]
+
+ecore_x_src = [
+ 'ecore_x_atoms_decl.h',
+ 'ecore_x.c',
+ 'ecore_x_dnd.c',
+ 'ecore_x_sync.c',
+ 'ecore_x_randr.c',
+ 'ecore_x_fixes.c',
+ 'ecore_x_damage.c',
+ 'ecore_x_composite.c',
+ 'ecore_x_error.c',
+ 'ecore_x_events.c',
+ 'ecore_x_icccm.c',
+ 'ecore_x_keygrab.c',
+ 'ecore_x_netwm.c',
+ 'ecore_x_mwm.c',
+ 'ecore_x_e.c',
+ 'ecore_x_selection.c',
+ 'ecore_x_window.c',
+ 'ecore_x_window_prop.c',
+ 'ecore_x_window_shape.c',
+ 'ecore_x_pixmap.c',
+ 'ecore_x_present.c',
+ 'ecore_x_gc.c',
+ 'ecore_x_xinerama.c',
+ 'ecore_x_screensaver.c',
+ 'ecore_x_dpms.c',
+ 'ecore_x_drawable.c',
+ 'ecore_x_cursor.c',
+ 'ecore_x_test.c',
+ 'ecore_x_atoms.c',
+ 'ecore_x_region.c',
+ 'ecore_x_image.c',
+ 'ecore_x_xi2.c',
+ 'ecore_x_vsync.c',
+ 'ecore_x_gesture.c',
+ 'ecore_x_private.h'
+]
+
+ecore_x_checks = [
+ ['Xcomposite', 'Xcomposite.h', 'Xcomposite', 'XCompositeQueryExtension'],
+ ['Xdamage', 'Xdamage.h', 'Xdamage', 'XDamageSubtract'],
+ ['Xdpms', 'dpms.h', 'Xext', 'DPMSQueryExtension'],
+ ['Xfixes', 'Xfixes.h', 'Xfixes', 'XFixesExpandRegion'],
+ ['Xinerama', 'Xinerama.h', 'Xinerama', 'XineramaQueryScreens'],
+ ['Xrandr', 'Xrandr.h', 'Xrandr', 'XRRGetScreenResourcesCurrent'],
+ ['Xrender', 'Xrender.h', 'Xrender', 'XRenderFindVisualFormat'],
+ ['Xtest', 'XTest.h', 'Xtst', 'XTestFakeKeyEvent'],
+ ['Xss', 'scrnsaver.h', 'Xss', 'XScreenSaverSelectInput'],
+]
+
+if get_option('xpresent')
+ ecore_x_checks += [['Xpresent', 'Xpresent.h', 'Xpresent', 'XPresentQueryExtension']]
+endif
+
+if get_option('xgesture')
+ ecore_x_checks += [['Xgesture', 'gesture.h', 'Xgesture', 'XGestureQueryExtension']]
+endif
+
+if get_option('xinput2')
+ ecore_x_checks += [['Xi2', 'XInput2.h', 'Xi', 'XIQueryDevice']]
+endif
+
+if get_option('xinput22')
+ ecore_x_checks += [['Xi2_2', 'XInput2.h', 'Xi','XIGrabTouchBegin']]
+endif
+
+x11 = dependency('x11', required: false)
+if x11.found() == false
+ x11 = cc.find_library('x11', required: true)
+endif
+
+xcb = dependency('xcb', required: false)
+if xcb.found() == false
+ xcb = cc.find_library('xcb', required: true)
+endif
+
+x11_xcb = dependency('x11-xcb', required: false)
+if x11_xcb.found() == false
+ x11_xcb = cc.find_library('x11-xcb', required: true)
+endif
+
+foreach ecore_x_check : ecore_x_checks
+ x_lib = cc.find_library(ecore_x_check[2],
+ required: false
+ )
+
+ if cc.compiles('''
+#include <X11/Xlib.h>
+#include <X11/extensions/'''+ecore_x_check[1]+'''>
+int main () {
+ #ifndef '''+ecore_x_check[3]+'''
+ '''+ecore_x_check[3]+''';
+ #endif
+}
+ ''',
+ dependencies : [x_lib, x11]
+ ) == true
+ config_h.set('ECORE_'+ecore_x_check[0].to_upper(), '1')
+ else
+ error('extension '+ecore_x_check[0]+' not found for X11')
+ endif
+ ecore_x_deps += x_lib
+endforeach
+
+ecore_x_deps += x11
+ecore_x_deps += xcb
+ecore_x_deps += x11_xcb
+
+
+# there are a few special cases
+cc.has_header_symbol('X11/XKBlib.h', 'XkbSetDetectableAutoRepeat',
+ dependencies : [x11, xcb]
+)
+config_h.set('ECORE_XKB', '1')
+
+ecore_x_lib = library('ecore_x',
+ ecore_x_src, pub_eo_file_target,
+ dependencies: ecore_x_pub_deps + ecore_x_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ecore_x = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ecore_x_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ecore_x_pub_deps,
+)
+
+install_headers(ecore_x_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ector/cairo/meson.build b/src/lib/ector/cairo/meson.build
new file mode 100644
index 0000000000..2b45ce2b87
--- /dev/null
+++ b/src/lib/ector/cairo/meson.build
@@ -0,0 +1,34 @@
+
+ector_src += files([
+ 'ector_renderer_cairo_gradient_linear.c',
+ 'ector_renderer_cairo_gradient_radial.c',
+ 'ector_renderer_cairo_shape.c',
+ 'ector_renderer_cairo.c',
+ 'ector_cairo_software_surface.c',
+ 'ector_cairo_surface.c'
+])
+
+pub_eo_files = [
+ 'ector_cairo_surface.eo',
+ 'ector_cairo_software_surface.eo',
+ 'ector_renderer_cairo.eo',
+ 'ector_renderer_cairo_shape.eo',
+ 'ector_renderer_cairo_gradient_linear.eo',
+ 'ector_renderer_cairo_gradient_radial.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
diff --git a/src/lib/ector/gl/meson.build b/src/lib/ector/gl/meson.build
new file mode 100644
index 0000000000..dad958c0fc
--- /dev/null
+++ b/src/lib/ector/gl/meson.build
@@ -0,0 +1,37 @@
+
+ector_src += files([
+ 'ector_renderer_gl_gradient_linear.c',
+ 'ector_renderer_gl_gradient_radial.c',
+ 'ector_renderer_gl_shape.c',
+ 'ector_renderer_gl.c',
+ 'ector_gl_buffer.c',
+ 'ector_gl_surface.c',
+ 'ector_gl_private.h',
+ #'shader/ector_gl_shaders.x',
+ 'ector_gl_shader.c'
+])
+
+pub_eo_files = [
+ 'ector_gl_surface.eo',
+ 'ector_gl_buffer.eo',
+ 'ector_renderer_gl.eo',
+ 'ector_renderer_gl_shape.eo',
+ 'ector_renderer_gl_gradient_radial.eo',
+ 'ector_renderer_gl_gradient_linear.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
diff --git a/src/lib/ector/meson.build b/src/lib/ector/meson.build
new file mode 100644
index 0000000000..be3c6a5f62
--- /dev/null
+++ b/src/lib/ector/meson.build
@@ -0,0 +1,88 @@
+ector_deps = [eina, emile, eet, eo, efl]
+ector_pub_deps = [eina, efl]
+
+pub_eo_file_target = []
+
+ector_header_src = [
+ # nothing for now ector stays only intree
+]
+
+ector_src = [
+ 'ector_main.c',
+ 'ector_gl_internal.h',
+ 'ector_buffer.c',
+ 'ector_renderer_shape.c',
+ 'ector_renderer.c',
+ 'ector_renderer_gradient.c',
+ 'ector_renderer_gradient_radial.c',
+ 'ector_renderer_gradient_linear.c'
+]
+
+pub_eo_files = [
+ 'ector_surface.eo',
+ 'ector_buffer.eo',
+ 'ector_renderer.eo',
+ 'ector_renderer_shape.eo',
+ 'ector_renderer_gradient.eo',
+ 'ector_renderer_gradient_radial.eo',
+ 'ector_renderer_gradient_linear.eo'
+]
+
+ector_pub_eo_files = pub_eo_files
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+subdir('cairo')
+subdir('gl')
+subdir('software')
+
+pub_eo_types_files = [
+ 'ector_types.eot'
+]
+
+install_data(ector_pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+ector_lib = library('ector',
+ ector_src, pub_eo_file_target,
+ dependencies: ector_pub_deps + [triangulator, freetype, draw, m] + ector_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+ector = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ector_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ector_pub_deps,
+)
+
+install_headers(ector_header_src,
+ install_dir : dir_package_include,
+)
+
diff --git a/src/lib/ector/software/meson.build b/src/lib/ector/software/meson.build
new file mode 100644
index 0000000000..ceb08ef3f2
--- /dev/null
+++ b/src/lib/ector/software/meson.build
@@ -0,0 +1,36 @@
+
+ector_src += files([
+ 'ector_renderer_software_gradient_linear.c',
+ 'ector_renderer_software_gradient_radial.c',
+ 'ector_renderer_software_shape.c',
+ 'ector_software_gradient.c',
+ 'ector_software_rasterizer.c',
+ 'ector_software_surface.c',
+ 'ector_software_buffer.c',
+])
+
+pub_eo_files = [
+ 'ector_software_surface.eo',
+ 'ector_software_buffer.eo',
+ 'ector_software_buffer_base.eo',
+ 'ector_renderer_software.eo',
+ 'ector_renderer_software_shape.eo',
+ 'ector_renderer_software_gradient_radial.eo',
+ 'ector_renderer_software_gradient_linear.eo',
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : false,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
diff --git a/src/lib/edje/meson.build b/src/lib/edje/meson.build
new file mode 100644
index 0000000000..bcfcd9b569
--- /dev/null
+++ b/src/lib/edje/meson.build
@@ -0,0 +1,160 @@
+edje_deps = [
+ eina, eo, efl, m,
+ luajit, eet, evas, ecore_evas,
+ ecore_file, ecore_input,
+ ecore_imf, ecore_imf_evas,
+ embryo, efreet, eio, intl
+]
+
+
+edje_pub_deps = [m, evas, eo, efl, luajit]
+
+if (get_option('physics'))
+ edje_deps += ephysics
+ edje_pub_deps += ephysics
+endif
+
+config_h.set('EDJE_CALC_CACHE', '1')
+
+if get_option('edje-sound-and-video')
+ config_h.set('ENABLE_MULTISENSE', '1')
+ edje_deps += ecore_audio
+endif
+
+pub_legacy_eo_files = [
+ 'edje_edit.eo',
+ 'efl_layout_calc.eo',
+ 'efl_layout_signal.eo',
+ 'efl_layout_group.eo',
+ 'efl_canvas_layout.eo',
+ 'efl_canvas_layout_part.eo',
+ 'efl_canvas_layout_part_box.eo',
+ 'efl_canvas_layout_part_external.eo',
+ 'efl_canvas_layout_part_invalid.eo',
+ 'efl_canvas_layout_part_swallow.eo',
+ 'efl_canvas_layout_part_table.eo',
+ 'efl_canvas_layout_part_text.eo',
+]
+
+pub_eo_files = pub_legacy_eo_files
+pub_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_types_files = [
+ 'edje_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+priv_eo_files = [
+ 'edje_global.eo',
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+edje_header_src = [
+ 'Edje.h',
+ 'Edje_Common.h',
+ 'Edje_Eo.h',
+ 'Edje_Legacy.h',
+ 'Edje_Edit.h'
+]
+
+edje_src = [
+ 'edje_private.h',
+ 'edje_convert.h',
+ 'edje_box_layout.c',
+ 'edje_cache.c',
+ 'edje_calc.c',
+ 'edje_callbacks.c',
+ 'edje_data.c',
+ 'edje_edit.c',
+ 'edje_embryo.c',
+ 'edje_entry.c',
+ 'edje_external.c',
+ 'edje_load.c',
+ 'edje_lua.c',
+ 'edje_lua2.c',
+ 'edje_lua_script_only.c',
+ 'edje_main.c',
+ 'edje_match.c',
+ 'edje_message_queue.c',
+ 'edje_misc.c',
+ 'edje_module.c',
+ 'edje_multisense.c',
+ 'edje_program.c',
+ 'edje_smart.c',
+ 'edje_text.c',
+ 'edje_textblock.c',
+ 'edje_textblock_styles.c',
+ 'edje_util.c',
+ 'edje_legacy.c',
+ 'edje_var.c',
+ 'edje_signal.c',
+ 'edje_part.c',
+ 'edje_part_helper.h',
+ 'edje_part_external.c',
+ 'edje_part_swallow.c',
+ 'edje_part_table.c',
+ 'edje_part_box.c',
+ 'edje_part_text.c',
+ 'edje_part_invalid.c'
+
+]
+
+edje_lib = library('edje',
+ edje_src, pub_eo_file_target, priv_eo_file_target,
+ dependencies: [edje_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : [package_c_args],
+ version : meson.project_version()
+)
+
+edje = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: edje_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: edje_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(edje_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eet/meson.build b/src/lib/eet/meson.build
new file mode 100644
index 0000000000..8ebdb48dd6
--- /dev/null
+++ b/src/lib/eet/meson.build
@@ -0,0 +1,38 @@
+eet_deps = [crypto, jpeg, rg_etc, m]
+eet_pub_deps = [eina, emile, efl]
+
+eet_header_src = [
+ 'Eet.h'
+]
+
+eet_src = [
+ 'Eet_private.h',
+ 'eet_alloc.c',
+ 'eet_cipher.c',
+ 'eet_connection.c',
+ 'eet_data.c',
+ 'eet_dictionary.c',
+ 'eet_image.c',
+ 'eet_lib.c',
+ 'eet_node.c',
+ 'eet_utils.c',
+]
+
+eet_lib = library('eet',
+ eet_src, pub_eo_file_target,
+ dependencies: eet_deps + eet_pub_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+eet = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eet_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eet_pub_deps,
+)
+
+install_headers(eet_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eeze/meson.build b/src/lib/eeze/meson.build
new file mode 100644
index 0000000000..c32eee94b6
--- /dev/null
+++ b/src/lib/eeze/meson.build
@@ -0,0 +1,101 @@
+eeze_deps = []
+eeze_pub_deps = [eina, efl]
+pub_eo_file_target = []
+
+eeze_header_src = [
+ 'Eeze.h',
+ 'Eeze_Net.h',
+ 'Eeze_Sensor.h',
+ 'Eeze_Disk.h',
+ join_paths('..','..','bin','eeze','eeze_scanner','eeze_scanner.h')
+]
+
+eeze_src = [
+ 'eeze_main.c',
+ 'eeze_net.c',
+ 'eeze_net_private.h',
+ 'eeze_sensor.c',
+ 'eeze_sensor_private.h',
+ 'eeze_udev_find.c',
+ 'eeze_udev_private.c',
+ 'eeze_udev_private.h',
+ 'eeze_udev_syspath.c',
+ 'eeze_udev_walk.c',
+ 'eeze_udev_watch.c',
+ 'eeze_disk.c',
+ 'eeze_disk_udev.c',
+ 'eeze_disk_mount.c',
+ 'eeze_disk_private.h'
+]
+
+if get_option('v4l2')
+ config_h.set('HAVE_V4L2', '1')
+ if cc.has_header('linux/videodev2.h') == false
+ error('v4l2 headers not found')
+ endif
+endif
+
+if (get_option('libmount'))
+ libmount = dependency('mount')
+ eeze_deps += [libmount]
+ if libmount.version() == '2.19'
+ eeze_src += 'eeze_disk_libmount.c'
+ elif libmount.version() < '2.19'
+ eeze_src += 'eeze_disk_libmount_old.c'
+ elif libmount.version() > '2.19'
+ eeze_src += 'eeze_disk_libmount_new.c'
+ endif
+ config_h.set('HAVE_EEZE_MOUNT', '1')
+else
+ eeze_src += 'eeze_disk_dummy.c'
+endif
+
+options_to_check = ['eject', 'mount', 'unmount']
+
+eeze_deps += dependency('libudev',
+ version: ['>=148']
+)
+
+foreach option : options_to_check
+ val = get_option(option+'-path')
+ if val == 'detect'
+ # i dont know why we call this unmount when the bin is called umount
+ if option == 'unmount'
+ _option = 'umount'
+ else
+ _option = option
+ endif
+ prog = find_program(_option, required: false)
+ if prog.found()
+ set_variable(option+'_bin', prog.path())
+ else
+ set_variable(option+'_bin', '')
+ endif
+ else
+ set_variable(option+'_bin', val)
+ endif
+endforeach
+
+config_h.set_quoted('EEZE_EJECT_BIN', eject_bin)
+config_h.set_quoted('EEZE_MOUNT_BIN', mount_bin)
+config_h.set_quoted('EEZE_UNMOUNT_BIN', unmount_bin)
+
+eeze_lib = library('eeze',
+ eeze_src, pub_eo_file_target,
+ dependencies: eeze_deps + eeze_pub_deps + [ecore, ecore_file, buildsystem, eeze_deps],
+ include_directories : config_dir,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+eeze = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eeze_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eeze_pub_deps,
+)
+
+install_headers(eeze_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build
new file mode 100644
index 0000000000..8d29c404a8
--- /dev/null
+++ b/src/lib/efl/interfaces/meson.build
@@ -0,0 +1,155 @@
+pub_legacy_eo_files = [
+ 'efl_gfx_fill.eo',
+ 'efl_gfx_entity.eo',
+ 'efl_gfx_color.eo',
+ 'efl_gfx_image.eo',
+ 'efl_gfx_image_animation_controller.eo',
+ 'efl_input_device.eo',
+ 'efl_ui_draggable.eo',
+ 'efl_ui_clickable.eo',
+ 'efl_ui_scrollable.eo',
+ 'efl_ui_scrollable_interactive.eo',
+ 'efl_ui_scrollbar.eo',
+ 'efl_ui_selectable.eo',
+ 'efl_ui_zoom.eo',
+]
+
+pub_eo_file_target = []
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'interfaces'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_playable.eo',
+ 'efl_canvas_scene.eo',
+ 'efl_canvas_pointer.eo',
+ 'efl_config.eo',
+ 'efl_control.eo',
+ 'efl_duplicate.eo',
+ 'efl_file.eo',
+ 'efl_gfx_image_load_controller.eo',
+ 'efl_part.eo',
+ 'efl_player.eo',
+ 'efl_text.eo',
+ 'efl_text_font.eo',
+ 'efl_text_style.eo',
+ 'efl_text_format.eo',
+ 'efl_text_cursor.eo',
+ 'efl_text_annotate.eo',
+ 'efl_text_markup.eo',
+ 'efl_text_markup_util.eo',
+ 'efl_gfx_stack.eo',
+ 'efl_gfx_view.eo',
+ 'efl_gfx_buffer.eo',
+ 'efl_gfx_path.eo',
+ 'efl_gfx_shape.eo',
+ 'efl_gfx_gradient.eo',
+ 'efl_gfx_gradient_linear.eo',
+ 'efl_gfx_gradient_radial.eo',
+ 'efl_gfx_filter.eo',
+ 'efl_gfx_blur.eo',
+ 'efl_gfx_size_hint.eo',
+ 'efl_model.eo',
+ 'efl_animator.eo',
+ 'efl_orientation.eo',
+ 'efl_container.eo',
+ 'efl_content.eo',
+ 'efl_pack.eo',
+ 'efl_pack_layout.eo',
+ 'efl_pack_linear.eo',
+ 'efl_pack_table.eo',
+ 'efl_ui_base.eo',
+ 'efl_ui_direction.eo',
+ 'efl_ui_drag.eo',
+ 'efl_ui_range.eo',
+ 'efl_ui_view.eo',
+ 'efl_ui_model_connect.eo',
+ 'efl_ui_factory.eo',
+ 'efl_ui_multi_selectable.eo',
+ 'efl_screen.eo',
+ 'efl_io_closer.eo',
+ 'efl_io_positioner.eo',
+ 'efl_io_reader.eo',
+ 'efl_io_sizer.eo',
+ 'efl_io_writer.eo',
+ 'efl_io_buffer.eo',
+ 'efl_io_queue.eo',
+ 'efl_observer.eo',
+ 'efl_observable.eo',
+ 'efl_ui_autorepeat.eo',
+ 'efl_ui_format.eo',
+ 'efl_gfx_color_class.eo',
+ 'efl_gfx_text_class.eo',
+ 'efl_gfx_size_class.eo',
+]
+
+eolian_include_directories += ['-I', join_paths(meson.source_root(), 'src', 'lib', 'evas', 'canvas')]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'interfaces'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+pub_eo_types_files = [
+ 'efl_gfx_types.eot',
+ 'efl_ui_types.eot',
+ 'efl_input_types.eot',
+ 'efl_types.eot',
+ 'efl_text_types.eot',
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'interfaces'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+pub_eo_files = files(pub_eo_files + pub_legacy_eo_files + pub_eo_types_files)
+
+efl_src += files([
+ 'efl_interfaces_main.c',
+ 'efl_model_common.c',
+ 'efl_gfx_path.c',
+ 'efl_gfx_shape.c',
+ 'efl_gfx_color.c',
+ 'efl_input_device.c',
+ 'efl_io_closer.c',
+ 'efl_io_positioner.c',
+ 'efl_io_reader.c',
+ 'efl_io_sizer.c',
+ 'efl_io_writer.c',
+ 'efl_io_buffer.c',
+ 'efl_io_queue.c',
+ 'efl_observer.c',
+ 'efl_file.c',
+ 'efl_ui_format.c',
+ 'efl_text_markup_util.c',
+])
+
+#efl_header_src += files([
+# 'efl_common_internal.h'
+#])
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/efl/meson.build b/src/lib/efl/meson.build
new file mode 100644
index 0000000000..75acef3b54
--- /dev/null
+++ b/src/lib/efl/meson.build
@@ -0,0 +1,33 @@
+efl_deps = []
+efl_pub_deps = [eo]
+
+efl_header_src = [
+ 'Efl.h',
+ 'Efl_Model_Common.h'
+]
+
+efl_src = []
+
+subdir('interfaces')
+
+efl_lib = library('efl',
+ efl_src, pub_eo_file_target,
+ dependencies: [eina, eo, m],
+ install: true,
+ version : meson.project_version()
+)
+
+efl = declare_dependency(
+ include_directories: [include_directories('.'), config_dir],
+ link_with: efl_lib,
+ dependencies: efl_deps + efl_pub_deps,
+ sources : pub_eo_file_target
+)
+
+install_data(pub_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(efl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efl_wl/meson.build b/src/lib/efl_wl/meson.build
new file mode 100644
index 0000000000..35f20ec404
--- /dev/null
+++ b/src/lib/efl_wl/meson.build
@@ -0,0 +1,32 @@
+efl_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, eo, efl, eina]
+efl_wl_pub_deps = [evas, dependency('wayland-server', version : '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0')]
+
+if (get_option('x11'))
+ efl_wl_deps += [ecore_x]
+ efl_wl_pub_deps += [dependency('xkbcommon-x11')]
+endif
+
+efl_wl_src = [
+ 'dmabuf.c',
+ 'efl_wl.c'
+]
+efl_wl_header_src = ['Efl_Wl.h']
+
+
+efl_wl_lib = library('efl_wl',
+ efl_wl_src,
+ dependencies: [m, dl] + efl_wl_deps + efl_wl_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ version : meson.project_version()
+)
+
+efl_wl = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efl_wl_lib,
+ dependencies: efl_wl_pub_deps,
+)
+
+install_headers(efl_wl_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/efreet/meson.build b/src/lib/efreet/meson.build
new file mode 100644
index 0000000000..fc4a232c38
--- /dev/null
+++ b/src/lib/efreet/meson.build
@@ -0,0 +1,96 @@
+efreet_header_src = [
+ 'Efreet.h',
+ 'efreet_base.h',
+ 'efreet_desktop.h',
+ 'efreet_icon.h',
+ 'efreet_ini.h',
+ 'efreet_menu.h',
+ 'efreet_utils.h',
+ 'efreet_uri.h',
+ 'Efreet_Mime.h',
+ 'Efreet_Trash.h'
+]
+
+efreet_src = [
+ 'efreet.c',
+ 'efreet_base.c',
+ 'efreet_icon.c',
+ 'efreet_xml.c',
+ 'efreet_ini.c',
+ 'efreet_desktop.c',
+ 'efreet_desktop_command.c',
+ 'efreet_menu.c',
+ 'efreet_utils.c',
+ 'efreet_uri.c',
+ 'efreet_cache.c',
+ 'efreet_private.h',
+ 'efreet_xml.h',
+ 'efreet_cache_private.h'
+]
+
+efreet_deps = [eet, ecore, ecore_con, ecore_file, eo, efl, eina, emile, ecore_ipc, buildsystem,intl]
+efreet_pub_deps = [eina, eo, efl]
+
+efreet_lib = library('efreet',
+ efreet_src,
+ dependencies: efreet_pub_deps + [m] + efreet_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : [package_c_args, '-DDATA_DIR="'+dir_data+'"'],
+ version : meson.project_version()
+)
+
+efreet = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_lib,
+ dependencies: efreet_pub_deps,
+)
+
+efreet_mime_lib = library('efreet_mime',
+ 'efreet_mime.c',
+ dependencies: efreet_pub_deps + [m, efreet, efreet_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+
+efreet_mime = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_mime_lib,
+ dependencies: efreet_pub_deps
+)
+
+efreet_trash_lib = library('efreet_trash',
+ 'efreet_trash.c',
+ dependencies: efreet_pub_deps + [efreet, efreet_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+efreet_trash = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: efreet_trash_lib,
+ dependencies: efreet_pub_deps,
+)
+
+install_headers(efreet_header_src,
+ install_dir : dir_package_include,
+)
+
+pkgconfig.generate(efreet_mime_lib,
+ name : 'efreet-mime',
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : [tmp_deps] + tmp_pub_deps,
+)
+
+pkgconfig.generate(efreet_trash_lib,
+ name : 'efreet-trash',
+ subdirs : package_version_name,
+ version : version_major + '.' + version_minor,
+ libraries : [tmp_deps] + tmp_pub_deps,
+)
diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
new file mode 100644
index 0000000000..1d3bd51bed
--- /dev/null
+++ b/src/lib/eina/meson.build
@@ -0,0 +1,398 @@
+eina_deps = []
+eina_pub_deps = [thread_dep]
+
+public_sub_headers = [
+'eina_promise.h',
+'eina_safety_checks.h',
+'eina_error.h',
+'eina_debug.h',
+'eina_debug_private.h',
+'eina_log.h',
+'eina_inline_log.x',
+'eina_fp.h',
+'eina_inline_f32p32.x',
+'eina_inline_f16p16.x',
+'eina_inline_f8p24.x',
+'eina_inline_fp.x',
+'eina_hash.h',
+'eina_inline_hash.x',
+'eina_lalloc.h',
+'eina_clist.h',
+'eina_inline_clist.x',
+'eina_inarray.h',
+'eina_inlist.h',
+'eina_inline_inlist.x',
+'eina_list.h',
+'eina_file.h',
+'eina_inline_file.x',
+'eina_mempool.h',
+'eina_module.h',
+'eina_rectangle.h',
+'eina_types.h',
+'eina_array.h',
+'eina_counter.h',
+'eina_inline_array.x',
+'eina_magic.h',
+'eina_stringshare.h',
+'eina_binshare.h',
+'eina_binbuf.h',
+'eina_ustringshare.h',
+'eina_inline_stringshare.x',
+'eina_inline_ustringshare.x',
+'eina_inline_list.x',
+'eina_accessor.h',
+'eina_convert.h',
+'eina_rbtree.h',
+'eina_benchmark.h',
+'eina_inline_rbtree.x',
+'eina_inline_mempool.x',
+'eina_inline_rectangle.x',
+'eina_inline_trash.x',
+'eina_thread.h',
+'eina_trash.h',
+'eina_iterator.h',
+'eina_main.h',
+'eina_cpu.h',
+'eina_inline_cpu.x',
+'eina_sched.h',
+'eina_tiler.h',
+'eina_hamster.h',
+'eina_matrixsparse.h',
+'eina_inline_tiler.x',
+'eina_str.h',
+'eina_inline_str.x',
+'eina_strbuf.h',
+'eina_ustrbuf.h',
+'eina_unicode.h',
+'eina_quadtree.h',
+'eina_simple_xml_parser.h',
+'eina_lock.h',
+'eina_prefix.h',
+'eina_refcount.h',
+'eina_mmap.h',
+'eina_xattr.h',
+'eina_value.h',
+'eina_inline_value.x',
+'eina_value_util.h',
+'eina_inline_value_util.x',
+'eina_inline_lock_barrier.x',
+'eina_inline_lock_posix.x',
+'eina_tmpstr.h',
+'eina_alloca.h',
+'eina_cow.h',
+'eina_inline_unicode.x',
+'eina_thread_queue.h',
+'eina_matrix.h',
+'eina_quad.h',
+'eina_crc.h',
+'eina_inline_crc.x',
+'eina_evlog.h',
+'eina_util.h',
+'eina_inline_util.x',
+'eina_quaternion.h',
+'eina_vector.h',
+'eina_inline_vector.x',
+'eina_bezier.h',
+'eina_safepointer.h',
+'eina_inline_safepointer.x',
+'eina_slice.h',
+'eina_inline_slice.x',
+'eina_inline_modinfo.x',
+'eina_freeq.h',
+'eina_slstr.h',
+'eina_vpath.h',
+]
+
+public_headers = [
+ 'Eina.h'
+]
+
+sources = [
+'eina_abi.c',
+'eina_accessor.c',
+'eina_array.c',
+'eina_benchmark.c',
+'eina_binbuf.c',
+'eina_binshare.c',
+'eina_convert.c',
+'eina_counter.c',
+'eina_cow.c',
+'eina_cpu.c',
+'eina_crc.c',
+'eina_debug.c',
+'eina_debug_bt.c',
+'eina_debug_bt_file.c',
+'eina_debug_chunk.c',
+'eina_debug_thread.c',
+'eina_debug_cpu.c',
+'eina_debug_timer.c',
+'eina_error.c',
+'eina_evlog.c',
+'eina_file_common.h',
+'eina_file_common.c',
+'eina_fp.c',
+'eina_hamster.c',
+'eina_hash.c',
+'eina_inarray.c',
+'eina_inlist.c',
+'eina_iterator.c',
+'eina_lalloc.c',
+'eina_list.c',
+'eina_lock.c',
+'eina_log.c',
+'eina_magic.c',
+'eina_main.c',
+'eina_matrix.c',
+'eina_matrixsparse.c',
+'eina_mempool.c',
+'eina_mmap.c',
+'eina_module.c',
+'eina_prefix.c',
+'eina_promise.c',
+'eina_promise_private.h',
+'eina_quad.c',
+'eina_quadtree.c',
+'eina_rbtree.c',
+'eina_rectangle.c',
+'eina_safety_checks.c',
+'eina_sched.c',
+'eina_share_common.c',
+'eina_simple_xml_parser.c',
+'eina_str.c',
+'eina_strbuf.c',
+'eina_strbuf_common.c',
+'eina_stringshare.c',
+'eina_thread.c',
+'eina_thread_queue.c',
+'eina_tiler.c',
+'eina_tmpstr.c',
+'eina_unicode.c',
+'eina_ustrbuf.c',
+'eina_ustringshare.c',
+'eina_util.c',
+'eina_value.c',
+'eina_value_util.c',
+'eina_xattr.c',
+'eina_private.h',
+'eina_share_common.h',
+'eina_strbuf_common.h',
+'eina_quaternion.c',
+'eina_bezier.c',
+'eina_safepointer.c',
+'eina_freeq.c',
+'eina_slstr.c',
+'eina_vpath.c',
+'eina_vpath_xdg.c'
+]
+
+if target_machine.system() == 'cygwin'
+ sources += 'eina_file_win32.c'
+else
+ sources += 'eina_file.c'
+endif
+
+eina_config = configuration_data()
+
+if get_option('buildtype') == 'plain'
+ with_max_log_level=-1
+ stringshare_usage=false
+ use_valgrind=true
+ debug_malloc=false
+ debug_threads=false
+ default_mempool=false
+ want_cow_magic=false
+elif get_option('buildtype') == 'debug'
+ with_max_log_level=-1
+ stringshare_usage=true
+ use_valgrind=true
+ debug_malloc=true
+ debug_threads=true
+ default_mempool=true
+ want_cow_magic=true
+elif get_option('buildtype') == 'release'
+ with_max_log_level=3
+ stringshare_usage=false
+ use_valgrind=false
+ debug_malloc=false
+ debug_threads=false
+ default_mempool=false
+ want_cow_magic=false
+endif
+
+if with_max_log_level != -1
+ config_h.set('EINA_LOG_LEVEL_MAXIMUM', with_max_log_level)
+endif
+
+if stringshare_usage
+ config_h.set('EINA_STRINGSHARE_USAGE', 1)
+endif
+
+if use_valgrind
+ valgrind = dependency('valgrind', required: false)
+ if valgrind.found() == false
+ config_h.set('NVALGRIND', 1)
+ else
+ config_h.set('HAVE_VALGRIND', 1)
+ endif
+ eina_deps += valgrind
+else
+ config_h.set('NVALGRIND', 1)
+ valgrind = []
+endif
+
+if debug_malloc
+ config_h.set('EINA_DEBUG_MALLOC', 1)
+endif
+
+if want_cow_magic
+ config_h.set('EINA_COW_MAGIC_ON', 1)
+endif
+
+if get_option('eina-magic-debug')
+ eina_config.set('EINA_MAGIC_DEBUG', '1')
+endif
+
+if default_mempool
+ eina_config.set('EINA_DEFAULT_MEMPOOL', '1')
+endif
+
+if get_option('systemd') == true
+ systemd = dependency('libsystemd')
+ eina_deps += systemd
+ config_h.set('HAVE_SYSTEMD', '1')
+else
+ systemd = []
+endif
+
+
+eina_config.set('EINA_SAFETY_CHECKS', '1')
+eina_config.set('EINA_HAVE_THREADS', '1')
+
+
+if cc.has_header_symbol('pthread.h', 'pthread_barrier_init')
+ eina_config.set('EINA_HAVE_PTHREAD_BARRIER', '1')
+endif
+
+if target_machine.system() == 'linux'
+ pthread_np_header_file = 'pthread.h'
+ pthread_setname_np_api = 'pthread_setname_np'
+ pthread_args = '-D_GNU_SOURCE'
+else
+ pthread_np_header_file = 'pthread_np.h'
+ pthread_setname_np_api = 'pthread_set_name_np'
+ pthread_args = []
+endif
+
+if cc.has_header_symbol(pthread_np_header_file, pthread_setname_np_api, args : pthread_args)
+ eina_config.set('EINA_HAVE_PTHREAD_SETNAME', '1')
+endif
+
+if cc.has_header_symbol(pthread_np_header_file, 'pthread_attr_setaffinity_np', args : pthread_args)
+ eina_config.set('EINA_HAVE_PTHREAD_AFFINITY', '1')
+endif
+# FIXME the author of eina_debug probebly never ran with EINA_HAVE_DEBUG_THREADS
+# however eina debug decides to init that lock and never frees it. which means
+# the code in eina_main.c will not work in the way it currently is there.
+
+#if debug_threads or get_option('debug-threads')
+# eina_config.set('EINA_HAVE_DEBUG_THREADS', '1')
+#endif
+
+eina_config.set('EINA_SIZEOF_WCHAR_T', cc.sizeof('wchar_t', prefix : '#include<wchar.h>'))
+
+uintptr_size = cc.sizeof('uintptr_t', prefix : '#include<stdint.h>')
+
+eina_config.set('EINA_SIZEOF_UINTPTR_T', uintptr_size)
+config_h.set('SIZEOF_UINTPTR_T', uintptr_size)
+
+if cc.has_header('dirent.h')
+ eina_config.set('EINA_CONFIGURE_HAVE_DIRENT_H', '1')
+endif
+
+eina_config.set('EINA_ENABLE_LOG', '1')
+
+if cc.has_header_symbol('alloca.h', 'alloca')
+ eina_config.set('EINA_HAVE_ALLOCA_H', '1')
+endif
+
+if cc.has_header('byteswap.h')
+ eina_config.set('EINA_HAVE_BYTESWAP_H', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_16')
+ eina_config.set('EINA_HAVE_BSWAP16', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_32')
+ eina_config.set('EINA_HAVE_BSWAP32', '1')
+endif
+
+if cc.has_header_symbol('byteswap.h', 'bswap_64')
+ eina_config.set('EINA_HAVE_BSWAP64', '1')
+endif
+
+if cc.has_header_symbol('pthread.h', 'pthread_spin_init')
+ eina_config.set('EINA_HAVE_POSIX_SPINLOCK', '1')
+endif
+
+if target_machine.system() == 'darwin'
+ if cc.has_header_symbol('libkern/OSAtomic.h', 'OSSpinLockTry')
+ eina_config.set('EINA_HAVE_OSX_SPINLOCK', 1)
+ endif
+ if cc.has_header_symbol('mach/task.h', 'semaphore_create')
+ eina_config.set('EINA_HAVE_OSX_SEMAPHORE', 1)
+ endif
+
+endif
+
+eina_config_file = configure_file(
+ output: 'eina_config.h',
+ configuration: eina_config,
+ install: true)
+
+public_headers += eina_config_file
+
+unwind = dependency('libunwind-generic', required: false)
+if unwind.found()
+ config_h.set('HAVE_UNWIND', 1)
+ eina_deps += unwind
+endif
+
+#for the case that the iconv library is not part of libc but rather libiconv or smth. like that
+iconv = dependency('iconv', required: false)
+if iconv.found() == false
+ iconv = cc.find_library('iconv', required: false)
+endif
+
+execinfo = cc.find_library('execinfo', required: false)
+
+eina_lib = library('eina', sources,
+ include_directories : config_dir,
+ dependencies: [m, rt, dl, execinfo, iconv, eina_deps, thread_dep, eina_mem_pools],
+ install: true,
+ version : meson.project_version()
+)
+
+
+eina = declare_dependency(
+ include_directories: [include_directories('.')] + config_dir,
+ dependencies : eina_pub_deps + eina_deps,
+ link_with: eina_lib,
+)
+
+install_headers(public_headers,
+ install_dir : dir_package_include,
+)
+
+install_headers(public_sub_headers,
+ install_dir : join_paths(dir_package_include, 'eina')
+)
+
+automatic_pkgfile = false
+
+pkgconfig.generate(eina_lib,
+ name : 'eina',
+ subdirs : ['eina-'+version_major, 'efl-'+version_major, join_paths('eina-'+version_major, 'eina')],
+ version : version_major + '.' + version_minor,
+ libraries : eina_pub_deps,
+)
diff --git a/src/lib/eio/meson.build b/src/lib/eio/meson.build
new file mode 100644
index 0000000000..2c685b1fba
--- /dev/null
+++ b/src/lib/eio/meson.build
@@ -0,0 +1,90 @@
+pub_eo_file_target = []
+
+pub_eo_files = [
+ 'eio_model.eo',
+ 'efl_io_manager.eo',
+ 'eio_sentry.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(
+ meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+pub_eo_types_files = []
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eio_header_src = [
+ 'Eio.h',
+ 'Eio_Legacy.h',
+ 'Eio_Eo.h',
+ 'eio_inline_helper.x'
+]
+
+eio_src = [
+ 'eio_dir.c',
+ 'eio_eet.c',
+ 'eio_file.c',
+ 'efl_io_manager.c',
+ 'eio_sentry.c',
+ 'eio_main.c',
+ 'eio_map.c',
+ 'eio_monitor.c',
+ 'eio_monitor_poll.c',
+ 'eio_single.c',
+ 'eio_xattr.c',
+ 'eio_model.c',
+ 'eio_model_private.h',
+ 'eio_private.h',
+ 'eio_sentry_private.h'
+]
+
+linker_args = []
+
+if target_machine.system() == 'windows'
+ eio_src += ['eio_monitor_win32.c']
+elif target_machine.system() == 'darwin'
+ eio_src += ['eio_monitor_cocoa.c']
+ linker_args = [['-framework', 'CoreServices']]
+elif cc.has_header('sys/inotify.h')
+ eio_src += ['eio_monitor_inotify.c']
+elif target_machine.system() == 'bsd'
+ eio_src += ['eio_monitor_kevent.c']
+endif
+
+eio_deps = [ecore, ecore_file, eet, eo, eina, efl, emile, efreet_mime]
+eio_pub_deps = [eina, eet]
+
+eio_lib = library('eio',
+ eio_src, pub_eo_file_target,
+ dependencies: [eina, eo, efl, m, eio_deps],
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ link_args : linker_args,
+ version : meson.project_version()
+)
+
+eio = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eio_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eio_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eio_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eldbus/meson.build b/src/lib/eldbus/meson.build
new file mode 100644
index 0000000000..57f2981c4a
--- /dev/null
+++ b/src/lib/eldbus/meson.build
@@ -0,0 +1,114 @@
+eldbus_deps = [ecore]
+eldbus_pub_deps = [eina, eo, efl]
+
+pub_eo_files = [
+ 'eldbus_model_connection.eo',
+ 'eldbus_model_object.eo',
+ 'eldbus_model_proxy.eo',
+ 'eldbus_model_method.eo',
+ 'eldbus_model_arguments.eo',
+ 'eldbus_model_signal.eo',
+ 'eldbus_model.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'eldbus_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eldbus_header_src = [
+ 'Eldbus.h',
+ 'eldbus_connection.h',
+ 'eldbus_freedesktop.h',
+ 'eldbus_message.h',
+ 'eldbus_object.h',
+ 'eldbus_pending.h',
+ 'eldbus_proxy.h',
+ 'eldbus_service.h',
+ 'eldbus_signal_handler.h',
+ 'eldbus_message_helper.h',
+ 'eldbus_introspection.h',
+ 'Eldbus_Model.h',
+ 'eldbus_message_eina_value.h'
+]
+
+eldbus_src = [
+ 'eldbus_private.h',
+ 'eldbus_private_types.h',
+ 'eldbus_model_private.h',
+ 'eldbus_model_proxy_private.h',
+ 'eldbus_model_object_private.h',
+ 'eldbus_model_arguments_private.h',
+ 'eldbus_model_connection_private.h',
+ 'eldbus_model_signal_private.h',
+ 'eldbus_model_method_private.h',
+ 'eldbus_proxy.c',
+ 'eldbus_core.c',
+ 'eldbus_message.c',
+ 'eldbus_object.c',
+ 'eldbus_pending.c',
+ 'eldbus_freedesktop.c',
+ 'eldbus_service.c',
+ 'eldbus_signal_handler.c',
+ 'eldbus_message_helper.c',
+ 'eldbus_message_to_eina_value.c',
+ 'eldbus_message_from_eina_value.c',
+ 'eldbus_model.c',
+ 'eldbus_model_connection.c',
+ 'eldbus_model_object.c',
+ 'eldbus_model_proxy.c',
+ 'eldbus_model_method.c',
+ 'eldbus_model_arguments.c',
+ 'eldbus_model_signal.c',
+ 'eldbus_introspection.c'
+]
+
+eldbus_deps += dependency('dbus-1')
+
+eldbus_lib = library('eldbus',
+ eldbus_src, pub_eo_file_target,
+ dependencies: eldbus_pub_deps + eldbus_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+eldbus = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eldbus_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eldbus_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eldbus_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elementary/meson.build b/src/lib/elementary/meson.build
new file mode 100644
index 0000000000..bcc880771e
--- /dev/null
+++ b/src/lib/elementary/meson.build
@@ -0,0 +1,951 @@
+pub_legacy_eo_files = [
+ 'efl_ui_button_legacy.eo',
+ 'efl_ui_check_legacy.eo',
+ 'efl_ui_radio_legacy.eo',
+ 'efl_ui_bg_widget_legacy.eo',
+ 'efl_ui_video_legacy.eo',
+ 'efl_ui_frame_legacy.eo',
+ 'efl_ui_panes_legacy.eo',
+ 'efl_ui_image_zoomable_legacy.eo',
+ 'efl_ui_flip_legacy.eo',
+ 'efl_ui_win_legacy.eo',
+ 'efl_ui_image_legacy.eo',
+ 'efl_ui_progressbar_legacy.eo',
+ 'efl_ui_clock_legacy.eo',
+ 'efl_ui_layout_legacy.eo',
+ 'elm_code_widget_legacy.eo',
+ 'efl_ui_win_socket_legacy.eo',
+ 'efl_ui_win_inlined_legacy.eo',
+ 'elm_interface_fileselector.eo',
+ 'elm_calendar.eo',
+ 'elm_calendar_item.eo',
+ 'elm_clock.eo',
+ 'elm_colorselector.eo',
+ 'elm_combobox.eo',
+ 'elm_conformant.eo',
+ 'elm_ctxpopup.eo',
+ 'elm_dayselector.eo',
+ 'elm_entry.eo',
+ 'elm_fileselector.eo',
+ 'elm_gengrid.eo',
+ 'elm_gengrid_pan.eo',
+ 'elm_genlist.eo',
+ 'elm_genlist_pan.eo',
+ 'elm_gesture_layer.eo',
+ 'elm_glview.eo',
+ 'elm_hover.eo',
+ 'elm_index.eo',
+ 'elm_label.eo',
+ 'elm_list.eo',
+ 'elm_map.eo',
+ 'elm_map_pan.eo',
+ 'elm_menu.eo',
+ 'elm_notify.eo',
+ 'elm_panel.eo',
+ 'elm_player.eo',
+ 'elm_plug.eo',
+ 'elm_popup.eo',
+ 'elm_route.eo',
+ 'elm_scroller.eo',
+ 'elm_sys_notify_interface.eo',
+ 'elm_sys_notify.eo',
+ 'elm_sys_notify_dbus.eo',
+ 'elm_systray.eo',
+ 'elm_color_item.eo',
+ 'elm_dayselector_item.eo',
+ 'elm_flipselector_item.eo',
+ 'elm_menu_item.eo',
+ 'elm_ctxpopup_item.eo',
+ 'elm_index_item.eo',
+ 'elm_widget_item_static_focus.eo',
+ 'elm_genlist_item.eo',
+ 'elm_gengrid_item.eo',
+ 'elm_list_item.eo',
+ 'elm_popup_item.eo',
+ 'elm_ctxpopup_part.eo',
+ 'elm_dayselector_part.eo',
+ 'elm_entry_part.eo',
+ 'elm_fileselector_entry_part.eo',
+ 'elm_flip_part.eo',
+ 'elm_hover_part.eo',
+ 'elm_mapbuf_part.eo',
+ 'elm_naviframe_part.eo',
+ 'elm_notify_part.eo',
+ 'elm_panel_part.eo',
+ 'elm_player_part.eo',
+ 'elm_popup_part.eo',
+ 'elm_scroller_part.eo',
+ 'elm_label_part.eo',
+ 'elm_actionslider_part.eo',
+ 'elm_bubble_part.eo',
+ 'elm_fileselector_part.eo',
+ 'elm_access.eo',
+ 'elm_actionslider.eo',
+ 'elm_box.eo',
+ 'elm_bubble.eo',
+ 'elm_diskselector.eo',
+ 'elm_diskselector_item.eo',
+ 'elm_fileselector_button.eo',
+ 'elm_fileselector_entry.eo',
+ 'elm_flipselector.eo',
+ 'elm_grid.eo',
+ 'elm_hoversel.eo',
+ 'elm_hoversel_item.eo',
+ 'elm_icon.eo',
+ 'elm_inwin.eo',
+ 'elm_mapbuf.eo',
+ 'elm_naviframe.eo',
+ 'elm_naviframe_item.eo',
+ 'elm_photo.eo',
+ 'elm_prefs.eo',
+ 'elm_segment_control.eo',
+ 'elm_segment_control_item.eo',
+ 'elm_separator.eo',
+ 'elm_slideshow.eo',
+ 'elm_slideshow_item.eo',
+ 'elm_table.eo',
+ 'elm_thumb.eo',
+ 'efl_ui_view_list_precise_layouter.eo'
+]
+
+pub_eo_file_target = []
+
+priv_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_ui_widget.eo',
+ 'efl_ui_bg.eo',
+ 'efl_ui_bg_widget.eo',
+ 'efl_ui_button.eo',
+ 'efl_ui_calendar.eo',
+ 'efl_ui_calendar_item.eo',
+ 'efl_ui_check.eo',
+ 'efl_ui_flip.eo',
+ 'efl_ui_frame.eo',
+ 'efl_ui_stack.eo',
+ 'efl_ui_image.eo',
+ 'efl_ui_image_zoomable.eo',
+ 'efl_ui_layout_object.eo',
+ 'efl_ui_nstate.eo',
+ 'efl_ui_navigation_bar.eo',
+ 'efl_ui_navigation_bar_part.eo',
+ 'efl_ui_navigation_bar_part_back_button.eo',
+ 'efl_ui_navigation_layout.eo',
+ 'efl_ui_panes.eo',
+ 'efl_ui_progressbar.eo',
+ 'efl_ui_radio.eo',
+ 'efl_ui_slider.eo',
+ 'efl_ui_slider_interval.eo',
+ 'efl_ui_spin.eo',
+ 'efl_ui_spin_button.eo',
+ 'efl_ui_datepicker.eo',
+ 'efl_ui_timepicker.eo',
+ 'efl_ui_tags.eo',
+ 'efl_ui_video.eo',
+ 'efl_ui_win.eo',
+ 'efl_ui_win_inlined.eo',
+ 'efl_ui_win_socket.eo',
+ 'efl_ui_box.eo',
+ 'efl_ui_box_flow.eo',
+ 'efl_ui_box_stack.eo',
+ 'efl_ui_table.eo',
+ 'efl_ui_table_static.eo',
+ 'efl_text_interactive.eo',
+ 'efl_ui_text.eo',
+ 'efl_ui_popup.eo',
+ 'efl_ui_popup_part_backwall.eo',
+ 'efl_ui_popup_alert.eo',
+ 'efl_ui_popup_alert_part.eo',
+ 'efl_ui_popup_alert_scroll.eo',
+ 'efl_ui_popup_alert_scroll_part.eo',
+ 'efl_ui_popup_alert_text.eo',
+ 'efl_ui_popup_alert_text_part.eo',
+ 'efl_ui_popup_anchor.eo',
+ 'efl_ui_text_editable.eo',
+ 'efl_ui_text_async.eo',
+ 'efl_ui_text_factory_images.eo',
+ 'efl_ui_text_factory_emoticons.eo',
+ 'efl_ui_text_factory_fallback.eo',
+ 'efl_ui_textpath.eo',
+ 'efl_ui_translatable.eo',
+ 'efl_ui_clock.eo',
+ 'efl_ui_cursor.eo',
+ 'efl_ui_image_factory.eo',
+ 'efl_ui_focus_manager.eo',
+ 'efl_ui_focus_manager_calc.eo',
+ 'efl_ui_focus_manager_sub.eo',
+ 'efl_ui_focus_manager_root_focus.eo',
+ 'efl_ui_focus_object.eo',
+ 'efl_ui_focus_layer.eo',
+ 'efl_ui_focus_composition.eo',
+ 'efl_ui_focus_util.eo',
+ 'efl_ui_flip_part.eo',
+ 'efl_ui_layout_factory.eo',
+ 'efl_ui_layout_part.eo',
+ 'efl_ui_layout_part_box.eo',
+ 'efl_ui_layout_part_content.eo',
+ 'efl_ui_layout_part_text.eo',
+ 'efl_ui_layout_part_table.eo',
+ 'efl_ui_layout_part_bg.eo',
+ 'efl_ui_layout_part_legacy.eo',
+ 'efl_ui_view_list.eo',
+ 'efl_ui_view_list_model.eo',
+ 'efl_ui_view_list_pan.eo',
+ 'efl_ui_view_list_segarray.eo',
+ 'efl_ui_view_list_relayout.eo',
+ 'efl_ui_item.eo',
+ 'efl_ui_list_item.eo',
+ 'efl_ui_list_default_item_part_icon.eo',
+ 'efl_ui_list_default_item_part_end.eo',
+ 'efl_ui_list_default_item.eo',
+ 'efl_ui_list_empty_item.eo',
+ 'efl_ui_list.eo',
+ 'efl_ui_panes_part.eo',
+ 'efl_ui_progressbar_part.eo',
+ 'elm_slider.eo',
+ 'elm_slider_part_indicator.eo',
+ 'efl_ui_textpath_part.eo',
+ 'efl_ui_widget_part.eo',
+ 'efl_ui_widget_part_bg.eo',
+ 'efl_ui_widget_part_shadow.eo',
+ 'efl_ui_win_part.eo',
+ 'efl_ui_scroller.eo',
+ 'efl_ui_scroll_manager.eo',
+ 'efl_ui_pan.eo',
+ 'efl_access_object.eo',
+ 'efl_access_action.eo',
+ 'efl_access_component.eo',
+ 'efl_access_editable_text.eo',
+ 'efl_access_selection.eo',
+ 'efl_access_text.eo',
+ 'efl_access_value.eo',
+ 'efl_access_widget_action.eo',
+ 'efl_access_window.eo',
+ 'efl_config_global.eo',
+ 'elm_code_widget.eo',
+ 'efl_selection.eo',
+ 'efl_ui_dnd.eo',
+ 'efl_ui_dnd_container.eo',
+ 'efl_ui_focus_manager_window_root.eo',
+ 'efl_ui_pager.eo',
+ 'efl_page_transition.eo',
+ 'efl_page_transition_scroll.eo',
+ 'efl_page_indicator.eo',
+ 'efl_page_indicator_icon.eo',
+ 'efl_ui_tab_pager.eo',
+ 'efl_ui_tab_bar.eo',
+ 'efl_ui_tab_page.eo',
+ 'efl_ui_tab_page_part_tab.eo',
+ 'efl_ui_widget_focus_manager.eo',
+ 'efl_ui_legacy.eo',
+ 'efl_ui_button_legacy_part.eo',
+ 'efl_ui_radio_legacy_part.eo',
+ 'efl_ui_check_legacy_part.eo',
+ 'efl_ui_progressbar_legacy_part.eo',
+ 'elm_spinner.eo',
+ 'elm_multibuttonentry.eo',
+ 'elm_multibuttonentry_item.eo',
+ 'elm_multibuttonentry_part.eo',
+ 'elm_interface_scrollable.eo',
+ 'elm_atspi_bridge.eo',
+ 'elm_atspi_app_object.eo',
+ 'efl_ui_image_zoomable_pan.eo',
+ 'elm_pan.eo',
+ 'elm_toolbar.eo',
+ 'elm_toolbar_item.eo',
+ 'elm_view_list.eo',
+ 'elm_view_form.eo',
+ 'elm_web.eo',
+ 'elm_widget_item.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'elm_general.eot',
+ 'efl_ui.eot',
+ 'efl_ui_view_list_types.eot',
+ 'efl_selection_types.eot',
+ 'efl_ui_dnd_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+priv_eo_files = [
+ 'efl_ui_internal_text_interactive.eo',
+ 'efl_ui_focus_composition_adapter.eo',
+ 'efl_ui_focus_parent_provider.eo',
+ 'efl_ui_focus_parent_provider_standard.eo',
+ 'efl_ui_focus_parent_provider_gen.eo',
+ 'efl_ui_model_state.eo',
+ 'efl_selection_manager.eo',
+ 'efl_datetime_manager.eo',
+]
+
+priv_eo_file_target = []
+foreach eo_file : priv_eo_files
+ priv_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+elementary_headers_unstable = [
+ 'elm_gen_common.h',
+ 'elm_atspi_bridge.h',
+ 'efl_access_object.h',
+ 'efl_access_text.h',
+ 'efl_access_widget_action.h',
+ 'efl_access_window.h',
+ 'elm_interface_fileselector.h',
+ 'elm_interface_scrollable.h',
+ 'elm_interfaces.h',
+ 'elm_widget.h',
+ 'elm_widget_actionslider.h',
+ 'elm_widget_box.h',
+ 'elm_widget_bubble.h',
+ 'efl_ui_button_private.h',
+ 'efl_ui_bg_widget_private.h',
+ 'elm_widget_calendar.h',
+ 'efl_ui_calendar_private.h',
+ 'efl_ui_check_private.h',
+ 'elm_widget_clock.h',
+ 'elm_widget_colorselector.h',
+ 'elm_widget_conform.h',
+ 'elm_widget_container.h',
+ 'elm_widget_combobox.h',
+ 'elm_widget_ctxpopup.h',
+ 'elm_widget_dayselector.h',
+ 'elm_widget_diskselector.h',
+ 'elm_widget_entry.h',
+ 'elm_widget_fileselector.h',
+ 'elm_widget_fileselector_button.h',
+ 'elm_widget_fileselector_entry.h',
+ 'efl_ui_widget_flip.h',
+ 'elm_widget_flipselector.h',
+ 'efl_ui_widget_frame.h',
+ 'efl_ui_stack_private.h',
+ 'elm_widget_gengrid.h',
+ 'elm_widget_genlist.h',
+ 'elm_widget_glview.h',
+ 'elm_widget_grid.h',
+ 'elm_widget_hover.h',
+ 'elm_widget_hoversel.h',
+ 'elm_widget_icon.h',
+ 'efl_ui_widget_image.h',
+ 'efl_ui_popup_private.h',
+ 'efl_ui_popup_alert_private.h',
+ 'efl_ui_popup_alert_scroll_private.h',
+ 'efl_ui_popup_alert_text_private.h',
+ 'efl_ui_popup_anchor_private.h',
+ 'elm_widget_index.h',
+ 'elm_widget_inwin.h',
+ 'elm_widget_label.h',
+ 'elm_widget_layout.h',
+ 'elm_widget_list.h',
+ 'elm_widget_map.h',
+ 'elm_widget_mapbuf.h',
+ 'elm_widget_menu.h',
+ 'elm_widget_multibuttonentry.h',
+ 'elm_widget_naviframe.h',
+ 'efl_ui_navigation_bar_private.h',
+ 'efl_ui_navigation_layout_private.h',
+ 'elm_widget_notify.h',
+ 'elm_widget_panel.h',
+ 'efl_ui_panes_private.h',
+ 'elm_widget_photo.h',
+ 'efl_ui_image_zoomable_private.h',
+ 'elm_widget_player.h',
+ 'elm_widget_plug.h',
+ 'elm_widget_popup.h',
+ 'elm_widget_prefs.h',
+ 'efl_ui_progressbar_private.h',
+ 'efl_ui_radio_private.h',
+ 'elm_widget_route.h',
+ 'elm_widget_scroller.h',
+ 'elm_widget_segment_control.h',
+ 'elm_widget_separator.h',
+ 'elm_widget_slider.h',
+ 'efl_ui_slider_private.h',
+ 'efl_ui_slider_interval_private.h',
+ 'elm_widget_slideshow.h',
+ 'elm_widget_spinner.h',
+ 'efl_ui_spin_private.h',
+ 'efl_ui_spin_button_private.h',
+ 'efl_ui_datepicker_private.h',
+ 'efl_ui_timepicker_private.h',
+ 'efl_ui_tags_private.h',
+ 'elm_widget_table.h',
+ 'elm_widget_thumb.h',
+ 'elm_widget_toolbar.h',
+ 'efl_ui_video_private.h',
+ 'efl_ui_item_private.h',
+ 'efl_ui_list_item_private.h',
+ 'efl_ui_list_private.h',
+ 'efl_ui_view_list_private.h',
+ 'efl_ui_view_list_segarray.h',
+ 'elm_widget_web.h',
+ 'efl_ui_clock.h',
+ 'elm_code.h',
+ 'elm_code_widget_legacy.h',
+ 'elm_code_widget_selection.h',
+ 'elm_code_diff_widget.h',
+ 'elm_code_common.h',
+ 'elm_code_line.h',
+ 'elm_code_text.h',
+ 'elm_code_indent.h',
+ 'elm_code_file.h',
+ 'elm_code_parse.h',
+ 'elm_code_syntax.h',
+ 'efl_ui_widget_scroller.h',
+ 'efl_ui_widget_scroll_manager.h',
+ 'efl_ui_widget_pan.h',
+ 'efl_ui_nstate_private.h',
+ 'Efl_Ui.h',
+ 'efl_ui_widget_pager.h',
+ 'efl_page_transition.h',
+ 'efl_page_transition_scroll.h',
+ 'efl_page_indicator.h',
+ 'efl_page_indicator_icon.h',
+ 'efl_ui_tab_pager_private.h',
+ 'efl_ui_tab_bar_private.h',
+ 'efl_ui_tab_page_private.h'
+]
+
+elementary_pub_headers = [
+ 'elc_ctxpopup.h',
+ 'elc_ctxpopup_legacy.h',
+ 'elc_combobox.h',
+ 'elc_combobox_legacy.h',
+ 'elc_fileselector.h',
+ 'elc_fileselector_legacy.h',
+ 'elc_fileselector_common.h',
+ 'elc_fileselector_button.h',
+ 'elc_fileselector_button_legacy.h',
+ 'elc_fileselector_entry.h',
+ 'elc_fileselector_entry_legacy.h',
+ 'elc_hoversel.h',
+ 'elc_hoversel_legacy.h',
+ 'elc_multibuttonentry.h',
+ 'elc_multibuttonentry_eo.h',
+ 'elc_multibuttonentry_legacy.h',
+ 'elc_multibuttonentry_common.h',
+ 'elc_naviframe.h',
+ 'elc_naviframe_legacy.h',
+ 'elc_naviframe_common.h',
+ 'elc_popup.h',
+ 'elc_popup_legacy.h',
+ 'elm_access.h',
+ 'elm_actionslider.h',
+ 'elm_actionslider_legacy.h',
+ 'elm_app.h',
+ 'elm_atspi_app_object.h',
+ 'elm_authors.h',
+ 'elm_bg.h',
+ 'elm_bg_legacy.h',
+ 'elm_box.h',
+ 'elm_box_legacy.h',
+ 'elm_box_common.h',
+ 'elm_bubble.h',
+ 'elm_bubble_legacy.h',
+ 'elm_button.h',
+ 'efl_ui_button_eo.h',
+ 'elm_button_legacy.h',
+ 'elm_cache.h',
+ 'elm_calendar.h',
+ 'elm_calendar_legacy.h',
+ 'elm_calendar_common.h',
+ 'efl_ui_calendar.h',
+ 'elm_check.h',
+ 'efl_ui_check_eo.h',
+ 'elm_check_legacy.h',
+ 'elm_clock.h',
+ 'elm_clock_legacy.h',
+ 'elm_cnp.h',
+ 'elm_colorselector.h',
+ 'elm_colorselector_legacy.h',
+ 'elm_colorselector_common.h',
+ 'elm_color_class.h',
+ 'elm_config.h',
+ 'elm_conform.h',
+ 'elm_conform_legacy.h',
+ 'elm_cursor.h',
+ 'elm_datetime.h',
+ 'elm_dayselector.h',
+ 'elm_dayselector_legacy.h',
+ 'elm_debug.h',
+ 'elm_deprecated.h',
+ 'elm_diskselector.h',
+ 'elm_diskselector_common.h',
+ 'elm_diskselector_legacy.h',
+ 'elm_entry.h',
+ 'elm_entry_common.h',
+ 'elm_entry_eo.h',
+ 'elm_entry_legacy.h',
+ 'elm_finger.h',
+ 'elm_flip.h',
+ 'efl_ui_flip_eo.h',
+ 'efl_ui_flip_legacy.h',
+ 'elm_flipselector.h',
+ 'elm_flipselector_legacy.h',
+ 'elm_focus.h',
+ 'elm_focus_item.h',
+ 'elm_font.h',
+ 'elm_frame.h',
+ 'efl_ui_frame_eo.h',
+ 'efl_ui_frame_legacy.h',
+ 'elm_gen.h',
+ 'elm_general.h',
+ 'elm_gengrid.h',
+ 'elm_gengrid_common.h',
+ 'elm_gengrid_legacy.h',
+ 'elm_genlist.h',
+ 'elm_genlist_common.h',
+ 'elm_genlist_legacy.h',
+ 'elm_gesture_layer.h',
+ 'elm_gesture_layer_common.h',
+ 'elm_gesture_layer_legacy.h',
+ 'elm_getting_started.h',
+ 'elm_glview.h',
+ 'elm_glview_common.h',
+ 'elm_glview_legacy.h',
+ 'elm_grid.h',
+ 'elm_grid_legacy.h',
+ 'elm_hover.h',
+ 'elm_hover_legacy.h',
+ 'elm_icon.h',
+ 'elm_icon_legacy.h',
+ 'elm_image.h',
+ 'elm_image_eo.h',
+ 'elm_image_legacy.h',
+ 'elm_index.h',
+ 'elm_index_legacy.h',
+ 'elm_inwin.h',
+ 'elm_inwin_legacy.h',
+ 'elm_label.h',
+ 'elm_label_legacy.h',
+ 'elm_layout.h',
+ 'elm_layout_common.h',
+ 'elm_layout_legacy.h',
+ 'elm_list.h',
+ 'elm_list_legacy.h',
+ 'elm_macros.h',
+ 'elm_map.h',
+ 'elm_map_common.h',
+ 'elm_map_legacy.h',
+ 'elm_mapbuf.h',
+ 'elm_mapbuf_legacy.h',
+ 'elm_menu.h',
+ 'elm_menu_legacy.h',
+ 'elm_mirroring.h',
+ 'elm_need.h',
+ 'elm_notify.h',
+ 'elm_notify_common.h',
+ 'elm_notify_legacy.h',
+ 'efl_ui_nstate.h',
+ 'elm_object.h',
+ 'elm_object_item.h',
+ 'elm_panel.h',
+ 'elm_panel_common.h',
+ 'elm_panel_legacy.h',
+ 'elm_panes.h',
+ 'efl_ui_panes_eo.h',
+ 'elm_panes_legacy.h',
+ 'elm_photo.h',
+ 'elm_photo_legacy.h',
+ 'elm_photocam.h',
+ 'efl_ui_image_zoomable_eo.h',
+ 'elm_photocam_legacy.h',
+ 'elm_plug.h',
+ 'elm_plug_legacy.h',
+ 'elm_prefs.h',
+ 'elm_prefs_common.h',
+ 'elm_prefs_legacy.h',
+ 'elm_prefs_data.h',
+ 'elm_progressbar.h',
+ 'elm_progressbar_common.h',
+ 'efl_ui_progressbar_eo.h',
+ 'elm_progressbar_legacy.h',
+ 'elm_radio.h',
+ 'efl_ui_radio_eo.h',
+ 'elm_radio_legacy.h',
+ 'elm_route.h',
+ 'elm_route_legacy.h',
+ 'elm_scale.h',
+ 'elm_scroll.h',
+ 'elm_scroller.h',
+ 'elm_scroller_legacy.h',
+ 'elm_segment_control.h',
+ 'elm_segment_control_legacy.h',
+ 'elm_separator.h',
+ 'elm_separator_legacy.h',
+ 'elm_slider.h',
+ 'elm_slider_common.h',
+ 'elm_slider_legacy.h',
+ 'elm_slideshow.h',
+ 'elm_slideshow_common.h',
+ 'elm_slideshow_legacy.h',
+ 'elm_spinner.h',
+ 'elm_spinner_legacy.h',
+ 'elm_store.h',
+ 'elm_systray.h',
+ 'elm_systray_common.h',
+ 'elm_systray_watcher.h',
+ 'elm_sys_notify.h',
+ 'elm_table.h',
+ 'elm_table_legacy.h',
+ 'elm_theme.h',
+ 'elm_thumb.h',
+ 'elm_thumb_common.h',
+ 'elm_thumb_legacy.h',
+ 'elm_toolbar.h',
+ 'elm_toolbar_common.h',
+ 'elm_toolbar_eo.h',
+ 'elm_toolbar_legacy.h',
+ 'elm_tooltip.h',
+ 'elm_transit.h',
+ 'efl_ui_video.h',
+ 'efl_ui_video_eo.h',
+ 'efl_ui_video_legacy.h',
+ 'elm_view_list.h',
+ 'elm_view_form.h',
+ 'elm_web.h',
+ 'elm_web_common.h',
+ 'elm_web_eo.h',
+ 'elm_web_legacy.h',
+ 'elm_win.h',
+ 'elm_win_common.h',
+ 'elm_win_eo.h',
+ 'elm_win_legacy.h',
+ 'elm_helper.h',
+ 'elm_part_helper.h',
+]
+
+elementary_header_src = [
+ 'Elementary.h',
+ 'Elementary_Cursor.h'
+] + elementary_pub_headers + elementary_headers_unstable
+
+elementary_src = [
+ 'elm_priv.h',
+ 'elementary_config.h',
+ 'els_box.h',
+ 'elc_ctxpopup.c',
+ 'elc_fileselector.c',
+ 'elc_fileselector_button.c',
+ 'elc_fileselector_entry.c',
+ 'elc_hoversel.c',
+ 'elc_multibuttonentry.c',
+ 'elc_naviframe.c',
+ 'efl_ui_navigation_bar.c',
+ 'efl_ui_navigation_layout.c',
+ 'elc_player.c',
+ 'elc_popup.c',
+ 'elc_scrolled_entry.c',
+ 'elm_access.c',
+ 'elm_actionslider.c',
+ 'elm_atspi_app_object.c',
+ 'elm_atspi_bridge.c',
+ 'efl_ui_legacy.c',
+ 'efl_ui_bg.c',
+ 'efl_ui_bg_widget.c',
+ 'elm_box.c',
+ 'elm_bubble.c',
+ 'efl_ui_button.c',
+ 'elm_calendar.c',
+ 'efl_ui_calendar.c',
+ 'efl_ui_check.c',
+ 'elm_clock.c',
+ 'elm_code_line.c',
+ 'elm_code_text.c',
+ 'elm_code_indent.c',
+ 'elm_code_file.c',
+ 'elm_code_parse.c',
+ 'elm_code_syntax.c',
+ 'elm_code_widget_selection.c',
+ 'elm_code_widget.c',
+ 'elm_code_diff_widget.c',
+ 'elm_code.c',
+ 'elm_code_private.h',
+ 'elm_code_widget_private.h',
+ 'elm_colorselector.c',
+ 'elm_color_class.c',
+ 'elc_combobox.c',
+ 'elm_config.c',
+ 'elm_conform.c',
+ 'elm_datetime.c',
+ 'elm_dayselector.c',
+ 'elm_dbus_menu.c',
+ 'elm_diskselector.c',
+ 'elm_entry.c',
+ 'efl_ui_flip.c',
+ 'efl_ui_internal_text_interactive.c',
+ 'efl_ui_internal_text_interactive.h',
+ 'elm_flipselector.c',
+ 'elm_font.c',
+ 'efl_ui_frame.c',
+ 'efl_ui_stack.c',
+ 'elm_gengrid.c',
+ 'elm_genlist.c',
+ 'elm_gesture_layer.c',
+ 'elm_gesture_layer_extra_gestures.c',
+ 'elm_glview.c',
+ 'elm_grid.c',
+ 'elm_hover.c',
+ 'elm_icon.c',
+ 'efl_ui_image.c',
+ 'elm_index.c',
+ 'efl_access_object.c',
+ 'efl_access_action.c',
+ 'efl_access_component.c',
+ 'efl_access_editable_text.c',
+ 'efl_access_selection.c',
+ 'efl_access_text.c',
+ 'efl_access_value.c',
+ 'efl_access_widget_action.c',
+ 'efl_access_window.c',
+ 'elm_interface_fileselector.c',
+ 'elm_interface_scrollable.c',
+ 'elm_inwin.c',
+ 'elm_label.c',
+ 'efl_ui_layout_object.c',
+ 'efl_ui_layout_pack.c',
+ 'elm_list.c',
+ 'elm_main.c',
+ 'elm_map.c',
+ 'elm_mapbuf.c',
+ 'elm_menu.c',
+ 'elm_module.c',
+ 'elm_notify.c',
+ 'efl_ui_nstate.c',
+ 'elm_panel.c',
+ 'efl_ui_panes.c',
+ 'elm_photo.c',
+ 'efl_ui_image_zoomable.c',
+ 'elm_plug.c',
+ 'elm_prefs.c',
+ 'elm_prefs_data.c',
+ 'efl_ui_progressbar.c',
+ 'efl_ui_radio.c',
+ 'elm_route.c',
+ 'elm_scroller.c',
+ 'elm_segment_control.c',
+ 'elm_separator.c',
+ 'elm_slider.c',
+ 'efl_ui_slider.c',
+ 'efl_ui_slider_interval.c',
+ 'efl_ui_spin.c',
+ 'efl_ui_spin_button.c',
+ 'efl_ui_datepicker.c',
+ 'efl_ui_timepicker.c',
+ 'efl_ui_tags.c',
+ 'elm_slideshow.c',
+ 'elm_spinner.c',
+ 'elm_store.c',
+ 'elm_systray.c',
+ 'elm_systray_watcher.c',
+ 'elm_sys_notify_interface.c',
+ 'elm_sys_notify.c',
+ 'elm_sys_notify_dbus.c',
+ 'elm_table.c',
+ 'elm_theme.c',
+ 'elm_thumb.c',
+ 'elm_toolbar.c',
+ 'elm_transit.c',
+ 'elm_util.c',
+ 'efl_ui_video.c',
+ 'elm_view_list.c',
+ 'elm_view_form.c',
+ 'elm_web2.c',
+ 'efl_ui_widget.c',
+ 'efl_ui_win.c',
+ 'efl_ui_win_inlined.c',
+ 'efl_ui_win_socket.c',
+ 'elm_helper.c',
+ 'els_box.c',
+ 'els_cursor.c',
+ 'els_tooltip.c',
+ 'elu_ews_wm.c',
+ 'efl_ui_box.c',
+ 'efl_ui_box_flow.c',
+ 'efl_ui_box_stack.c',
+ 'efl_ui_box_layout.c',
+ 'efl_ui_box_private.h',
+ 'efl_ui_popup.c',
+ 'efl_ui_popup_alert.c',
+ 'efl_ui_popup_alert_scroll.c',
+ 'efl_ui_popup_alert_text.c',
+ 'efl_ui_popup_anchor.c',
+ 'efl_ui_table.c',
+ 'efl_ui_table_static.c',
+ 'efl_ui_table_private.h',
+ 'efl_ui_text.c',
+ 'efl_ui_text_factory_images.c',
+ 'efl_ui_text_factory_emoticons.c',
+ 'efl_ui_text_factory_fallback.c',
+ 'efl_ui_clock.c',
+ 'efl_ui_clock_private.h',
+ 'efl_ui_image_factory.c',
+ 'efl_ui_focus_manager.c',
+ 'efl_ui_focus_manager_calc.c',
+ 'efl_ui_focus_manager_sub.c',
+ 'efl_ui_focus_object.c',
+ 'efl_ui_focus_manager_root_focus.c',
+ 'efl_ui_textpath.c',
+ 'efl_ui_focus_layer.c',
+ 'efl_ui_focus_composition.c',
+ 'efl_ui_focus_parent_provider.c',
+ 'efl_ui_focus_parent_provider_standard.c',
+ 'efl_ui_focus_parent_provider_gen.c',
+ 'efl_ui_focus_util.c',
+ 'elm_widget_item_static_focus.c',
+ 'efl_ui_item.c',
+ 'efl_ui_list_item.c',
+ 'efl_ui_list_default_item.c',
+ 'efl_ui_list_empty_item.c',
+ 'efl_ui_list.c',
+ 'efl_ui_view_list.c',
+ 'efl_ui_view_list_precise_layouter.c',
+ 'efl_ui_view_list_segarray.c',
+ 'efl_ui_layout_factory.c',
+ 'efl_ui_scroller.c',
+ 'efl_ui_scroll_manager.c',
+ 'efl_ui_pan.c',
+ 'efl_selection_manager.c',
+ 'efl_selection_manager_private.h',
+ 'efl_selection.c',
+ 'efl_datetime_manager.c',
+ 'efl_ui_dnd.c',
+ 'elm_focus_legacy.c',
+ 'efl_ui_pager.c',
+ 'efl_page_transition.c',
+ 'efl_page_transition_scroll.c',
+ 'efl_page_indicator.c',
+ 'efl_page_indicator_icon.c',
+ 'efl_ui_focus_graph.h',
+ 'efl_ui_focus_graph.c',
+ 'efl_ui_tab_pager.c',
+ 'efl_ui_tab_bar.c',
+ 'efl_ui_tab_page.c',
+ 'efl_ui_widget_focus_manager.c'
+]
+
+elementary_deps = [emile, eo, efl, edje, ethumb, ethumb_client, emotion, ecore_imf, ecore_con, eldbus, efreet, efreet_mime, efreet_trash, eio, atspi, dl, intl]
+elementary_pub_deps = [eina, eet, evas, ecore, ecore_evas, ecore_file, ecore_input, ecore_imf, ecore_con,
+ edje, eldbus, efreet, efreet_mime, efreet_trash, ethumb_client, efl, elocation]
+
+elm_options = configuration_data()
+
+config_h.set_quoted('ELM_TOP_BUILD_DIR', meson.build_root())
+config_h.set_quoted('MODULES_PATH', join_paths(dir_lib, 'modules'))
+config_h.set_quoted('ELEMENTARY_BASE_DIR', '.data')
+config_h.set_quoted('ICON_DIR', join_paths(dir_lib, 'icons'))
+
+elm_options.set('ELM_UNIX', '1')
+elm_options.set('ELM_ELOCATION', '1')
+
+if config_h.has('HAVE_ALLOCA_H')
+ elm_options.set('ELM_ALLOCA_H', '1')
+endif
+
+if config_h.has('HAVE_LIBINTL_H')
+ elm_options.set('ELM_LIBINTL_H', '1')
+endif
+
+if config_h.has('HAVE_DIRENT_H')
+ elm_options.set('ELM_DIRENT_H', '1')
+endif
+
+if get_option('x11')
+ config_h.set('HAVE_ELEMENTARY_X', '1')
+ elementary_deps += ecore_x
+endif
+
+if get_option('wl')
+ config_h.set('HAVE_ELEMENTARY_WL2', '1')
+ elementary_deps += ecore_wl2
+endif
+
+if get_option('drm')
+ config_h.set('HAVE_ELEMENTARY_DRM', '1')
+ elementary_deps += ecore_drm2
+endif
+
+if get_option('cocoa')
+ config_h.set('HAVE_ELEMENTARY_COCOA', '1')
+ elementary_deps += ecore_cocoa
+endif
+
+c = configure_file(
+ output: 'Elementary_Options.h',
+ install : true,
+ install_dir : dir_package_include,
+ configuration: elm_options)
+
+elm_package_c_args = package_c_args + ['-DELEMENTARY_BUILD=1']
+
+elementary_lib = library('elementary',
+ elementary_src, pub_eo_file_target, priv_eo_file_target, c,
+ dependencies: elementary_pub_deps + elementary_deps,
+ include_directories : config_dir + [include_directories('.')] + [include_directories(join_paths('..', '..', '..'))] + [ecore_evas_wayland_engine_include_dir],
+ install: true,
+ c_args : elm_package_c_args,
+ version : meson.project_version()
+)
+
+elementary = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elementary_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: elementary_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(elementary_header_src,
+ install_dir : dir_package_include,
+)
+
+elementary_config_dir = include_directories('.')
diff --git a/src/lib/elocation/gen/meson.build b/src/lib/elocation/gen/meson.build
new file mode 100644
index 0000000000..58de776fa5
--- /dev/null
+++ b/src/lib/elocation/gen/meson.build
@@ -0,0 +1,5 @@
+
+elocation_src += files([
+ 'eldbus_geo_clue2_client.c',
+ 'eldbus_geo_clue2_location.c',
+ 'eldbus_geo_clue2_manager.c'])
diff --git a/src/lib/elocation/meson.build b/src/lib/elocation/meson.build
new file mode 100644
index 0000000000..080ea57278
--- /dev/null
+++ b/src/lib/elocation/meson.build
@@ -0,0 +1,28 @@
+elocation_deps = [eina, eo, efl, ecore, eldbus]
+elocation_pub_deps = [ecore, eldbus]
+
+elocation_src = files(['elocation.c'])
+
+subdir('gen')
+
+elocation_header_src = ['Elocation.h']
+
+
+elocation_lib = library('elocation',
+ elocation_src,
+ dependencies: [m] + elocation_deps + elocation_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+elocation = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elocation_lib,
+ dependencies: elocation_pub_deps,
+)
+
+install_headers(elocation_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elput/meson.build b/src/lib/elput/meson.build
new file mode 100644
index 0000000000..c812ad7759
--- /dev/null
+++ b/src/lib/elput/meson.build
@@ -0,0 +1,43 @@
+elput_deps = [ecore, ecore_input, eeze, eo, m]
+elput_pub_deps = [eina, eldbus]
+pub_eo_file_target = []
+
+elput_header_src = [
+ 'Elput.h'
+]
+
+elput_src = [
+ 'elput_touch.c',
+ 'elput_evdev.c',
+ 'elput_input.c',
+ 'elput_logind.c',
+ 'elput_manager.c',
+ 'elput.c',
+ 'elput_private.h'
+]
+
+elput_deps += dependency('libinput', version : ['>=1.7.0'])
+elput_deps += dependency('xkbcommon', version : ['>=0.3.0'])
+elput_deps += dependency('libudev')
+if get_option('systemd')
+ elput_deps += systemd
+endif
+
+elput_lib = library('elput',
+ elput_src, pub_eo_file_target,
+ dependencies: elput_pub_deps + elput_deps,
+ include_directories : config_dir,
+ install: true,
+ version : meson.project_version()
+)
+
+elput = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elput_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: elput_pub_deps,
+)
+
+install_headers(elput_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/elua/meson.build b/src/lib/elua/meson.build
new file mode 100644
index 0000000000..7e0c3af7ba
--- /dev/null
+++ b/src/lib/elua/meson.build
@@ -0,0 +1,24 @@
+elua_deps = [eina, eo, efl, ecore, ecore_file, intl]
+elua_pub_deps = [luajit]
+
+elua_src = ['elua.c', 'io.c', 'cache.c']
+elua_header_src = ['Elua.h']
+
+elua_lib = library('elua',
+ elua_src,
+ dependencies: [m, dl] + elua_deps + elua_pub_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+elua = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: elua_lib,
+ dependencies: elua_pub_deps,
+)
+
+install_headers(elua_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/embryo/meson.build b/src/lib/embryo/meson.build
new file mode 100644
index 0000000000..6ab8af8fe7
--- /dev/null
+++ b/src/lib/embryo/meson.build
@@ -0,0 +1,40 @@
+embryo_deps = [ecore]
+embryo_pub_deps = [eina, eo, efl]
+
+
+embryo_header_src = [
+ 'Embryo.h'
+]
+
+embryo_src = [
+ 'embryo_amx.c',
+ 'embryo_args.c',
+ 'embryo_float.c',
+ 'embryo_main.c',
+ 'embryo_rand.c',
+ 'embryo_str.c',
+ 'embryo_time.c',
+ 'embryo_private.h'
+]
+
+embryo_deps = [eina, m]
+
+embryo_lib = library('embryo',
+ embryo_src,
+ dependencies: [m, buildsystem] + embryo_deps,
+ include_directories : config_dir + [include_directories(join_paths('..','..'))],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+embryo = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: embryo_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: embryo_pub_deps,
+)
+
+install_headers(embryo_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/emile/meson.build b/src/lib/emile/meson.build
new file mode 100644
index 0000000000..4ae888c42a
--- /dev/null
+++ b/src/lib/emile/meson.build
@@ -0,0 +1,42 @@
+emile_deps = [jpeg, crypto, dependency('zlib')]
+emile_pub_deps = [eina, efl]
+
+emile_headers = [
+ 'Emile.h',
+ 'emile_cipher.h',
+ 'emile_compress.h',
+ 'emile_image.h',
+ 'emile_base64.h'
+]
+
+emile_src = [
+ 'emile_private.h',
+ 'emile_main.c',
+ 'emile_compress.c',
+ 'emile_image.c',
+ 'emile_base64.c',
+]
+
+if (get_option('crypto') == 'gnutls')
+ emile_src += 'emile_cipher_gnutls.c'
+elif (get_option('crypto') == 'openssl')
+ emile_src += 'emile_cipher_openssl.c'
+endif
+
+emile_lib = library('emile',
+ emile_src,
+ include_directories: config_dir,
+ dependencies: emile_pub_deps + emile_deps + [lz4, rg_etc, m],
+ install: true,
+ version : meson.project_version()
+)
+
+emile = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with: emile_lib,
+ dependencies: [eina, efl],
+)
+
+install_headers(emile_headers,
+ install_dir: dir_package_include
+)
diff --git a/src/lib/emotion/meson.build b/src/lib/emotion/meson.build
new file mode 100644
index 0000000000..56fda43cb9
--- /dev/null
+++ b/src/lib/emotion/meson.build
@@ -0,0 +1,70 @@
+pub_legacy_eo_files = [
+ 'efl_canvas_video.eo'
+]
+
+pub_eo_file_target = []
+priv_eo_file_target = []
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+emotion_header_src = [
+ 'Emotion.h',
+ 'Emotion_Legacy.h',
+ 'Emotion_Eo.h'
+]
+
+emotion_src = [
+ 'emotion_modules.h',
+ 'emotion_private.h',
+ 'emotion_smart.c',
+ 'emotion_webcam.c',
+ 'emotion_modules.c',
+ 'emotion_main.c'
+]
+
+emotion_deps = [ecore, eet, evas, eio, emile]
+emotion_pub_deps = [eina, eo, efl]
+
+if get_option('eeze') == true
+ emotion_deps += [eeze]
+endif
+
+emotion_lib = library('emotion',
+ emotion_src, pub_eo_file_target, priv_eo_file_target,
+ dependencies: emotion_deps + emotion_pub_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+emotion_package_c_args = package_c_args
+
+emotion = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: emotion_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: emotion_pub_deps,
+)
+
+install_data(pub_legacy_eo_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(emotion_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eo/meson.build b/src/lib/eo/meson.build
new file mode 100644
index 0000000000..5789c95f4c
--- /dev/null
+++ b/src/lib/eo/meson.build
@@ -0,0 +1,73 @@
+eo_deps = []
+eo_pub_deps = [eina]
+
+pub_eo_files = [
+ 'efl_object.eo',
+ 'efl_class.eo',
+ 'efl_object_override.eo',
+ 'efl_interface.eo'
+]
+
+eo_src = [
+ 'eo.c',
+ 'eo_ptr_indirection.c',
+ 'eo_ptr_indirection.h',
+ 'eo_base_class.c',
+ 'eo_class_class.c',
+ 'eo_add_fallback.c',
+ 'eo_add_fallback.h',
+ 'eo_private.h',
+ 'eo_internal.h'
+]
+
+pub_eo_types_files = [
+ 'eina_types.eot'
+]
+
+eo_header = ['Eo.h']
+
+pub_eo_file_target = []
+priv_eo_file_target = []
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+eo_lib = library('eo',
+ eo_src, pub_eo_file_target,
+ dependencies: [eina, valgrind, dl, execinfo],
+ install: true,
+ version : meson.project_version()
+)
+
+library('eo_dbg',
+ eo_src, pub_eo_file_target,
+ dependencies: [eina, valgrind, dl, execinfo],
+ install: true,
+ c_args : '-DEO_DEBUG',
+ version : meson.project_version()
+)
+
+eo = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: eo_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: eo_deps + eo_pub_deps,
+)
+
+install_data(pub_eo_files + pub_eo_types_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(eo_header,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/eolian/meson.build b/src/lib/eolian/meson.build
new file mode 100644
index 0000000000..2be0197212
--- /dev/null
+++ b/src/lib/eolian/meson.build
@@ -0,0 +1,55 @@
+eolian_pub_deps = [eina]
+eolian_deps = []
+
+eolian_src = [
+'eo_lexer.c',
+'eo_lexer.h',
+'eo_parser.c',
+'eo_parser.h',
+'eolian.c',
+'eolian_priv.h',
+'eolian_database.c',
+'eolian_database.h',
+'database_check.c',
+'database_class.c',
+'database_class_api.c',
+'database_function.c',
+'database_function_api.c',
+'database_function_parameter.c',
+'database_function_parameter_api.c',
+'database_type.c',
+'database_type_api.c',
+'database_implement.c',
+'database_implement_api.c',
+'database_constructor.c',
+'database_constructor_api.c',
+'database_event.c',
+'database_event_api.c',
+'database_part.c',
+'database_part_api.c',
+'database_expr.c',
+'database_expr_api.c',
+'database_var.c',
+'database_var_api.c',
+'database_validate.c'
+]
+
+eolian_lib = library('eolian', eolian_src,
+ include_directories: config_dir,
+ dependencies: eina,
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+eolian = declare_dependency(
+ include_directories: include_directories('.'),
+ link_with : eolian_lib,
+ dependencies: eina,
+)
+
+eolian_include_dir = join_paths(dir_data, 'eolian', 'include')
+
+install_headers('Eolian.h',
+ install_dir : dir_package_include
+)
diff --git a/src/lib/ephysics/meson.build b/src/lib/ephysics/meson.build
new file mode 100644
index 0000000000..ad1a168ae5
--- /dev/null
+++ b/src/lib/ephysics/meson.build
@@ -0,0 +1,41 @@
+bullet = dependency('bullet')
+
+ephysics_deps = [evas, bullet]
+ephysics_pub_deps = [eina, eo, efl]
+
+ephysics_header_src = [
+ 'EPhysics.h'
+]
+
+ephysics_src = [
+ 'ephysics_private.h',
+ 'ephysics_trimesh.h',
+ 'ephysics_body_materials.h',
+ 'ephysics_body.cpp',
+ 'ephysics_camera.cpp',
+ 'ephysics_constraints.cpp',
+ 'ephysics_main.cpp',
+ 'ephysics_quaternion.cpp',
+ 'ephysics_shape.cpp',
+ 'ephysics_world.cpp'
+]
+
+ephysics_lib = library('ephysics',
+ ephysics_src,
+ dependencies: ephysics_pub_deps + [m] + ephysics_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ephysics = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ephysics_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ephysics_pub_deps,
+)
+
+install_headers(ephysics_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ethumb/meson.build b/src/lib/ethumb/meson.build
new file mode 100644
index 0000000000..ffc62e91e5
--- /dev/null
+++ b/src/lib/ethumb/meson.build
@@ -0,0 +1,32 @@
+ethumb_header_src = [
+ 'Ethumb.h'
+]
+
+ethumb_src = [
+ 'ethumb.c',
+ 'ethumb_private.h',
+ 'md5.h',
+ 'md5.c',
+]
+
+ethumb_deps = [eet, evas, ecore, ecore_evas, ecore_file, ecore_imf, edje, emile]
+ethumb_pub_deps = [eina, eo, efl]
+
+ethumb_lib = library('ethumb',
+ ethumb_src,
+ dependencies: ethumb_pub_deps + [m] + ethumb_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ethumb = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ethumb_lib,
+ dependencies: ethumb_pub_deps,
+)
+
+install_headers(ethumb_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/ethumb_client/meson.build b/src/lib/ethumb_client/meson.build
new file mode 100644
index 0000000000..bddbab1d8d
--- /dev/null
+++ b/src/lib/ethumb_client/meson.build
@@ -0,0 +1,34 @@
+ethumb_client_header_src = [
+ 'Ethumb_Client.h'
+]
+
+ethumb_client_src = [
+ 'ethumb_client.c'
+]
+
+ethumb_client_deps = [
+ eldbus,
+ ecore
+]
+
+ethumb_client_pub_deps = [eina, eo, efl, ethumb]
+
+ethumb_client_lib = library('ethumb_client',
+ ethumb_client_src,
+ dependencies: ethumb_client_pub_deps + ethumb_client_deps,
+ include_directories : config_dir + [include_directories('.')],
+ install: true,
+ c_args : package_c_args,
+ version : meson.project_version()
+)
+
+ethumb_client = declare_dependency(
+ include_directories: [include_directories('.')],
+ link_with: ethumb_client_lib,
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: ethumb_client_pub_deps,
+)
+
+install_headers(ethumb_client_header_src,
+ install_dir : dir_package_include,
+)
diff --git a/src/lib/evas/cache/meson.build b/src/lib/evas/cache/meson.build
new file mode 100644
index 0000000000..fa276ecad6
--- /dev/null
+++ b/src/lib/evas/cache/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_cache.h',
+ 'evas_cache_engine_image.c',
+ 'evas_cache_image.c',
+ 'evas_preload.c',
+]) \ No newline at end of file
diff --git a/src/lib/evas/canvas/meson.build b/src/lib/evas/canvas/meson.build
new file mode 100644
index 0000000000..47db33de4b
--- /dev/null
+++ b/src/lib/evas/canvas/meson.build
@@ -0,0 +1,204 @@
+
+pub_legacy_eo_files = [
+ 'evas_canvas.eo',
+ 'evas_line.eo',
+ 'evas_table.eo',
+ 'evas_grid.eo',
+ 'evas_box.eo',
+ 'evas_text.eo',
+ 'evas_textgrid.eo',
+ 'evas_image.eo',
+]
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+ 'efl_canvas_polygon.eo',
+ 'efl_canvas_image_internal.eo',
+ 'evas_canvas3d_camera.eo',
+ 'evas_canvas3d_texture.eo',
+ 'evas_canvas3d_material.eo',
+ 'evas_canvas3d_light.eo',
+ 'evas_canvas3d_mesh.eo',
+ 'evas_canvas3d_primitive.eo',
+ 'evas_canvas3d_node.eo',
+ 'evas_canvas3d_scene.eo',
+ 'evas_canvas3d_object.eo',
+ 'efl_canvas_image.eo',
+ 'efl_canvas_snapshot.eo',
+ 'efl_canvas_proxy.eo',
+ 'efl_canvas_scene3d.eo',
+ 'efl_canvas_surface.eo',
+ 'efl_canvas_surface_tbm.eo',
+ 'efl_canvas_surface_x11.eo',
+ 'efl_canvas_surface_wayland.eo',
+ 'efl_canvas_filter_internal.eo',
+ 'efl_input_state.eo',
+ 'efl_input_interface.eo',
+ 'efl_input_event.eo',
+ 'efl_input_key.eo',
+ 'efl_input_pointer.eo',
+ 'efl_input_hold.eo',
+ 'efl_input_focus.eo',
+ 'efl_canvas_animation.eo',
+ 'efl_canvas_animation_alpha.eo',
+ 'efl_canvas_animation_rotate.eo',
+ 'efl_canvas_animation_scale.eo',
+ 'efl_canvas_animation_translate.eo',
+ 'efl_canvas_animation_group.eo',
+ 'efl_canvas_animation_group_parallel.eo',
+ 'efl_canvas_animation_group_sequential.eo',
+ 'efl_canvas_animation_player.eo',
+ 'efl_canvas_text_factory.eo',
+ 'efl_canvas_rectangle.eo',
+ 'efl_canvas_object.eo',
+ 'efl_canvas_vg_object.eo',
+ 'efl_canvas_vg_node.eo',
+ 'efl_canvas_vg_container.eo',
+ 'efl_canvas_vg_shape.eo',
+ 'efl_canvas_vg_gradient.eo',
+ 'efl_canvas_vg_gradient_radial.eo',
+ 'efl_canvas_vg_gradient_linear.eo',
+ 'efl_canvas_group.eo',
+ 'efl_gfx_map.eo',
+ 'efl_canvas_event_grabber.eo',
+ 'efl_canvas_text.eo'
+]
+
+pub_evas_eo_files += files(pub_eo_files)
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+ 'evas_canvas3d_types.eot',
+ 'efl_canvas_animation_types.eot'
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'canvas'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+pub_evas_eot_files += files(pub_eo_types_files)
+
+evas_src += files([
+ 'evas_callbacks.c',
+ 'evas_clip.c',
+ 'evas_data.c',
+ 'evas_device.c',
+ 'evas_events.c',
+ 'evas_events_legacy.c',
+ 'evas_focus.c',
+ 'evas_key.c',
+ 'evas_key_grab.c',
+ 'evas_layer.c',
+ 'evas_main.c',
+ 'evas_name.c',
+ 'evas_image_legacy.c',
+ 'evas_object_image.c',
+ 'evas_object_main.c',
+ 'evas_object_inform.c',
+ 'evas_object_intercept.c',
+ 'evas_object_line.c',
+ 'evas_object_polygon.c',
+ 'evas_object_rectangle.c',
+ 'evas_object_smart.c',
+ 'evas_object_smart_clipped.c',
+ 'evas_object_box.c',
+ 'evas_object_table.c',
+ 'evas_object_text.c',
+ 'evas_object_textblock.c',
+ 'evas_object_textgrid.c',
+ 'evas_object_grid.c',
+ 'evas_font_dir.c',
+ 'evas_rectangle.c',
+ 'evas_render.c',
+ 'evas_smart.c',
+ 'evas_async_events.c',
+ 'evas_stats.c',
+ 'evas_touch_point.c',
+ 'evas_map.c',
+ 'evas_map.h',
+ 'evas_gl.c',
+ 'evas_out.c',
+ 'efl_canvas_image.c',
+ 'efl_canvas_event_grabber.c',
+ 'efl_canvas_proxy.c',
+ 'efl_canvas_snapshot.c',
+ 'efl_canvas_scene3d.c',
+ 'efl_canvas_surface.c',
+ 'efl_canvas_surface_tbm.c',
+ 'efl_canvas_surface_x11.c',
+ 'efl_canvas_surface_wayland.c',
+ 'efl_gfx_map.c',
+ 'efl_input_event.c',
+ 'efl_input_key.c',
+ 'efl_input_pointer.c',
+ 'efl_input_hold.c',
+ 'efl_input_focus.c',
+ 'efl_canvas_animation.c',
+ 'efl_canvas_animation_alpha.c',
+ 'efl_canvas_animation_rotate.c',
+ 'efl_canvas_animation_scale.c',
+ 'efl_canvas_animation_translate.c',
+ 'efl_canvas_animation_group.c',
+ 'efl_canvas_animation_group_parallel.c',
+ 'efl_canvas_animation_group_sequential.c',
+ 'efl_canvas_animation_player.c',
+ 'efl_canvas_vg_object.c',
+ 'evas_vg_node.c',
+ 'evas_vg_container.c',
+ 'evas_vg_gradient.c',
+ 'evas_vg_gradient_linear.c',
+ 'evas_vg_gradient_radial.c',
+ 'evas_vg_utils.c',
+ 'evas_vg_shape.c',
+ 'evas_filter_mixin.c',
+ 'evas_canvas3d_object.c',
+ 'evas_canvas3d_scene.c',
+ 'evas_canvas3d_node.c',
+ 'evas_canvas3d_camera.c',
+ 'evas_canvas3d_light.c',
+ 'evas_canvas3d_mesh.c',
+ 'evas_canvas3d_texture.c',
+ 'evas_canvas3d_material.c',
+ 'evas_canvas3d_primitive.c',
+ 'evas_canvas3d_node_callback.h',
+ 'evas_canvas3d_eet.c',
+ ])
+
+evas_include_directories += include_directories('.')
+
+install_headers('evas_textblock_legacy.h',
+ install_dir : join_paths(dir_package_include, 'canvas'),
+)
diff --git a/src/lib/evas/common/language/meson.build b/src/lib/evas/common/language/meson.build
new file mode 100644
index 0000000000..dd725a92bc
--- /dev/null
+++ b/src/lib/evas/common/language/meson.build
@@ -0,0 +1,7 @@
+evas_src += files([
+ 'evas_bidi_utils.c',
+ 'evas_language_utils.c',
+ 'evas_bidi_utils.h',
+ 'evas_language_utils.h',
+ 'evas_script_table.h',
+]) \ No newline at end of file
diff --git a/src/lib/evas/common/meson.build b/src/lib/evas/common/meson.build
new file mode 100644
index 0000000000..05fa24449d
--- /dev/null
+++ b/src/lib/evas/common/meson.build
@@ -0,0 +1,87 @@
+evas_include_directories += include_directories('.')
+
+evas_src += files([
+ 'evas_op_copy_main_.c',
+ 'evas_op_blend_main_.c',
+ 'evas_op_add_main_.c',
+ 'evas_op_sub_main_.c',
+ 'evas_op_mask_main_.c',
+ 'evas_op_mul_main_.c',
+ 'evas_blend_main.c',
+ 'evas_blit_main.c',
+ 'evas_convert_color.c',
+ 'evas_convert_colorspace.c',
+ 'evas_convert_gry_1.c',
+ 'evas_convert_gry_8.c',
+ 'evas_convert_main.c',
+ 'evas_convert_rgb_16.c',
+ 'evas_convert_rgb_24.c',
+ 'evas_convert_rgb_8.c',
+ 'evas_convert_grypal_6.c',
+ 'evas_convert_yuv.c',
+ 'evas_cpu.c',
+ 'evas_draw_main.c',
+ 'evas_font_draw.c',
+ 'evas_font_load.c',
+ 'evas_font_main.c',
+ 'evas_font_query.c',
+ 'evas_font_compress.c',
+ 'evas_image_load.c',
+ 'evas_image_save.c',
+ 'evas_image_main.c',
+ 'evas_image_data.c',
+ 'evas_image_scalecache.c',
+ 'evas_line_main.c',
+ 'evas_polygon_main.c',
+ 'evas_rectangle_main.c',
+ 'evas_scale_main.c',
+ 'evas_scale_sample.c',
+ 'evas_scale_smooth.c',
+ 'evas_scale_span.c',
+ 'evas_thread_render.c',
+ 'evas_tiler.c',
+ 'evas_pipe.c',
+ 'evas_text_utils.c',
+ 'evas_font_ot.c',
+ 'evas_map_image.c',
+ 'evas_map_image.h',
+ 'evas_blend.h',
+ 'evas_blend_private.h',
+ 'evas_convert_color.h',
+ 'evas_convert_colorspace.h',
+ 'evas_convert_gry_1.h',
+ 'evas_convert_gry_8.h',
+ 'evas_convert_grypal_6.h',
+ 'evas_convert_main.h',
+ 'evas_convert_rgb_16.h',
+ 'evas_convert_rgb_24.h',
+ 'evas_convert_rgb_32.h',
+ 'evas_convert_rgb_32.c',
+ 'evas_convert_rgb_8.h',
+ 'evas_convert_yuv.h',
+ 'evas_draw.h',
+ 'evas_font.h',
+ 'evas_font_private.h',
+ 'evas_image.h',
+ 'evas_image_private.h',
+ 'evas_line.h',
+ 'evas_polygon.h',
+ 'evas_rectangle.h',
+ 'evas_scale_main.h',
+ 'evas_scale_smooth.h',
+ 'evas_scale_span.h',
+ 'evas_pipe.h',
+ 'language/evas_bidi_utils.h',
+ 'language/evas_language_utils.h',
+ 'language/evas_script_table.h',
+ 'evas_text_utils.h',
+ 'evas_font_ot.h',
+ 'evas_font_draw.h',
+ 'evas_common_generic_cache.c',
+ 'region.c',
+ 'region.h'
+])
+
+#subdir('evas_op_blend')
+#subdir('evas_op_sub')
+subdir('language')
diff --git a/src/lib/evas/common3d/meson.build b/src/lib/evas/common3d/meson.build
new file mode 100644
index 0000000000..22341b4a84
--- /dev/null
+++ b/src/lib/evas/common3d/meson.build
@@ -0,0 +1,2 @@
+subdir('primitives')
+subdir('save_load') \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/meson.build b/src/lib/evas/common3d/primitives/meson.build
new file mode 100644
index 0000000000..2888869bf8
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/meson.build
@@ -0,0 +1,5 @@
+subdir('solids_of_revolution')
+subdir('surfaces')
+subdir('tabulated_primitives')
+
+evas_src += files(['primitive_common.c']) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
new file mode 100644
index 0000000000..ac35b05093
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/solids_of_revolution/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'cone.c',
+ 'cylinder.c',
+ 'sphere.c',
+ 'torus.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/surfaces/meson.build b/src/lib/evas/common3d/primitives/surfaces/meson.build
new file mode 100644
index 0000000000..398996f148
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/surfaces/meson.build
@@ -0,0 +1,4 @@
+evas_src += files([
+ 'surface.c',
+ 'terrain.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
new file mode 100644
index 0000000000..a24df304d1
--- /dev/null
+++ b/src/lib/evas/common3d/primitives/tabulated_primitives/meson.build
@@ -0,0 +1,4 @@
+evas_src += files([
+ 'cube.c',
+ 'square.c'
+]) \ No newline at end of file
diff --git a/src/lib/evas/common3d/save_load/meson.build b/src/lib/evas/common3d/save_load/meson.build
new file mode 100644
index 0000000000..72f430d31e
--- /dev/null
+++ b/src/lib/evas/common3d/save_load/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_model_load.c',
+ 'evas_model_load_save_common.c',
+ 'evas_model_load_save_common.h',
+ 'evas_model_save.c',
+]) \ No newline at end of file
diff --git a/src/lib/evas/file/meson.build b/src/lib/evas/file/meson.build
new file mode 100644
index 0000000000..3fb4c754a9
--- /dev/null
+++ b/src/lib/evas/file/meson.build
@@ -0,0 +1,6 @@
+evas_src += files([
+ 'evas_module.c',
+ 'evas_module.h',
+ 'evas_path.c',
+ 'evas_path.h',
+])
diff --git a/src/lib/evas/filters/lua/meson.build b/src/lib/evas/filters/lua/meson.build
new file mode 100644
index 0000000000..26658feae7
--- /dev/null
+++ b/src/lib/evas/filters/lua/meson.build
@@ -0,0 +1,3 @@
+install_data('color.lua',
+ install_dir : join_paths(dir_data, 'evas', 'filters', 'lua')
+) \ No newline at end of file
diff --git a/src/lib/evas/filters/meson.build b/src/lib/evas/filters/meson.build
new file mode 100644
index 0000000000..c15c7671a2
--- /dev/null
+++ b/src/lib/evas/filters/meson.build
@@ -0,0 +1,19 @@
+subdir('lua')
+
+evas_src += files([
+ 'evas_filter.c',
+ 'evas_filter_parser.c',
+ 'evas_filter_private.h',
+ 'evas_filter_utils.c',
+])
+
+luajit = dependency('luajit')
+if target_machine.system() == 'darwin'
+# luajit on macos is broken, this means we need to generate our own dependency with our arguments, a library later still needs to link to luajit for the pagesize argument thingy
+ luajit = declare_dependency(
+ include_directories: include_directories(luajit.get_pkgconfig_variable('includedir')),
+ link_args: ['-L'+luajit.get_pkgconfig_variable('libdir'), '-l'+luajit.get_pkgconfig_variable('libname')]
+ )
+endif
+
+evas_deps += luajit \ No newline at end of file
diff --git a/src/lib/evas/gesture/meson.build b/src/lib/evas/gesture/meson.build
new file mode 100644
index 0000000000..62d9b27599
--- /dev/null
+++ b/src/lib/evas/gesture/meson.build
@@ -0,0 +1,69 @@
+pub_eo_files = [
+ 'efl_canvas_gesture_touch.eo',
+ 'efl_canvas_gesture.eo',
+ 'efl_canvas_gesture_tap.eo',
+ 'efl_canvas_gesture_long_tap.eo',
+ 'efl_canvas_gesture_recognizer.eo',
+ 'efl_canvas_gesture_manager.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+pub_evas_eo_files += files(pub_eo_files)
+
+pub_eo_files = [
+ 'efl_canvas_gesture_recognizer_tap.eo',
+ 'efl_canvas_gesture_recognizer_long_tap.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : false,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+endforeach
+
+pub_eo_types_files = [
+ 'efl_canvas_gesture_types.eot',
+]
+
+pub_evas_eot_files += files(pub_eo_types_files)
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : join_paths(dir_package_include, 'gesture'),
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+evas_src += files([
+ 'efl_canvas_gesture_touch.c',
+ 'efl_canvas_gesture.c',
+ 'efl_canvas_gesture_tap.c',
+ 'efl_canvas_gesture_long_tap.c',
+ 'efl_canvas_gesture_recognizer.c',
+ 'efl_canvas_gesture_recognizer_tap.c',
+ 'efl_canvas_gesture_recognizer_long_tap.c',
+ 'efl_canvas_gesture_manager.c',
+])
diff --git a/src/lib/evas/include/meson.build b/src/lib/evas/include/meson.build
new file mode 100644
index 0000000000..aaeeb9ba66
--- /dev/null
+++ b/src/lib/evas/include/meson.build
@@ -0,0 +1,18 @@
+evas_include_directories += [include_directories('.')]
+
+
+pub_eo_files = [
+ 'evas_ector_buffer.eo'
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
new file mode 100644
index 0000000000..d72032d957
--- /dev/null
+++ b/src/lib/evas/meson.build
@@ -0,0 +1,175 @@
+# README
+#
+# Evas build is a bit more complex.
+# the final shared library is build in src/lib/evas_goal/meson.build.
+#
+# The content of lib/evas is build as static_library as
+# are all the engines loaders and savers.
+#
+# All those stages are defining dependencies with theire source code
+# as 'source :', later everything is build as libevas.so.
+#
+# For now loaders and savers are ALWAYS build statically.
+#
+
+evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl]
+pub_eo_file_target = []
+priv_eo_files = []
+
+pub_evas_eo_files = []
+pub_evas_eot_files = []
+
+pub_legacy_eo_files = [
+
+]
+
+foreach eo_file : pub_legacy_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h', eo_file + '.legacy.h',],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-o', 'l:' + join_paths(meson.current_build_dir(), eo_file + '.legacy.h'),
+ '-gchl', '@INPUT@'])
+
+endforeach
+
+pub_eo_files = [
+
+]
+
+foreach eo_file : pub_eo_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-o', 'c:' + join_paths(meson.current_build_dir(), eo_file + '.c'),
+ '-gch', '@INPUT@'])
+endforeach
+
+
+pub_eo_types_files = [
+
+]
+
+foreach eo_file : pub_eo_types_files
+ pub_eo_file_target += custom_target('eolian_gen_' + eo_file,
+ input : eo_file,
+ output : [eo_file + '.h'],
+ install : true,
+ install_dir : dir_package_include,
+ command : [eolian_gen, '-I', meson.current_source_dir(), eolian_include_directories,
+ '-o', 'h:' + join_paths(meson.current_build_dir(), eo_file + '.h'),
+ '-gh', '@INPUT@'])
+endforeach
+
+eolian_include_directories += ['-I', meson.current_source_dir()]
+
+evas_header_src = [
+ 'Evas.h',
+ 'Evas_Common.h',
+ 'Evas_Eo.h',
+ 'Evas_GL.h',
+ 'Evas_Legacy.h',
+ 'Evas_Loader.h',
+]
+
+evas_include_directories = [
+ include_directories('.'),
+ include_directories('common'),
+ include_directories('common3d'),
+ include_directories(join_paths('common3d', 'save_load')),
+ include_directories('include'),
+ include_directories('filters'),
+ vg_common_inc_dir
+]
+
+evas_src = [
+ 'main.c'
+]
+
+evas_src += vg_common_src
+
+evas_deps += dependency('freetype2')
+
+if (get_option('fontconfig'))
+ config_h.set('HAVE_FONTCONFIG', '1')
+ evas_deps += dependency('fontconfig')
+endif
+
+if (get_option('fribidi'))
+ config_h.set('HAVE_FRIBIDI', '1')
+ evas_deps += dependency('fribidi')
+endif
+
+if (get_option('pixman'))
+ pixman_support = ['HAVE_PIXMAN', 'PIXMAN_FONT', 'PIXMAN_RECT', 'PIXMAN_LINE', 'PIXMAN_POLY', 'PIXMAN_IMAGE', 'PIXMAN_IMAGE_SCALE_SAMPLE']
+ foreach support : pixman_support
+ config_h.set(support, '1')
+ endforeach
+ evas_deps += dependency('pixman')
+endif
+
+if (get_option('hyphen'))
+ config_h.set('HAVE_HYPHEN', '1')
+ evas_deps += dependency('hyphen')
+endif
+
+subdir('include')
+subdir('common')
+subdir('canvas')
+subdir('gesture')
+subdir('filters')
+subdir('cache')
+subdir('common3d')
+subdir('file')
+subdir('vg')
+
+gl_deps = []
+
+if get_option('harfbuzz')
+ evas_deps += dependency('harfbuzz')
+ config_h.set('HAVE_HARFBUZZ', '1')
+endif
+
+if get_option('wl')
+ evas_deps += wayland_protocol
+endif
+
+
+if get_option('opengl') != 'none'
+ gl_deps += dependency('gl')
+endif
+
+if get_option('opengl') == 'es-egl'
+ config_h.set('GL_GLES', '1')
+ gl_deps += dependency('egl')
+endif
+
+evas_pre = declare_dependency(
+ include_directories: evas_include_directories + [vg_common_inc_dir],
+ sources : pub_eo_file_target + priv_eo_file_target,
+ dependencies: [eina, eo, ector, emile, evas_deps],
+)
+
+evas_pre_lib_dep = declare_dependency(
+ include_directories: evas_include_directories + [vg_common_inc_dir],
+ sources : [evas_src, pub_eo_file_target],
+ dependencies: [evas_deps, m, draw, valgrind, libunibreak]
+)
+
+install_data(pub_evas_eo_files + pub_evas_eot_files,
+ install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(evas_header_src,
+ install_dir : dir_package_include,
+)
+
+automatic_pkgfile = false
diff --git a/src/lib/evas/vg/meson.build b/src/lib/evas/vg/meson.build
new file mode 100644
index 0000000000..2f9622312d
--- /dev/null
+++ b/src/lib/evas/vg/meson.build
@@ -0,0 +1 @@
+evas_src += files(['evas_vg_cache.c']) \ No newline at end of file
diff --git a/src/lib/evas_goal/empty.c b/src/lib/evas_goal/empty.c
new file mode 100644
index 0000000000..e69de29bb2
--- /dev/null
+++ b/src/lib/evas_goal/empty.c
diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build
new file mode 100644
index 0000000000..057006884c
--- /dev/null
+++ b/src/lib/evas_goal/meson.build
@@ -0,0 +1,29 @@
+evas_lib = library('evas',
+ 'empty.c',
+ #all the source code is coming from evas_pre_lib_dep
+ dependencies: [evas_pre_lib_dep, evas_static_list],
+ install: true,
+ c_args : '-DPACKAGE_DATA_DIR="'+join_paths(dir_data, 'evas')+'"',
+ version : meson.project_version()
+)
+
+evas = declare_dependency(
+ link_with : [evas_lib],
+ dependencies : [eina, ecore, ector, emile, evas_pre],
+ include_directories : evas_include_directories
+)
+
+evas_bin = declare_dependency(
+ link_with : [evas_lib],
+ dependencies : [eina, ecore, ector, emile, dependency('luajit')],
+ include_directories : evas_include_directories
+)
+
+automatic_pkgfile = false
+
+pkgconfig.generate(evas_lib,
+ name : 'evas',
+ subdirs : 'evas-'+version_major,
+ version : version_major + '.' + version_minor,
+ libraries : [eina, ecore, ector, emile, dependency('luajit')],
+)