meson: move all tizen specific dependancy to 'tizen' option
[platform/upstream/efl.git] / src / modules / evas / engines / meson.build
1 dir_package_modules = join_paths(dir_lib, 'evas', 'modules')
2 package_version_name = 'evas-' + version_major
3 dir_package_include = join_paths(dir_include, package_version_name)
4
5 engines = [
6  ['buffer', []],
7  ['fb', ['fb']],
8  ['drm', ['drm']],
9  ['software_x11', ['x11']],
10  ['wayland_shm', ['wl']],
11 ]
12
13 if sys_windows == true
14  engines += [
15    ['software_ddraw', []],
16    ['software_gdi', []],
17  ]
18 endif
19
20 if get_option('opengl') != 'none'
21   engines += [
22    ['gl_generic', []],
23    ['gl_x11', ['x11']],
24    ['gl_drm', ['drm']],
25    ['gl_cocoa', ['cocoa']],
26   ]
27 endif
28
29 if get_option('opengl') == 'es-egl'
30   engines += [['wayland_egl', ['wl']]]
31 endif
32
33 if get_option('tizen') == true
34   engines += [
35    ['gl_tbm', []],
36    ['software_tbm', []],
37   ]
38 endif
39
40
41 foreach engine_conf : engines
42   engine = engine_conf[0]
43   build = true
44   if engine_conf[1].length() > 0
45     build = get_option(engine_conf[1][0])
46   endif
47   if build
48     engine_include_dir = []
49     engine_src = []
50     engine_deps = []
51     engine_dep = declare_dependency(
52       include_directories: include_directories(engine),
53     )
54
55     var_name = 'engine_'+engine
56     set_variable(var_name, engine_dep)
57
58     mod_full_name = engine
59     # root meson.build declares the root evas engines project as `evas/engines`,
60     # but modules must be installed in evas/modules
61     evas_package_modules = join_paths(dir_lib, 'evas', 'modules')
62     mod_install_dir = join_paths(evas_package_modules, 'engines', engine, version_name)
63
64     subdir(engine)
65
66     if get_option('evas-modules') == 'static'
67       if module == 'gl_generic'
68         tmp = static_library(mod_full_name, engine_src,
69           include_directories : config_dir + [engine_include_dir],
70           dependencies : [eina, evas_pre] + engine_deps,
71           c_args: ['-DEVAS_GL_RENDER_THREAD_COMPILE_FOR_GL_GENERIC',]
72         )
73       else
74         tmp = static_library(mod_full_name, engine_src,
75           include_directories : config_dir + [engine_include_dir],
76           dependencies : [eina, evas_pre] + engine_deps,
77         )
78       endif
79
80       evas_static_list += declare_dependency(
81         include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
82         link_with: tmp,
83         dependencies : [eina, evas_pre] + engine_deps,
84         sources : engine_src
85       )
86       if engine == 'gl_generic'
87         #special case, see evas_module.c
88         config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
89       else
90         config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
91       endif
92     else
93       #nothing here shared building is handled directly on the engine configuration side
94       #reason for this is that the .so files have to be placed in the correct directory in order
95       # to make them discoverable by evas module code
96     endif
97     config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')
98   endif
99 endforeach
100
101 config_h.set('EVAS_STATIC_BUILD_SOFTWARE_GENERIC', '1')
102 config_h.set('BUILD_ENGINE_SOFTWARE_GENERIC', '1')