3 ['software_generic', []],
6 ['software_x11', ['x11']],
7 ['wayland_shm', ['wl']],
10 if get_option('opengl') != 'none'
16 ['gl_cocoa', ['cocoa']],
20 if get_option('opengl') == 'es-egl'
21 engines += [['wayland_egl', ['wl']]]
24 #there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later
25 evas_force_static = ['software_generic', 'gl_common']
28 #fixed dependencies by efl
29 png = dependency('libpng')
30 tiff = dependency('libtiff-4')
31 giflib = cc.find_library('gif')
32 json = dependency('rlottie', required: get_option('evas-loaders-disabler').contains('json') == false)
33 webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false)
35 subdir('image_loaders')
36 subdir('image_savers')
37 subdir('model_savers')
38 subdir('model_loaders')
42 foreach engine_conf : engines
43 engine = engine_conf[0]
45 if engine_conf[1].length() > 0
46 build = get_option(engine_conf[1][0])
49 engine_include_dir = []
52 engine_dep = declare_dependency(
53 include_directories: include_directories(join_paths('engines', engine)),
56 var_name = 'engine_'+engine
57 set_variable(var_name, engine_dep)
59 mod_full_name = engine
60 mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name)
62 subdir(join_paths('engines', engine))
64 if get_option('evas-modules') == 'static' or evas_force_static.contains(engine)
65 tmp = static_library(mod_full_name, engine_src,
66 include_directories : config_dir + [engine_include_dir],
67 dependencies : [eina, evas_pre] + engine_deps,
70 if engine == 'software_generic'
71 software_generic = declare_dependency(
72 include_directories: engine_include_dir,
74 dependencies : [eina, evas_pre] + engine_deps,
78 if engine == 'gl_common'
79 #gl_common will only be used by gl_generic, NOT by libevas.so, so we work arround the static list
80 gl_common = declare_dependency(
81 include_directories : include_directories(join_paths('engines', 'gl_common')),
85 evas_static_list += declare_dependency(
86 include_directories: [include_directories('.')] + config_dir + [engine_include_dir],
88 dependencies : [eina, evas_pre] + engine_deps,
91 if engine == 'gl_generic'
92 #special case, see evas_module.c
93 config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1')
95 config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1')
99 #nothing here shared building is handled directly on the engine configuration side
100 #reason for this is that the .so files have to be placed in the correct directory in order
101 # to make them discoverable by evas module code
103 config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1')