bu5hm4n pushed a commit to branch feature/meson. http://git.enlightenment.org/core/efl.git/commit/?id=227d96b1aed9721312fb42075aa268085df1a6c7
commit 227d96b1aed9721312fb42075aa268085df1a6c7 Author: Marcel Hollerbach <[email protected]> Date: Fri Dec 22 20:19:20 2017 +0100 meson: here come efl-interfaces! Efl_Config.h creation is now moved to the source root directory. --- meson.build | 33 +++++++- src/lib/efl/interfaces/meson.build | 168 +++++++++++++++++++++++++++++++++++++ src/lib/efl/meson.build | 41 +++++---- src/tests/efl/meson.build | 13 +++ src/tests/meson.build | 2 + 5 files changed, 238 insertions(+), 19 deletions(-) diff --git a/meson.build b/meson.build index 9e5aa7dfd3..d42980de8f 100644 --- a/meson.build +++ b/meson.build @@ -83,9 +83,12 @@ subprojects = [ ['eina' , true, true, true, true], ['eolian', false, true, true, false], ['eo' , false, true, false, true], +['efl' , false, true, false, false] ] -subdir(join_paths(local_lib, 'efl')) + +# We generate Efl_Config.h and config.h later, they will be available here +config_dir += include_directories('.') foreach package : subprojects package_name = package[0] @@ -117,4 +120,30 @@ endif subdir(join_paths(local_scripts)) -configure_file(output: 'config.h', install: false, configuration: config_h) + +# +# Configure files +# + +efl_config_h = configuration_data() +efl_config_h.set('EFL_VERSION_MAJOR', version_major) +efl_config_h.set('EFL_VERSION_MINOR', version_minor) +efl_config_h.set('EFL_VERSION_MICRO', version_micro) +efl_config_h.set('EFL_BUILD_ID', get_option('build-id')) + +#FIXME placeholder +efl_config_h.set('EFL_API_EO_DEF', '#define EFL_API_EO_DEF "FIXME NOT IMPLEMENTED"') +efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"') + +configure_file( + output: 'config.h', + install: false, + configuration: config_h +) + +configure_file( + input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'), + output: 'Efl_Config.h', + install_dir : join_paths(dir_include,'efl-'+version_major), + configuration: efl_config_h +) diff --git a/src/lib/efl/interfaces/meson.build b/src/lib/efl/interfaces/meson.build new file mode 100644 index 0000000000..9f4a331876 --- /dev/null +++ b/src/lib/efl/interfaces/meson.build @@ -0,0 +1,168 @@ +pub_legacy_eo_files = [ + 'efl_gfx_fill.eo', + 'efl_gfx.eo', + 'efl_gfx_color.eo', + 'efl_image.eo', + 'efl_image_animated.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 : 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_canvas.eo', + 'efl_canvas_pointer.eo', + 'efl_config.eo', + 'efl_control.eo', + 'efl_duplicate.eo', + 'efl_file.eo', + 'efl_image_load.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_text_properties.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_flipable.eo', + 'efl_container.eo', + 'efl_content.eo', + 'efl_pack.eo', + 'efl_pack_layout.eo', + 'efl_pack_linear.eo', + 'efl_pack_table.eo', + 'efl_vpath.eo', + 'efl_vpath_manager.eo', + 'efl_vpath_file.eo', + 'efl_vpath_core.eo', + 'efl_vpath_file_core.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_model_factory_connect.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_item.eo', + 'efl_ui_menu.eo', + 'efl_ui_autorepeat.eo', + 'efl_ui_format.eo', + 'efl_gfx_color_class.eo', + 'efl_gfx_text_class.eo', + 'efl_gfx_size_class.eo', +] + +#FIXME efl depends on evas ... YEAH +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 : 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_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 : 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 + +pub_eo_files = files(pub_eo_files + pub_legacy_eo_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_vpath_file.c', + 'efl_vpath_manager.c', + 'efl_vpath_core.c', + 'efl_vpath_file_core.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 index f6462f4b4a..e4f8e95773 100644 --- a/src/lib/efl/meson.build +++ b/src/lib/efl/meson.build @@ -1,22 +1,29 @@ -#FIXME -#weird to have here ... but oooooh well and its not correct aaarg -efl_config_h = configuration_data() -efl_config_h.set('EFL_VERSION_MAJOR', version_major) -efl_config_h.set('EFL_VERSION_MINOR', version_minor) -efl_config_h.set('EFL_VERSION_MICRO', version_micro) -efl_config_h.set('EFL_BUILD_ID', get_option('build-id')) +efl_header_src = [ + 'Efl.h', + 'Efl_Model_Common.h' +] -#FIXME placeholder -efl_config_h.set('EFL_API_EO_DEF', '#define EFL_API_EO_DEF "FIXME NOT IMPLEMENTED"') -efl_config_h.set('EFL_API_LEGACY_DEF', '#define EFL_API_LEGACY_DEF "FIXME NOT IMPLEMENTED"') +efl_src = [] -efl_config_file = configure_file( - input: '../efl/Efl_Config.h.in', - output: 'Efl_Config.h', - configuration: efl_config_h) +subdir('interfaces') -install_headers(efl_config_file) +efl_lib = library('efl', + efl_src, pub_eo_file_target, + dependencies: [eina, eo, m], + install: true, +) -config_dir += include_directories('.') +efl = declare_dependency( + include_directories: [include_directories('.'), config_dir], + link_with: efl_lib, + dependencies: [eo], + sources : pub_eo_file_target +) -#end FIXME +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/tests/efl/meson.build b/src/tests/efl/meson.build new file mode 100644 index 0000000000..aa5e62347c --- /dev/null +++ b/src/tests/efl/meson.build @@ -0,0 +1,13 @@ +efl_suite_src = [ + 'efl_suite.c', + 'efl_suite.h', + 'efl_test_model_composite.c', + 'efl_test_model_container.c' +] + +efl_suite_bin = executable('efl_suite', + efl_suite_src, + dependencies: [efl, ecore], +) + +test('efl-suite', efl_suite_bin) diff --git a/src/tests/meson.build b/src/tests/meson.build index bfefbfd42a..fcc1ee5b4b 100644 --- a/src/tests/meson.build +++ b/src/tests/meson.build @@ -2,3 +2,5 @@ check = dependency('check') subdir('eina') subdir('eolian') subdir('eo') +#disabled for now we need ecore first +#subdir('efl') --
