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

-- 


Reply via email to