bu5hm4n pushed a commit to branch feature/meson.

http://git.enlightenment.org/core/efl.git/commit/?id=28d4ce73a0f24a9509ddd4be7331000fa0baea44

commit 28d4ce73a0f24a9509ddd4be7331000fa0baea44
Author: Marcel Hollerbach <[email protected]>
Date:   Wed Dec 27 13:17:34 2017 +0000

    meson: ecore_avahi!
---
 meson.build                             |   5 +
 meson_options.txt                       |  17 ++-
 src/examples/ecore_avahi/meson.build    |  11 ++
 src/lib/ecore_avahi/meson.build         |  28 +++++
 src/lib/ecore_con/meson.build           | 180 ++++++++++++++++++++++++++++++++
 src/static_libs/http-parser/meson.build |  11 ++
 6 files changed, 247 insertions(+), 5 deletions(-)

diff --git a/meson.build b/meson.build
index a7f350e816..1fc1900012 100644
--- a/meson.build
+++ b/meson.build
@@ -90,6 +90,9 @@ subprojects = [
 ['eldbus', false,  true,  true, false, []],
 ['ecore' ,  true, false, false, false, []], #ecores modules depend on eldbus
 ['ecore_audio' , false,  true, false, false, []],
+['ecore_avahi' , false,  true, false, false, []],
+['ecore_con' , false, true, false, false, []],
+['ecore_file' , false,  true, false, false, []],
 ]
 
 
@@ -98,6 +101,8 @@ config_dir += include_directories('.')
 
 #we have to do that first, eina modules are required by eina
 #the other modules require theire package
+
+subdir(join_paths('src', 'static_libs', 'http-parser'))
 subdir(join_paths(local_module, 'eina'))
 
 foreach package : subprojects
diff --git a/meson_options.txt b/meson_options.txt
index 26a5e57704..fa7f073c75 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -63,14 +63,21 @@ option('systemd',
   description : 'use systemd support'
 )
 
-option('avahi',
+option('pulseaudio',
   type : 'boolean',
-  value : false,
-  description : 'disable avahi support'
+  value : true,
+  description : 'pulseaudio support' 
 )
 
-option('pulseaudio',
+option('avahi',
   type : 'boolean',
   value : true,
-  description : 'pulseaudio support' 
+  description : 'avahi support' 
+)
+
+option('network-backend',
+  type : 'combo',
+  choices : ['connman', 'none'],
+  value : 'none',
+  description : 'connman support' 
 )
diff --git a/src/examples/ecore_avahi/meson.build 
b/src/examples/ecore_avahi/meson.build
new file mode 100644
index 0000000000..0bf2607038
--- /dev/null
+++ b/src/examples/ecore_avahi/meson.build
@@ -0,0 +1,11 @@
+if get_option('avahi')
+
+       examples = [
+         'ecore_avahi_browse_example',
+         'ecore_avahi_example',
+       ]
+
+       foreach example : examples
+         executable(example, example + '.c', dependencies: [ecore_avahi_deps, 
ecore_avahi])
+       endforeach
+endif
\ No newline at end of file
diff --git a/src/lib/ecore_avahi/meson.build b/src/lib/ecore_avahi/meson.build
new file mode 100644
index 0000000000..2eac38df99
--- /dev/null
+++ b/src/lib/ecore_avahi/meson.build
@@ -0,0 +1,28 @@
+if get_option('avahi')
+  ecore_avahi_deps = []
+
+  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: [ecore, m, ecore_avahi_deps],
+      include_directories : config_dir + 
[include_directories(join_paths('..','..'))],
+      install: true,
+  )
+
+  ecore_avahi = declare_dependency(
+    include_directories: [include_directories('.')],
+    link_with: ecore_avahi_lib,
+    dependencies: [eina, ecore],
+  )
+
+  install_headers(ecore_avahi_header_src,
+    install_dir : dir_package_include,
+  )
+else
+
+endif 
\ No newline at end of file
diff --git a/src/lib/ecore_con/meson.build b/src/lib/ecore_con/meson.build
new file mode 100644
index 0000000000..2020e0cd02
--- /dev/null
+++ b/src/lib/ecore_con/meson.build
@@ -0,0 +1,180 @@
+
+ecore_con_deps = []
+
+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.eo',
+  'efl_net_session.eo',
+  'efl_net_ip_address.eo',
+  'ecore_con_eet_base.eo',
+  'ecore_con_eet_server_obj.eo',
+  'ecore_con_eet_client_obj.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'],
+    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 = [
+  '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') == 'connman'
+  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'
+  ]
+endif
+
+ecore_con_lib = library('ecore_con',
+    ecore_con_src, pub_eo_file_target,
+    dependencies: [ecore, ecore_con_deps, http_parser],
+    include_directories : config_dir,
+    install: true,
+)
+
+ecore_con = declare_dependency(
+  include_directories: [include_directories('.')],
+  link_with: ecore_con_lib,
+  sources : pub_eo_file_target,
+  dependencies: [eina, eo, efl],
+)
+
+install_data(pub_eo_files,
+  install_dir: join_paths(eolian_include_dir, package_version_name)
+)
+
+install_headers(ecore_con_header_src,
+  install_dir : dir_package_include,
+)
\ No newline at end of file
diff --git a/src/static_libs/http-parser/meson.build 
b/src/static_libs/http-parser/meson.build
new file mode 100644
index 0000000000..7e1308400e
--- /dev/null
+++ b/src/static_libs/http-parser/meson.build
@@ -0,0 +1,11 @@
+http_parser_lib = [
+  'http_parser.c',
+  'http_parser.h',
+]
+
+http_parser_lib = static_library('http-parser', http_parser_lib)
+
+http_parser = declare_dependency(
+       include_directories: include_directories('.') ,
+       link_with: http_parser_lib,
+)
\ No newline at end of file

-- 


Reply via email to