summaryrefslogtreecommitdiff
path: root/src/modules/evas/engines
diff options
context:
space:
mode:
Diffstat (limited to 'src/modules/evas/engines')
-rw-r--r--src/modules/evas/engines/meson.build72
1 files changed, 72 insertions, 0 deletions
diff --git a/src/modules/evas/engines/meson.build b/src/modules/evas/engines/meson.build
new file mode 100644
index 0000000000..6eb53e4c04
--- /dev/null
+++ b/src/modules/evas/engines/meson.build
@@ -0,0 +1,72 @@
1engines = [
2 ['buffer', []],
3 ['fb', ['fb']],
4 ['drm', ['drm']],
5 ['software_x11', ['x11']],
6 ['wayland_shm', ['wl']],
7]
8
9if get_option('opengl') != 'none'
10 engines += [
11 ['gl_generic', []],
12 ['gl_x11', ['x11']],
13 ['gl_drm', ['drm']],
14 ['gl_cocoa', ['cocoa']],
15 ]
16endif
17
18if get_option('opengl') == 'es-egl'
19 engines += [['wayland_egl', ['wl']]]
20endif
21
22
23foreach engine_conf : engines
24 engine = engine_conf[0]
25 build = true
26 if engine_conf[1].length() > 0
27 build = get_option(engine_conf[1][0])
28 endif
29 if build
30 engine_include_dir = []
31 engine_src = []
32 engine_deps = []
33 engine_dep = declare_dependency(
34 include_directories: include_directories(engine),
35 )
36
37 var_name = 'engine_'+engine
38 set_variable(var_name, engine_dep)
39
40 mod_full_name = engine
41 mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name)
42
43 subdir(engine)
44
45 if get_option('evas-modules') == 'static'
46 tmp = static_library(mod_full_name, engine_src,
47 include_directories : config_dir + [engine_include_dir],
48 dependencies : [eina, evas_pre] + engine_deps,
49 )
50 evas_static_list += declare_dependency(
51 include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
52 link_with: tmp,
53 dependencies : [eina, evas_pre] + engine_deps,
54 sources : engine_src
55 )
56 if engine == 'gl_generic'
57 #special case, see evas_module.c
58 config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
59 else
60 config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
61 endif
62 else
63 #nothing here shared building is handled directly on the engine configuration side
64 #reason for this is that the .so files have to be placed in the correct directory in order
65 # to make them discoverable by evas module code
66 endif
67 config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
68 endif
69endforeach
70
71config_h.set('EVAS_STATIC_BUILD_SOFTWARE_GENERIC', '1')
72config_h.set('BUILD_ENGINE_SOFTWARE_GENERIC', '1')