summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <mail@marcel-hollerbach.de>2019-10-29 12:54:55 -0400
committerMike Blumenkrantz <zmike@samsung.com>2019-10-29 12:54:56 -0400
commit28f630ba418719c36ea679541acc97c59cf5183c (patch)
tree72655186e86d5715a7679682df5a967ff8145246
parent795c37b2a49e089984ec5c266e732ed217449c93 (diff)
downloadefl-28f630ba418719c36ea679541acc97c59cf5183c.tar.gz
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
-rw-r--r--meson.build10
-rw-r--r--src/lib/evas/file/evas_module.c25
-rw-r--r--src/lib/evas/meson.build166
-rw-r--r--src/lib/evas_goal/empty.c0
-rw-r--r--src/lib/evas_goal/meson.build179
-rw-r--r--src/modules/evas/image_loaders/meson.build23
-rw-r--r--src/modules/evas/image_savers/meson.build23
-rw-r--r--src/modules/evas/meson.build4
-rw-r--r--src/modules/evas/model_loaders/meson.build17
-rw-r--r--src/modules/evas/model_savers/meson.build17
-rw-r--r--src/modules/evas/vg_loaders/meson.build27
-rw-r--r--src/modules/evas/vg_savers/meson.build18
-rw-r--r--src/static_libs/buildsystem/buildsystem_meson.c4
13 files changed, 210 insertions, 303 deletions
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
--- a/src/lib/evas_goal/empty.c
+++ /dev/null
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);