raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=0f3bbb51f42edf53b28176c916f8057e4db6acdf

commit 0f3bbb51f42edf53b28176c916f8057e4db6acdf
Author: Carsten Haitzler (Rasterman) <[email protected]>
Date:   Sat Oct 5 18:35:00 2019 +0100

    build - images loaders and saver modules need to link to evas
    
    if your platform is picky enough it won't want to leave unresolved
    symbols (which wshould be resovled at runtime from the host lib) so we
    need to link these modules to evas. the problem is due to the
    complicated build of some modules being static and some shared, evas
    is declared with evas_goal and this has to be declared after static
    modules are declared but since i was declaring static and shared at
    the same time from a table this breaks. so i have to move all the
    static and shared module stuff into evas_goal into 2 phases. one phase
    for the static and one for the shared after evas is delcared so evas
    as a target exists to link to.
---
 meson.build                                |   2 +
 src/lib/evas_goal/meson.build              | 143 +++++++++++++++++++++++++++++
 src/modules/evas/image_loaders/meson.build |  51 ----------
 src/modules/evas/image_savers/meson.build  |  42 ---------
 src/modules/evas/meson.build               |  25 -----
 5 files changed, 145 insertions(+), 118 deletions(-)

diff --git a/meson.build b/meson.build
index b75bcf3e3f..4de9757946 100644
--- a/meson.build
+++ b/meson.build
@@ -247,6 +247,8 @@ endif
 
 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, [], []]
diff --git a/src/lib/evas_goal/meson.build b/src/lib/evas_goal/meson.build
index 5746006908..59473fea93 100644
--- a/src/lib/evas_goal/meson.build
+++ b/src/lib/evas_goal/meson.build
@@ -1,3 +1,98 @@
+#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
@@ -34,3 +129,51 @@ pkgconfig.generate(evas_lib,
   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
deleted file mode 100644
index 4273a25386..0000000000
--- a/src/modules/evas/image_loaders/meson.build
+++ /dev/null
@@ -1,51 +0,0 @@
-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
-]
-
-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
-    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
diff --git a/src/modules/evas/image_savers/meson.build 
b/src/modules/evas/image_savers/meson.build
deleted file mode 100644
index 35883f2c34..0000000000
--- a/src/modules/evas/image_savers/meson.build
+++ /dev/null
@@ -1,42 +0,0 @@
-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_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
-    config_h.set('BUILD_LOADER_'+loader.to_upper(), '1')
-    file = join_paths(loader, 'evas_image_save_'+loader+'.c')
-    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
-endforeach
diff --git a/src/modules/evas/meson.build b/src/modules/evas/meson.build
index 869665be04..e8f335d50e 100644
--- a/src/modules/evas/meson.build
+++ b/src/modules/evas/meson.build
@@ -1,31 +1,6 @@
 #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')
 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 = []
-
-subdir('image_loaders')
-subdir('image_savers')
 subdir('model_savers')
 subdir('model_loaders')
 subdir('vg_savers')

-- 


Reply via email to