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 --
