zmike pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=28f630ba418719c36ea679541acc97c59cf5183c

commit 28f630ba418719c36ea679541acc97c59cf5183c
Author: Marcel Hollerbach <[email protected]>
Date:   Tue Oct 29 12:54:55 2019 -0400

    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 +--
 src/static_libs/buildsystem/buildsystem_meson.c |   4 +
 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
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);
 

-- 


Reply via email to