bu5hm4n pushed a commit to branch feature/meson.

http://git.enlightenment.org/core/efl.git/commit/?id=7ca339da20d9eb5508b8de3555a7b278eead3b0d

commit 7ca339da20d9eb5508b8de3555a7b278eead3b0d
Author: Marcel Hollerbach <[email protected]>
Date:   Fri Dec 29 10:48:56 2017 +0000

    meson: time for eeze
---
 meson.build                     |  5 ++-
 meson/meson_modules.sh          |  6 +++
 meson_options.txt               | 24 +++++++++++
 src/bin/eeze/meson.build        | 10 +++++
 src/lib/ecore_input/meson.build |  3 ++
 src/lib/eeze/meson.build        | 91 +++++++++++++++++++++++++++++++++++++++++
 src/modules/eeze/meson.build    | 17 ++++++++
 src/tests/eeze/meson.build      | 20 +++++++++
 8 files changed, 175 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 25f9c4de03..883dc5aca5 100644
--- a/meson.build
+++ b/meson.build
@@ -30,6 +30,7 @@ if host_os == 'linux'
 endif
 
 module_arch = '@0@-@1@-@2@'.format(host_os, host_machine.cpu_family(), 
meson.project_version())
+module_files = []
 
 #install paths
 dir_prefix    = get_option('prefix')
