bu5hm4n pushed a commit to branch feature/meson. http://git.enlightenment.org/core/efl.git/commit/?id=3d27a5eb1d25eeaa4fc0e3b92cd2db1a2d02cd34
commit 3d27a5eb1d25eeaa4fc0e3b92cd2db1a2d02cd34 Author: Marcel Hollerbach <[email protected]> Date: Tue Jan 2 14:22:58 2018 +0000 meson: here comes ecore_evas --- meson.build | 4 +- meson_options.txt | 11 +++++ src/examples/evas/meson.build | 57 ++++++++++++++++++++++ src/lib/ecore_evas/meson.build | 45 +++++++++++++++++ src/lib/ecore_input_evas/meson.build | 30 ++++++++++++ src/modules/ecore_evas/engines/cocoa/meson.build | 6 +++ src/modules/ecore_evas/engines/drm/meson.build | 13 +++++ src/modules/ecore_evas/engines/extn/meson.build | 2 + src/modules/ecore_evas/engines/fb/meson.build | 3 ++ src/modules/ecore_evas/engines/sdl/meson.build | 2 + src/modules/ecore_evas/engines/wayland/meson.build | 15 ++++++ src/modules/ecore_evas/engines/win32/meson.build | 1 + src/modules/ecore_evas/engines/x/meson.build | 13 +++++ src/modules/ecore_evas/meson.build | 41 ++++++++++++++++ 14 files changed, 242 insertions(+), 1 deletion(-) diff --git a/meson.build b/meson.build index de969abfbf..6b270ba674 100644 --- a/meson.build +++ b/meson.build @@ -116,8 +116,10 @@ subprojects = [ ['elput' , false, true, false, false, true, false, []], ['ecore_drm2' , false, true, false, false, false, false, []], ['ecore_cocoa' , false, true, false, false, false, false, []], -['evas' , true, true, false, false, true, false, ['vg_common', 'libunibreak']], +['evas' , true, true, false, false, true, true, ['vg_common', 'libunibreak']], ['evas_goal' , false, true, false, false, false, false, []], +['ecore_input_evas' , false, true, false, false, false, false, []], +['ecore_evas' , true, true, false, false, false, false, []], ] # We generate Efl_Config.h and config.h later, they will be available here diff --git a/meson_options.txt b/meson_options.txt index c0efa9e95b..32db772cb9 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -152,6 +152,17 @@ option('opengl', type : 'combo', choices : ['full', 'es-egl', 'none'], value : 'none', +) + +option('ecore_input_evas', + type : 'boolean', + value : true, + description : 'build evas' +) + +option('ecore_evas', + type : 'boolean', + value : true, description : 'build evas' ) diff --git a/src/examples/evas/meson.build b/src/examples/evas/meson.build new file mode 100644 index 0000000000..c07587dec6 --- /dev/null +++ b/src/examples/evas/meson.build @@ -0,0 +1,57 @@ +examples = [ + 'evas-3d-aabb', + 'evas-3d-blending', + 'evas-3d-colorpick', + 'evas-3d-cube2', + 'evas-3d-cube', + 'evas-3d-cube-rotate', + 'evas-3d-eet', + 'evas-3d-fog', + 'evas-3d-frustum', + 'evas-3d-hull', + 'evas-3d-md2', + 'evas-3d-mmap-set', + 'evas-3d-obj', + 'evas-3d-parallax-occlusion', + 'evas-3d-pick', + 'evas-3d-ply', + 'evas-3d-proxy', + 'evas-3d-shadows', + 'evas-3d-static-lod', + #'evas-aspect-hints', + 'evas-box', + 'evas-buffer-simple', + 'evas-event-filter', + 'evas-events', + 'evas-gl', + 'evas-hints', + 'evas-images2', + 'evas-images3', + 'evas-images4', + 'evas-images5', + 'evas-images', + 'evas-init-shutdown', + 'evas-map-aa', + 'evas-map-aa-eo', + 'evas-map-utils', + 'evas-map-utils-eo', + 'evas-multiseat-events', + 'evas-multi-touch', + 'evas-object-manipulation', + 'evas-object-manipulation-eo', + 'evas-smart-interface', + 'evas-smart-object', + 'evas-stacking', + 'evas-table', + 'evas-textblock-obstacles', + 'evas-text', + 'evas-transparent', + 'evas-vg-batman', + 'evas-vg-simple', +] + +foreach example : examples + executable(example, example + '.c', + dependencies: [eina, ecore_evas, ecore_file, m], + c_args : ['-DPACKAGE_EXAMPLES_DIR="'+meson.current_source_dir()+'"']) +endforeach diff --git a/src/lib/ecore_evas/meson.build b/src/lib/ecore_evas/meson.build new file mode 100644 index 0000000000..461da9b79c --- /dev/null +++ b/src/lib/ecore_evas/meson.build @@ -0,0 +1,45 @@ +ecore_evas_deps = [eina, ecore_input_evas, ecore_input, ecore, eet, evas, efl, eo, eina, emile] +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], + include_directories : config_dir, + install: true, +) + +ecore_evas = declare_dependency( + include_directories: [include_directories('.')], + link_with: ecore_evas_lib, + sources : pub_eo_file_target, + dependencies: [evas], +) + +install_headers(ecore_evas_header_src, + install_dir : dir_package_include, +) \ No newline at end of file diff --git a/src/lib/ecore_input_evas/meson.build b/src/lib/ecore_input_evas/meson.build new file mode 100644 index 0000000000..1e6a650ca2 --- /dev/null +++ b/src/lib/ecore_input_evas/meson.build @@ -0,0 +1,30 @@ +ecore_input_evas_deps = [ecore, ecore_input, 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_deps], + include_directories : config_dir, + install: true, +) + +ecore_input_evas = declare_dependency( + include_directories: [include_directories('.')], + link_with: ecore_input_evas_lib, + sources : pub_eo_file_target, + dependencies: [eina, evas], +) + +install_headers(ecore_input_evas_header_src, + install_dir : dir_package_include, +) \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/cocoa/meson.build b/src/modules/ecore_evas/engines/cocoa/meson.build new file mode 100644 index 0000000000..97c1d997ba --- /dev/null +++ b/src/modules/ecore_evas/engines/cocoa/meson.build @@ -0,0 +1,6 @@ +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_OPENGL_COCOA', '1') +endif + +engine_src = files(['ecore_evas_cocoa.c']) +engine_deps = [ecore_cocoa] \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/drm/meson.build b/src/modules/ecore_evas/engines/drm/meson.build new file mode 100644 index 0000000000..bd14e18dac --- /dev/null +++ b/src/modules/ecore_evas/engines/drm/meson.build @@ -0,0 +1,13 @@ +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1') +endif + +engine_src = files(['ecore_evas_drm.c']) +engine_deps = [ecore_drm2, ecore_input, eeze, elput, libdrm, engine_drm] + +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_GL_DRM', '1') + engine_deps += [engine_gl_drm] +endif + +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'drm')) diff --git a/src/modules/ecore_evas/engines/extn/meson.build b/src/modules/ecore_evas/engines/extn/meson.build new file mode 100644 index 0000000000..e93c376a58 --- /dev/null +++ b/src/modules/ecore_evas/engines/extn/meson.build @@ -0,0 +1,2 @@ +engine_src = files(['ecore_evas_extn.c', 'ecore_evas_extn_buf.c', 'ecore_evas_extn_engine.h']) +engine_deps = [ecore_input, ecore_ipc] \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/fb/meson.build b/src/modules/ecore_evas/engines/fb/meson.build new file mode 100644 index 0000000000..cfadc381fb --- /dev/null +++ b/src/modules/ecore_evas/engines/fb/meson.build @@ -0,0 +1,3 @@ +engine_src = files(['ecore_evas_fb.c']) +engine_deps = [ecore_fb, ecore_input] +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'fb')) \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/sdl/meson.build b/src/modules/ecore_evas/engines/sdl/meson.build new file mode 100644 index 0000000000..64c699b680 --- /dev/null +++ b/src/modules/ecore_evas/engines/sdl/meson.build @@ -0,0 +1,2 @@ +engine_src = files(['ecore_evas_sdl.c']) +engine_deps = [ecore_sdl] \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/wayland/meson.build b/src/modules/ecore_evas/engines/wayland/meson.build new file mode 100644 index 0000000000..dea2ada049 --- /dev/null +++ b/src/modules/ecore_evas/engines/wayland/meson.build @@ -0,0 +1,15 @@ +if get_option('opengl') == 'es-egl' + config_h.set('BUILD_ECORE_EVAS_WAYLAND_EGL', '1') +endif + +config_h.set('BUILD_ECORE_EVAS_WAYLAND_SHM', '1') + +engine_src = files([ + 'ecore_evas_wayland_egl.c', + 'ecore_evas_wayland_common.c', + 'ecore_evas_wayland_shm.c', + 'ecore_evas_wayland_private.h' + ]) + +engine_deps = [ecore_wl2, ecore_input] +engine_include_dir += include_directories(join_paths('..', '..', '..', 'evas', 'engines', 'wayland_common')) \ No newline at end of file diff --git a/src/modules/ecore_evas/engines/win32/meson.build b/src/modules/ecore_evas/engines/win32/meson.build new file mode 100644 index 0000000000..c74227a2e2 --- /dev/null +++ b/src/modules/ecore_evas/engines/win32/meson.build @@ -0,0 +1 @@ +engine_src = files(['ecore_evas_win32.c']) diff --git a/src/modules/ecore_evas/engines/x/meson.build b/src/modules/ecore_evas/engines/x/meson.build new file mode 100644 index 0000000000..0cd58e0c1d --- /dev/null +++ b/src/modules/ecore_evas/engines/x/meson.build @@ -0,0 +1,13 @@ +config_h.set('BUILD_ECORE_EVAS_X11', '1') +config_h.set('BUILD_ECORE_EVAS_SOFTWARE_X11', '1') + +engine_src = files(['ecore_evas_x.c']) +engine_deps += [ecore_x, ecore_input] + +engine_deps += [engine_software_x11] + +if get_option('opengl') != 'none' + config_h.set('BUILD_ECORE_EVAS_OPENGL_X11', '1') + engine_deps += [engine_gl_x11] +endif + diff --git a/src/modules/ecore_evas/meson.build b/src/modules/ecore_evas/meson.build new file mode 100644 index 0000000000..eeb0458106 --- /dev/null +++ b/src/modules/ecore_evas/meson.build @@ -0,0 +1,41 @@ +engines = [ +#['cocoa', ] +['drm', ['ecore_drm2']], +['extn', []], +['fb', ['ecore_fb']], +#['sdl', ['ecore_sdl']], +['wayland', ['ecore_wl2']], +#['win32', ['ecore_win32']], +['x', ['ecore_x']], +] + + +foreach engine_conf : engines + engine = engine_conf[0] + build = true + engine_deps = [] + + if engine_conf[1].length() > 0 + build = get_option(engine_conf[1]) + endif + + if build + engine_include_dir = [] + engine_src = [] + + config_h.set('BUILD_ECORE_EVAS_'+engine.to_upper(), '1') + + subdir(join_paths('engines', engine)) + + mod_full_name = 'ecore_evas_engine_'+engine + mod_install_dir = join_paths(dir_lib, package_name, 'engines', engine, module_arch) + + shared_module(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, ecore_evas, ecore_input_evas] + engine_deps, + install : true, + install_dir : mod_install_dir + ) + module_files += join_paths(mod_install_dir, 'lib'+mod_full_name+'.so') + endif +endforeach \ No newline at end of file --
