diff options
Diffstat (limited to 'src/lib')
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')], +) |