From: Marcel Hollerbach Date: Fri, 19 Apr 2019 18:39:25 +0000 (-0400) Subject: meson: seperate the engine build file from the rest X-Git-Tag: accepted/tizen/unified/20190429.103734~24 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7fe40fad939e5d1bb4a1c0802bb73d2dd171641c;p=platform%2Fupstream%2Fefl.git meson: seperate the engine build file from the rest Summary: this is required later on, where we want to build the engines undependend from image loaders etc. Depends on D8668 Reviewers: zmike, stefan_schmidt, cedric, vtorri Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D8669 Change-Id: Iad68a3932bdb10868f51f2f881737befb92f4b6a --- diff --git a/src/modules/evas/engines/meson.build b/src/modules/evas/engines/meson.build new file mode 100644 index 0000000..051a648 --- /dev/null +++ b/src/modules/evas/engines/meson.build @@ -0,0 +1,89 @@ +engines = [ + ['buffer', []], + ['fb', ['fb']], + ['drm', ['drm']], + ['software_x11', ['x11']], + ['wayland_shm', ['wl']], +] + +if get_option('opengl') != 'none' + engines += [ + ['gl_generic', []], + ['gl_x11', ['x11']], + ['gl_drm', ['drm']], + ['gl_cocoa', ['cocoa']], + ] +endif + +if get_option('opengl') == 'es-egl' + engines += [['wayland_egl', ['wl']]] +endif + +#<----TIZEN_ONLY +if get_option('tbm') == true + engines += [ + ['gl_tbm', []], + ['software_tbm', []], + ] +endif +#TIZEN_ONLY----> + +foreach engine_conf : engines + engine = engine_conf[0] + build = true + if engine_conf[1].length() > 0 + build = get_option(engine_conf[1][0]) + endif + if build + engine_include_dir = [] + engine_src = [] + engine_deps = [] + engine_dep = declare_dependency( + include_directories: include_directories(engine), + ) + + var_name = 'engine_'+engine + set_variable(var_name, engine_dep) + + mod_full_name = engine + mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name) + + subdir(engine) + + if get_option('evas-modules') == 'static' + if module == 'gl_generic' + tmp = static_library(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + c_args: ['-DEVAS_GL_RENDER_THREAD_COMPILE_FOR_GL_GENERIC',] + ) + else + tmp = static_library(mod_full_name, engine_src, + include_directories : config_dir + [engine_include_dir], + dependencies : [eina, evas_pre] + engine_deps, + ) + endif + + evas_static_list += declare_dependency( + include_directories: [include_directories('.')] + config_dir + [engine_include_dir], + link_with: tmp, + dependencies : [eina, evas_pre] + engine_deps, + sources : engine_src + ) + if engine == 'gl_generic' + #special case, see evas_module.c + config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1') + else + config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1') + endif + else + #nothing here shared building is handled directly on the engine configuration side + #reason for this is that the .so files have to be placed in the correct directory in order + # to make them discoverable by evas module code + endif + config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1') + endif +endforeach + +config_h.set('EVAS_STATIC_BUILD_SOFTWARE_GENERIC', '1') +config_h.set('BUILD_ENGINE_SOFTWARE_GENERIC', '1') diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build index 95e66d8..17b87f0 100644 --- a/src/modules/evas/meson.build +++ b/src/modules/evas/meson.build @@ -1,34 +1,3 @@ -engines = [ - ['buffer', []], - ['fb', ['fb']], - ['drm', ['drm']], - ['software_x11', ['x11']], - ['wayland_shm', ['wl']], -] - -if get_option('opengl') != 'none' - engines += [ - ['gl_generic', []], - ['gl_x11', ['x11']], - ['gl_drm', ['drm']], - ['gl_cocoa', ['cocoa']], - ] -endif - -if get_option('opengl') == 'es-egl' - engines += [['wayland_egl', ['wl']]] -endif - -if get_option('tbm') == true - engines += [ - ['gl_tbm', []], - ['software_tbm', []], - ] -endif - -#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later -evas_static_list = [] - #fixed dependencies by efl png = dependency('libpng') tiff = dependency('libtiff-4') @@ -36,61 +5,13 @@ giflib = cc.find_library('gif') json = dependency('rlottie', required: get_option('evas-loaders-disabler').contains('json') == false) webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false) +#there are a few modules that should NEVER be build as a module but rather be build as static lib and linked in later +evas_static_list = [] + subdir('image_loaders') subdir('image_savers') subdir('model_savers') subdir('model_loaders') subdir('vg_savers') subdir('vg_loaders') - -foreach engine_conf : engines - engine = engine_conf[0] - build = true - if engine_conf[1].length() > 0 - build = get_option(engine_conf[1][0]) - endif - if build - engine_include_dir = [] - engine_src = [] - engine_deps = [] - engine_dep = declare_dependency( - include_directories: include_directories(join_paths('engines', engine)), - ) - - var_name = 'engine_'+engine - set_variable(var_name, engine_dep) - - mod_full_name = engine - mod_install_dir = join_paths(dir_package_modules, 'engines', engine, version_name) - - subdir(join_paths('engines', engine)) - - if get_option('evas-modules') == 'static' - tmp = static_library(mod_full_name, engine_src, - include_directories : config_dir + [engine_include_dir], - dependencies : [eina, evas_pre] + engine_deps, -# c_args: ['-DEVAS_GL_RENDER_THREAD_COMPILE_FOR_GL_GENERIC',] - ) - evas_static_list += declare_dependency( - include_directories: [include_directories('.')] + config_dir + [engine_include_dir], - link_with: tmp, - dependencies : [eina, evas_pre] + engine_deps, - sources : engine_src - ) - if engine == 'gl_generic' - #special case, see evas_module.c - config_h.set('EVAS_STATIC_BUILD_GL_COMMON', '1') - else - config_h.set('EVAS_STATIC_BUILD_'+engine.to_upper(), '1') - endif - else - #nothing here shared building is handled directly on the engine configuration side - #reason for this is that the .so files have to be placed in the correct directory in order - # to make them discoverable by evas module code - endif - config_h.set('BUILD_ENGINE_'+engine.to_upper(), '1') - endif -endforeach - -config_h.set('EVAS_STATIC_BUILD_SOFTWARE_GENERIC', '1') -config_h.set('BUILD_ENGINE_SOFTWARE_GENERIC', '1') +subdir('engines')