From 28f630ba418719c36ea679541acc97c59cf5183c Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Tue, 29 Oct 2019 12:54:55 -0400 Subject: [PATCH] meson: redo evas building Summary: before recent times we had to support static and shared building based on the options of the user, which forced us to complicate our build with the evas_goal hack. the evas_goal hack more or less was the idea of "faking" the evas build in the evas directory, finish all the .eo generation there, then build the modules and make all the static files ready. Then build everything in evas_goal. Now, that we just build everything the same always, we can simply build it in the evas way (removing the evas_goal hack FINALLY), as the same modules are build statically and shared. This also gives us the possibility to build the shared image loaders *again* the the modules directory, which unbreaks peoples build scripts who packaged loader files seperatly. Reviewers: zmike, raster, cedric, stefan_schmidt Reviewed By: zmike Subscribers: #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D10548 --- meson.build | 10 +- src/lib/evas/file/evas_module.c | 25 +-- src/lib/evas/meson.build | 166 ++++++++++++++-- src/lib/evas_goal/empty.c | 0 src/lib/evas_goal/meson.build | 179 ------------------ src/modules/evas/image_loaders/meson.build | 23 +++ src/modules/evas/image_savers/meson.build | 23 +++ src/modules/evas/meson.build | 4 +- src/modules/evas/model_loaders/meson.build | 17 +- src/modules/evas/model_savers/meson.build | 17 +- src/modules/evas/vg_loaders/meson.build | 27 +-- src/modules/evas/vg_savers/meson.build | 18 +- .../buildsystem/buildsystem_meson.c | 4 + 13 files changed, 210 insertions(+), 303 deletions(-) delete mode 100644 src/lib/evas_goal/empty.c delete mode 100644 src/lib/evas_goal/meson.build create mode 100644 src/modules/evas/image_loaders/meson.build create mode 100644 src/modules/evas/image_savers/meson.build diff --git a/meson.build b/meson.build index 4de9757946..702e38390b 100644 --- a/meson.build +++ b/meson.build @@ -249,13 +249,6 @@ ecore_evas_wayland_engine_include_dir = [] evas_static_list = [] -evas_lib = ['evas' ,[], false, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']] -evas_img_modules = ['evas' ,[], true, false, false, false, false, false, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']] -evas_engines = [join_paths('evas', 'engines'),[], true, false, false, false, false, false, [], []] -evas_goal = ['evas_goal' ,[], false, true, false, false, false, false, ['eina', 'efl', 'eo'], []] - -evas_settings = [ evas_lib, evas_img_modules, evas_goal, evas_engines ] - subprojects = [ # name | option | mod | lib | bin | bench | tests | examples | pkg-config options | name of static libs ['evil' ,[] , false, true, false, false, false, false, [], []], @@ -284,7 +277,8 @@ subprojects = [ ['ector' ,[] , false, true, false, false, true, false, ['eina', 'efl'], ['draw', 'triangulator', 'freetype']], ['elput' ,['drm'] , false, true, false, false, true, false, ['eina', 'eldbus'], []], ['ecore_drm2' ,['drm'] , false, true, false, false, false, false, ['ecore'], ['libdrm']], -['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, ['eina'], []]] + evas_settings +[ +['ecore_cocoa' ,['cocoa'] , false, true, false, false, false, false, ['eina'], []], +['evas' ,[] , true, true, false, false, true, true, ['eina', 'efl', 'eo'], ['vg_common', 'libunibreak']], ['ecore_input_evas' ,[] , false, true, false, false, false, false, ['eina', 'evas'], []], ['ecore_evas' ,[] , true, true, true, false, false, false, ['evas', 'ector'], []], ['ecore_imf' ,[] , true, true, false, false, false, false, ['eina'], []], diff --git a/src/lib/evas/file/evas_module.c b/src/lib/evas/file/evas_module.c index b651ad544a..a1e8b623af 100644 --- a/src/lib/evas/file/evas_module.c +++ b/src/lib/evas/file/evas_module.c @@ -599,27 +599,12 @@ evas_module_find_type(Evas_Module_Type type, const char *name) { if (run_in_tree == 1) { - // special cases due to compleixty of meson build and - // putting these in odd places in the tree - do special - // name lookups for build in tree module lookups - if (type == EVAS_MODULE_TYPE_IMAGE_LOADER) - { - snprintf(buffer, sizeof(buffer), - PACKAGE_BUILD_DIR"/src/lib/evas_goal/libshared_loader_%s"MOD_SUFFIX, name); - } - else if (type == EVAS_MODULE_TYPE_IMAGE_SAVER) - { - snprintf(buffer, sizeof(buffer), - PACKAGE_BUILD_DIR"/src/lib/evas_goal/libshared_saver_%s"MOD_SUFFIX, name); - } - else - { - char subsystem[PATH_MAX]; + char subsystem[PATH_MAX]; - snprintf(subsystem, sizeof(subsystem), "evas/%s", type_str); - bs_mod_get(buffer, sizeof(buffer), subsystem, name); - } - if (!evas_file_path_exists(buffer)) buffer[0] = '\0'; + snprintf(subsystem, sizeof(subsystem), "evas/%s", type_str); + bs_mod_get(buffer, sizeof(buffer), subsystem, name); + if (!evas_file_path_exists(buffer)) + buffer[0] = '\0'; } } #endif diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build index e1165bebc2..d2202389b6 100644 --- a/src/lib/evas/meson.build +++ b/src/lib/evas/meson.build @@ -1,16 +1,53 @@ # README # -# Evas build is a bit more complex. -# the final shared library is build in src/lib/evas_goal/meson.build. -# -# The content of lib/evas is build as static_library as -# are all the engines loaders and savers. -# # All those stages are defining dependencies with theire source code # as 'source :', later everything is build as libevas.so. # -# For now loaders and savers are ALWAYS build statically. -# + +png = dependency('libpng') +tiff = dependency('libtiff-4', required: get_option('evas-loaders-disabler').contains('tiff') == false) +giflib = cc.find_library('gif') +webp = dependency('libwebp', required: get_option('evas-loaders-disabler').contains('webp') == false) + +evas_image_loaders_file = [ + ['bmp', 'shared', []], + ['eet', 'static', [eet]], + ['generic', 'shared', [rt]], + ['gif', 'shared', [giflib]], + ['ico', 'shared', []], + ['jpeg', 'static', [jpeg]], + ['pmaps', 'shared', []], + ['png', 'static', [png]], + ['psd', 'shared', []], + ['tga', 'shared', []], + ['tgv', 'shared', [rg_etc, lz4]], + ['tiff', 'shared', [tiff]], + ['wbmp', 'shared', []], + ['webp', 'shared', [webp]], + ['xpm', 'shared', []] +] + +evas_image_savers_file = [ + ['eet', 'static', [eet]], + ['jpeg', 'static', [jpeg]], + ['png', 'static', [png]], + ['tgv', 'shared', [rg_etc, lz4]], + ['tiff', 'shared', [tiff]], + ['webp', 'shared', [webp]], +] +json = dependency('rlottie', required: get_option('evas-loaders-disabler').contains('json') == false) + +evas_vg_loaders_file = [ + ['eet', [eet]], + ['json', [json]], + ['svg', []], +] + +evas_vg_savers_file = ['eet', 'svg'] + +evas_model_savers_file = ['eet', 'obj', 'ply'] + +evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply'] rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 'software_generic') evas_deps = [eo, eet, eina, efl, emile, ector, ecore, buildsystem, intl] @@ -168,13 +205,8 @@ if get_option('opengl') != 'none' endif endif -evas_pre = declare_dependency( - include_directories: evas_include_directories + [vg_common_inc_dir] + [include_directories(join_paths('..', '..', 'modules', 'evas', 'engines', 'buffer'))], - sources : pub_eo_file_target + priv_eo_file_target, - dependencies: [eina, eo, ector, emile, evas_deps, m], -) - evas_link = [ ] +evas_pub_deps = [eina, ecore, ector, emile] if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false evas_opt = static_library('evas_opt', @@ -189,11 +221,106 @@ if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false evas_link += [ evas_opt ] endif -evas_pre_lib_dep = declare_dependency( - include_directories: evas_include_directories + [vg_common_inc_dir], - sources : [evas_src, pub_eo_file_target], - link_with: evas_link, - dependencies: [evas_deps, m, draw, valgrind, libunibreak] +foreach loader_inst : evas_image_loaders_file + loader = loader_inst[0] + loader_type = loader_inst[1] + loader_deps = loader_inst[2] + if get_option('evas-loaders-disabler').contains(loader) == false + if loader_type == 'static' + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c') + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + endif + else + message('Image loader '+loader+' disabled') + endif +endforeach + +foreach loader_inst : evas_image_savers_file + loader = loader_inst[0] + loader_type = loader_inst[1] + loader_deps = loader_inst[2] + if get_option('evas-loaders-disabler').contains(loader) == false + if loader_type == 'static' + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c') + config_h.set('EVAS_STATIC_BUILD_'+loader.to_upper(), '1') + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + endif + else + message('Image saver '+loader+' disabled') + endif +endforeach + +foreach loader_inst : evas_vg_loaders_file + loader = loader_inst[0] + loader_deps = loader_inst[1] + + if (get_option('evas-loaders-disabler').contains(loader) == false) + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'vg_loaders', loader, 'evas_vg_load_'+loader+'.c') + evas_static_list += [declare_dependency( + sources: file, + dependencies: loader_deps, + )] + config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1') + endif +endforeach + +foreach loader : evas_vg_savers_file + if (get_option('evas-loaders-disabler').contains(loader) == false) + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'vg_savers', loader, 'evas_vg_save_'+loader+'.c') + evas_static_list += [declare_dependency( + sources: file, + dependencies: [eo, ector, emile, freetype, eet], + )] + config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1') + endif +endforeach + +foreach loader : evas_model_loaders_file + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'model_loaders', loader, 'evas_model_load_'+loader+'.c') + + evas_static_list += [declare_dependency( + sources: file, + )] +endforeach + +foreach loader : evas_model_savers_file + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'model_savers', loader, 'evas_model_save_'+loader+'.c') + + evas_static_list += [declare_dependency( + sources: file, + )] +endforeach + +evas_lib = library('evas', + include_directories: evas_include_directories + [vg_common_inc_dir], + sources : [evas_src, pub_eo_file_target, priv_eo_file_target], + dependencies: [evas_deps, m, draw, valgrind, libunibreak, evas_static_list], + link_with: evas_link, + install: true, + c_args : '-DPACKAGE_DATA_DIR="'+join_paths(dir_data, 'evas')+'"', + version : meson.project_version() +) + +evas = declare_dependency( + link_with : [evas_lib], + sources: pub_eo_file_target, + dependencies : [m] + evas_pub_deps + evas_deps, + include_directories: evas_include_directories + [vg_common_inc_dir] + [include_directories(join_paths('..', '..', 'modules', 'evas', 'engines', 'buffer'))], +) + +evas_bin = declare_dependency( + link_with : [evas_lib], + dependencies : [eina, ecore, ector, emile, lua], + include_directories : evas_include_directories ) if get_option('install-eo-files') @@ -206,7 +333,6 @@ install_headers(evas_header_src, install_dir : dir_package_include, ) -automatic_pkgfile = false pub_eo_files = [] package_eo_subdirs += ['canvas', 'gesture'] package_header_subdirs += ['canvas', 'gesture'] diff --git a/src/lib/evas_goal/empty.c b/src/lib/evas_goal/empty.c deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build deleted file mode 100644 index 59473fea93..0000000000 --- a/src/lib/evas_goal/meson.build +++ /dev/null @@ -1,179 +0,0 @@ -#fixed dependencies by efl -png = dependency('libpng') -tiff = dependency('libtiff-4', required: get_option('evas-loaders-disabler').contains('tiff') == false) -giflib = cc.find_library('gif') -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', []] - -evas_image_loaders_file = [ - 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 -] - -evas_image_savers_file = [ - 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_loaders_file - loader = loader_inst[0] - loader_type = loader_inst[1] - loader_deps = loader_inst[2] - if get_option('evas-loaders-disabler').contains(loader) == false - if loader_type == 'static' - config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') - file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c') - 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 - -foreach loader_inst : evas_image_savers_file - loader = loader_inst[0] - loader_type = loader_inst[1] - loader_deps = loader_inst[2] - if get_option('evas-loaders-disabler').contains(loader) == false - if loader_type == 'static' - config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') - file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c') - 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 -endforeach - -evas_lib = library('evas', - 'empty.c', - #all the source code is coming from evas_pre_lib_dep - dependencies: [evas_pre_lib_dep, evas_static_list], - install: true, - c_args : '-DPACKAGE_DATA_DIR="'+join_paths(dir_data, 'evas')+'"', - version : meson.project_version() -) - -evas_pub_deps = [eina, ecore, ector, emile, evas_pre] - -evas = declare_dependency( - link_with : [evas_lib], - dependencies : evas_pub_deps, - include_directories : evas_include_directories -) - -evas_bin = declare_dependency( - link_with : [evas_lib], - dependencies : [eina, ecore, ector, emile, lua], - include_directories : evas_include_directories -) - -tmp_package_subdirs = [] -automatic_pkgfile = false - -foreach subdir : evas_header_subdirs - tmp_package_subdirs += join_paths('evas-'+version_major, subdir) -endforeach - -pkgconfig.generate(evas_lib, - name : 'evas', - subdirs : ['evas-'+version_major] + tmp_package_subdirs, - version : version_major + '.' + version_minor + '.' + version_micro, - libraries : [eina, ecore, ector, emile, lua], -) - -foreach loader_inst : evas_image_loaders_file - loader = loader_inst[0] - loader_type = loader_inst[1] - loader_deps = loader_inst[2] - if get_option('evas-loaders-disabler').contains(loader) == false - if loader_type == 'shared' - config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') - file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c') - evas_package_modules = join_paths(dir_lib, 'evas', 'modules') - mod_install_dir = join_paths(evas_package_modules, 'image_loaders', loader, version_name) - shared_module('shared_loader_'+loader, file, - include_directories : config_dir, - dependencies : [eina, evas] + loader_deps, - install : true, - install_dir : mod_install_dir, - name_suffix : sys_mod_extension - ) - module_files += join_paths(mod_install_dir, 'libshared_loader_'+loader + '.' + sys_mod_extension) - endif - else - message('Image loader '+loader+' disabled') - endif -endforeach - -foreach loader_inst : evas_image_savers_file - loader = loader_inst[0] - loader_type = loader_inst[1] - loader_deps = loader_inst[2] - if get_option('evas-loaders-disabler').contains(loader) == false - if loader_type == 'shared' - config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') - file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c') - evas_package_modules = join_paths(dir_lib, 'evas', 'modules') - mod_install_dir = join_paths(evas_package_modules, 'image_savers', loader, version_name) - shared_module('shared_saver_'+loader, file, - include_directories : config_dir, - dependencies : [eina, evas] + loader_deps, - install : true, - install_dir : mod_install_dir, - name_suffix : sys_mod_extension - ) - module_files += join_paths(mod_install_dir, 'libshared_saver_'+loader + '.' + sys_mod_extension) - endif - else - message('Image saver '+loader+' disabled') - endif -endforeach diff --git a/src/modules/evas/image_loaders/meson.build b/src/modules/evas/image_loaders/meson.build new file mode 100644 index 0000000000..7a339b44c5 --- /dev/null +++ b/src/modules/evas/image_loaders/meson.build @@ -0,0 +1,23 @@ +foreach loader_inst : evas_image_loaders_file + loader = loader_inst[0] + loader_type = loader_inst[1] + loader_deps = loader_inst[2] + if get_option('evas-loaders-disabler').contains(loader) == false + if loader_type == 'shared' + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_loaders', loader, 'evas_image_load_'+loader+'.c') + evas_package_modules = join_paths(dir_lib, 'evas', 'modules') + mod_install_dir = join_paths(evas_package_modules, 'image_loaders', loader, version_name) + shared_module('shared_loader_'+loader, file, + include_directories : config_dir, + dependencies : [eina, evas] + loader_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'libshared_loader_'+loader + '.' + sys_mod_extension) + endif + else + message('Image loader '+loader+' disabled') + endif +endforeach diff --git a/src/modules/evas/image_savers/meson.build b/src/modules/evas/image_savers/meson.build new file mode 100644 index 0000000000..6e1e346d06 --- /dev/null +++ b/src/modules/evas/image_savers/meson.build @@ -0,0 +1,23 @@ +foreach loader_inst : evas_image_savers_file + loader = loader_inst[0] + loader_type = loader_inst[1] + loader_deps = loader_inst[2] + if get_option('evas-loaders-disabler').contains(loader) == false + if loader_type == 'shared' + config_h.set('BUILD_LOADER_'+loader.to_upper(), '1') + file = join_paths(meson.source_root(), 'src', 'modules', 'evas', 'image_savers', loader, 'evas_image_save_'+loader+'.c') + evas_package_modules = join_paths(dir_lib, 'evas', 'modules') + mod_install_dir = join_paths(evas_package_modules, 'image_savers', loader, version_name) + shared_module('shared_saver_'+loader, file, + include_directories : config_dir, + dependencies : [eina, evas] + loader_deps, + install : true, + install_dir : mod_install_dir, + name_suffix : sys_mod_extension + ) + module_files += join_paths(mod_install_dir, 'libshared_saver_'+loader + '.' + sys_mod_extension) + endif + else + message('Image saver '+loader+' disabled') + endif +endforeach diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build index e8f335d50e..a8ce54ea78 100644 --- a/src/modules/evas/meson.build +++ b/src/modules/evas/meson.build @@ -1,7 +1,9 @@ #fixed dependencies by efl -json = dependency('rlottie', required: get_option('evas-loaders-disabler').contains('json') == false) +subdir('image_savers') +subdir('image_loaders') subdir('model_savers') subdir('model_loaders') subdir('vg_savers') subdir('vg_loaders') +subdir('engines') diff --git a/src/modules/evas/model_loaders/meson.build b/src/modules/evas/model_loaders/meson.build index 7aae3611cc..fd7ce398fb 100644 --- a/src/modules/evas/model_loaders/meson.build +++ b/src/modules/evas/model_loaders/meson.build @@ -1,16 +1 @@ -evas_model_loaders_file = ['eet', 'md2', 'obj', 'ply'] - -foreach loader : evas_model_loaders_file - file = join_paths(loader, 'evas_model_load_'+loader+'.c') - - tmp = static_library('model_loader_'+loader, file, - include_directories : config_dir, - dependencies : [evas_pre] - ) - - evas_static_list += [declare_dependency( - include_directories: include_directories('.'), - sources: file, - dependencies: evas_pre, - )] -endforeach +#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build diff --git a/src/modules/evas/model_savers/meson.build b/src/modules/evas/model_savers/meson.build index bb0dca2e3a..fd7ce398fb 100644 --- a/src/modules/evas/model_savers/meson.build +++ b/src/modules/evas/model_savers/meson.build @@ -1,16 +1 @@ -evas_model_savers_file = ['eet', 'obj', 'ply'] - -foreach loader : evas_model_savers_file - file = join_paths(loader, 'evas_model_save_'+loader+'.c') - - tmp = static_library('model_saver_'+loader, file, - include_directories : config_dir, - dependencies : evas_pre - ) - - evas_static_list += [declare_dependency( - include_directories: include_directories('.'), - sources: file, - dependencies: evas_pre, - )] -endforeach +#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build diff --git a/src/modules/evas/vg_loaders/meson.build b/src/modules/evas/vg_loaders/meson.build index 5ffe8f0ffe..fd7ce398fb 100644 --- a/src/modules/evas/vg_loaders/meson.build +++ b/src/modules/evas/vg_loaders/meson.build @@ -1,26 +1 @@ -evas_vg_loaders_file = [ - ['eet', [eet]], - ['json', [json]], - ['svg', []], -] - -foreach loader_inst : evas_vg_loaders_file - loader = loader_inst[0] - loader_deps = loader_inst[1] - - if (get_option('evas-loaders-disabler').contains(loader) == false) - file = join_paths(loader, 'evas_vg_load_'+loader+'.c') - - static_library('vg_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_VG_'+loader.to_upper(), '1') - endif -endforeach +#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build diff --git a/src/modules/evas/vg_savers/meson.build b/src/modules/evas/vg_savers/meson.build index 3fef5863b3..fd7ce398fb 100644 --- a/src/modules/evas/vg_savers/meson.build +++ b/src/modules/evas/vg_savers/meson.build @@ -1,17 +1 @@ -evas_vg_savers_file = ['eet', 'svg'] - -foreach loader : evas_vg_savers_file - file = join_paths(loader, 'evas_vg_save_'+loader+'.c') - - if (get_option('evas-loaders-disabler').contains(loader) == false) - tmp = static_library('vg_saver_'+loader, file, - include_directories : config_dir, - dependencies: [eo, ector, emile, freetype, eet, evas_pre], - ) - evas_static_list += [declare_dependency( - sources: file, - dependencies: [eo, ector, emile, freetype, eet, evas_pre], - )] - config_h.set('EVAS_STATIC_BUILD_VG_'+loader.to_upper(), '1') - endif -endforeach +#all the loaders here are build statically, the build instructions are in src/lib/evas/meson.build diff --git a/src/static_libs/buildsystem/buildsystem_meson.c b/src/static_libs/buildsystem/buildsystem_meson.c index fd741e0d15..f322e9df50 100644 --- a/src/static_libs/buildsystem/buildsystem_meson.c +++ b/src/static_libs/buildsystem/buildsystem_meson.c @@ -12,6 +12,10 @@ bs_mod_get(char *path, size_t maxlen, const char *subsystem, const char *mod_nam // this causes the module to link to itself, instead of the library if (!strcmp(subsystem, "ethumb")) snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s_el"MOD_SUFFIX, subsystem, mod_name, mod_name); + else if (!strcmp(subsystem, "evas/image_loaders")) + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/libshared_loader_%s"MOD_SUFFIX, subsystem, mod_name); + else if (!strcmp(subsystem, "evas/image_savers")) + snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/libshared_saver_%s"MOD_SUFFIX, subsystem, mod_name); else snprintf(path, maxlen, PACKAGE_BUILD_DIR"/src/modules/%s/%s/lib%s"MOD_SUFFIX, subsystem, mod_name, mod_name);