@@ -95,6 +96,7 @@ subprojects = [
 ['ecore_avahi'      , false,  true, false, false, false,  true, []],
 ['ecore_con'        , false,  true,  true, false,  true, false, 
['http-parser']],
 ['ecore_file'       , false,  true, false, false, false, false, []],
+['eeze'             ,  true,  true, false, false,  true, false, []],
 ['ecore_input'      , false,  true, false, false, false, false, []],
 ['ecore_x'          , false,  true, false, false, false, false, []],
 ['ecore_fb'         , false,  true, false, false, false, false, []],
@@ -117,11 +119,11 @@ example_dirs = []
 foreach package : subprojects
   package_name = package[0]
   package_version_name = package_name + '-' + version_major
-
   if get_option(package_name)
     config_h.set('HAVE_'+package_name.to_upper(), '1')
 
     dir_package_include = join_paths(dir_include, package_version_name)
+    dir_package_modules = join_paths(dir_lib, package_name, 'modules')
 
     foreach static_lib : package[7]
       subdir(join_paths('src', 'static_libs', static_lib))
@@ -171,6 +173,7 @@ endif
 
 subdir(join_paths(local_scripts))
 
+meson.add_install_script('meson/meson_modules.sh', module_files)
 
 #
 # Configure files
diff --git a/meson/meson_modules.sh b/meson/meson_modules.sh
new file mode 100755
index 0000000000..c6f23181a8
--- /dev/null
+++ b/meson/meson_modules.sh
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+for x in "$@" ; do
+       dir="$(dirname $x)"
+       mv "$DESTDIR"/"$x" "$DESTDIR"/"$dir"/module.so
+done
diff --git a/meson_options.txt b/meson_options.txt
index 0e2cf93db6..0e93f82bca 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -46,6 +46,12 @@ option('eldbus',
   description : 'build eldbus'
 )
 
+option('eeze',
+  type : 'boolean',
+  value : true,
+  description : 'build eeze'
+)
+
 option('ecore_audio',
   type : 'boolean',
   value : true,
@@ -219,3 +225,21 @@ option('tslib',
   value : true,
   description : 'tslib support' 
 )
+
+option('eject-path',
+  type : 'string',
+  value : 'detect',
+  description : 'path to use as eject binary, if "detect" internal eeze bins 
are used'
+)
+
+option('mount-path',
+  type : 'string',
+  value : 'detect',
+  description : 'path to use as eject binary, if "detect" internal eeze bins 
are used'
+)
+
+option('unmount-path',
+  type : 'string',
+  value : 'detect',
+  description : 'path to use as eject binary, if "detect" internal eeze bins 
are used'
+)
\ No newline at end of file
diff --git a/src/bin/eeze/meson.build b/src/bin/eeze/meson.build
new file mode 100644
index 0000000000..073985e3c5
--- /dev/null
+++ b/src/bin/eeze/meson.build
@@ -0,0 +1,10 @@
+eeze_bins = ['disk_ls', 'mount', 'scanner', 'scanner_monitor', 'umount']
+
+foreach eeze_bin : eeze_bins
+       src_file += join_paths('eeze_'+eeze_bin, 'eeze_'+eeze_bin+'.c')
+       tmp = executable('eeze_'+eeze_bin, src_file,
+               dependencies: [eeze],
+               install: true,
+       )
+  set_variable('eeze_'+eeze_bin, tmp)
+endforeach
\ No newline at end of file
diff --git a/src/lib/ecore_input/meson.build b/src/lib/ecore_input/meson.build
index 4df8df58fb..4897e9eac1 100644
--- a/src/lib/ecore_input/meson.build
+++ b/src/lib/ecore_input/meson.build
@@ -12,6 +12,9 @@ ecore_input_src = [
   '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,
diff --git a/src/lib/eeze/meson.build b/src/lib/eeze/meson.build
new file mode 100644
index 0000000000..8582dcf4e6
--- /dev/null
+++ b/src/lib/eeze/meson.build
@@ -0,0 +1,91 @@
+eeze_deps = []
+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'
+]
+
+libudev = dependency('libudev', 
+  version: ['>=148']
+)
+libmount = dependency('mount', 
+  required: false
+)
+
+if libmount.found() == false
+  eeze_src +=   'eeze_disk_dummy.c'  
+else
+  config_h.set('HAVE_EEZE_MOUNT', '1')
+  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
+endif
+
+eeze_deps += libudev
+eeze_deps += libmount
+
+options_to_check = ['eject', 'mount', 'unmount']
+
+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)
+    set_variable(option+'_bin', prog.path())
+  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: [ecore, ecore_file, eeze_deps],
+    include_directories : config_dir,
+    install: true,
+)
+
+eeze = declare_dependency(
+  include_directories: [include_directories('.')],
+  link_with: eeze_lib,
+  sources : pub_eo_file_target,
+  dependencies: [eina],
+)
+
+install_headers(eeze_header_src,
+  install_dir : dir_package_include,
+)
\ No newline at end of file
diff --git a/src/modules/eeze/meson.build b/src/modules/eeze/meson.build
new file mode 100644
index 0000000000..b19b757ab5
--- /dev/null
+++ b/src/modules/eeze/meson.build
@@ -0,0 +1,17 @@
+sensors = [
+['fake', [ecore]], 
+#['tizen', []], 
+['udev', [ecore]],
+]
+
+foreach sensor_conf : sensors
+  sensor = sensor_conf[0]
+  src = join_paths('sensor', sensor, sensor+'.c')
+  shared_module('eeze_'+sensor, src,
+    include_directories : config_dir,
+    dependencies : [eina, eeze] + sensor_conf[1],
+    install : true,
+    install_dir : join_paths(dir_package_modules, 'sensor', sensor, 
module_arch)
+  )
+  module_files += join_paths(dir_package_modules, 'sensor', sensor, 
module_arch, 'libeeze_' + sensor + '.so')
+endforeach
\ No newline at end of file
diff --git a/src/tests/eeze/meson.build b/src/tests/eeze/meson.build
new file mode 100644
index 0000000000..b2dd6b2d43
--- /dev/null
+++ b/src/tests/eeze/meson.build
@@ -0,0 +1,20 @@
+eeze_suite_src = [
+  'eeze_suite.c',
+  'eeze_test_init.c',
+  'eeze_test_net.c',
+  'eeze_test_sensor.c',
+  'eeze_test_udev.c',
+  'eeze_suite.h'
+]
+
+eeze_suite = executable('eeze_suite',
+  eeze_suite_src,
+  dependencies: [eeze, ecore, check],
+  c_args : [
+  '-DTESTS_BUILD_DIR="'+meson.current_build_dir()+'"',
+  '-DTESTS_SRC_DIR="'+meson.current_source_dir()+'"']
+)
+
+test('eeze-suite', eeze_suite,
+  is_parallel: true,
+)
\ No newline at end of file

-- 


Reply via email to