diff --git a/src/modules/evas/image_loaders/meson.build b/src/modules/evas/image_loaders/meson.build index df0d8968ac..4273a25386 100644 --- a/src/modules/evas/image_loaders/meson.build +++ b/src/modules/evas/image_loaders/meson.build @@ -1,42 +1,51 @@ evas_image_loaders_file = [ - ['bmp', []], - ['eet', [eet]], - ['generic', [rt]], - ['gif', [giflib]], - ['ico', []], - ['jpeg', [jpeg]], - ['pmaps', []], - ['png', [png]], - ['psd', []], - ['tga', []], - ['tgv', [rg_etc, lz4]], - ['tiff', [tiff]], - ['wbmp', []], - ['webp', [webp]], - ['xpm', []], + evas_loader_saver_mod_bmp, + evas_loader_saver_mod_eet, + evas_loader_saver_mod_generic, + evas_loader_saver_mod_gif, + evas_loader_saver_mod_ico, + evas_loader_saver_mod_jpeg, + evas_loader_saver_mod_pmaps, + evas_loader_saver_mod_png, + evas_loader_saver_mod_psd, + evas_loader_saver_mod_tga, + evas_loader_saver_mod_tgv, + evas_loader_saver_mod_tiff, + evas_loader_saver_mod_wbmp, + evas_loader_saver_mod_webp, + evas_loader_saver_mod_xpm ] foreach loader_inst : evas_image_loaders_file - loader = loader_inst[0] - loader_deps = loader_inst[1] - - + loader = loader_inst[0] + loader_type = loader_inst[1] + loader_deps = loader_inst[2] if get_option('evas-loaders-disabler').contains(loader) == false - file = join_paths(loader, 'evas_image_load_'+loader+'.c') - - tmp = static_library('image_loader_'+loader, file, - include_directories : config_dir, - dependencies : [evas_pre] + loader_deps - ) - - evas_static_list += [declare_dependency( - sources: file, - dependencies: loader_deps, - )] - - config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + file = join_paths(loader, 'evas_image_load_'+loader+'.c') + if loader_type == 'shared' + evas_package_modules = join_paths(dir_lib, 'evas', 'modules') + mod_install_dir = join_paths(evas_package_modules, 'image_loaders', loader, version_name) + shared_module(loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+loader + '.' + sys_mod_extension) + else + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + tmp = static_library('image_loader_'+loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps + ) + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + endif else message('Image loader '+loader+' disabled') endif -endforeach \ No newline at end of file +endforeach diff --git a/src/modules/evas/image_savers/meson.build b/src/modules/evas/image_savers/meson.build index 81bdbd9f55..35883f2c34 100644 --- a/src/modules/evas/image_savers/meson.build +++ b/src/modules/evas/image_savers/meson.build @@ -1,31 +1,41 @@ - evas_image_savers_file = [ -['eet', [eet]], -['jpeg', [jpeg]], -['png', [png]], -['tgv', [rg_etc, lz4]], -['tiff', [tiff]], -['webp', []] + evas_loader_saver_mod_eet, + evas_loader_saver_mod_jpeg, + evas_loader_saver_mod_png, + evas_loader_saver_mod_tgv, + evas_loader_saver_mod_tiff, + evas_loader_saver_mod_webp ] foreach loader_inst : evas_image_savers_file loader = loader_inst[0] - loader_deps = loader_inst[1] - + loader_type = loader_inst[1] + loader_deps = loader_inst[2] if get_option('evas-loaders-disabler').contains(loader) == false + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') file = join_paths(loader, 'evas_image_save_'+loader+'.c') - - tmp = static_library('image_saver_'+loader, file, - include_directories : config_dir, - dependencies : [evas_pre] + loader_deps - ) - - evas_static_list += [declare_dependency( - sources: file, - dependencies: loader_deps, - )] - - config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + if loader_type == 'shared' + evas_package_modules = join_paths(dir_lib, 'evas', 'modules') + mod_install_dir = join_paths(evas_package_modules, 'image_savers', loader, version_name) + shared_module(loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'lib'+loader + '.' + sys_mod_extension) + else + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + tmp = static_library('image_saver_'+loader, file, + include_directories : config_dir, + dependencies : [evas_pre] + loader_deps + ) + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + endif else message('Image saver '+loader+' disabled') endif diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build index e5973dabad..869665be04 100644 --- a/src/modules/evas/meson.build +++ b/src/modules/evas/meson.build @@ -5,6 +5,22 @@ 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) +evas_loader_saver_mod_bmp = ['bmp', 'shared', []] +evas_loader_saver_mod_eet = ['eet', 'static', [eet]] +evas_loader_saver_mod_generic = ['generic', 'shared', [rt]] +evas_loader_saver_mod_gif = ['gif', 'shared', [giflib]] +evas_loader_saver_mod_ico = ['ico', 'shared', []] +evas_loader_saver_mod_jpeg = ['jpeg', 'static', [jpeg]] +evas_loader_saver_mod_pmaps = ['pmaps', 'shared', []] +evas_loader_saver_mod_png = ['png', 'static', [png]] +evas_loader_saver_mod_psd = ['psd', 'shared', []] +evas_loader_saver_mod_tga = ['tga', 'shared', []] +evas_loader_saver_mod_tgv = ['tgv', 'shared', [rg_etc, lz4]] +evas_loader_saver_mod_tiff = ['tiff', 'shared', [tiff]] +evas_loader_saver_mod_wbmp = ['wbmp', 'shared', []] +evas_loader_saver_mod_webp = ['webp', 'shared', [webp]] +evas_loader_saver_mod_xpm = ['xpm', 'shared', []] + #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 = []