summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHermet Park <chuneon.park@samsung.com>2020-05-29 09:47:39 +0900
committerHermet Park <chuneon.park@samsung.com>2020-05-29 09:47:39 +0900
commit3bb8a73bd9e29efb1ffaa5662e3bf614b122070d (patch)
tree50cb8615f41bed83052af35f5faededf92cdf449
parent25b22bdb14bc0e050283117ae2d698fac34aeb64 (diff)
parent2bd98e830f51fa985cbc3a0ab2db4e759ec75354 (diff)
Merge branch 'master' into devs/hermet/lottiedevs/hermet/lottie
-rw-r--r--meson.build6
-rwxr-xr-xscripts/test-efl-one.py52
-rw-r--r--src/lib/efl_canvas_wl/meson.build14
-rw-r--r--src/lib/eina/meson.build13
-rw-r--r--src/lib/elementary/efl_ui_bg.c6
-rw-r--r--src/lib/evas/canvas/evas_render.c3
-rw-r--r--src/lib/evas/meson.build25
-rw-r--r--src/modules/evas/engines/meson.build2
-rw-r--r--src/modules/evas/image_loaders/meson.build2
-rw-r--r--src/modules/evas/image_savers/meson.build2
10 files changed, 92 insertions, 33 deletions
diff --git a/meson.build b/meson.build
index 2fab796d09..d2cde88e07 100644
--- a/meson.build
+++ b/meson.build
@@ -337,7 +337,7 @@ subprojects = [
337['ethumb' ,[] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []], 337['ethumb' ,[] , true, true, true, false, false, false, true, ['eina', 'efl', 'eo'], []],
338['ethumb_client' ,[] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []], 338['ethumb_client' ,[] , false, true, true, false, false, true, true, ['eina', 'efl', 'eo', 'ethumb'], []],
339['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']], 339['elementary' ,[] , true, true, true, true, true, true, true, ['eina', 'efl', 'eo', 'eet', 'evas', 'ecore', 'ecore-evas', 'ecore-file', 'ecore-input', 'edje', 'ethumb-client', 'emotion', 'ecore-imf', 'ecore-con', 'eldbus', 'efreet', 'efreet-mime', 'efreet-trash', 'eio'], ['atspi']],
340['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, false, ['eina', 'efl', 'eo', 'evas', 'ecore'], []], 340['efl_canvas_wl' ,['wl'] , false, true, true, false, false, false, true, ['eina', 'efl', 'eo', 'evas', 'ecore'], []],
341['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', 'luajit'], []], 341['elua' ,['elua'] , false, true, true, false, true, false, false, ['eina', 'luajit'], []],
342['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []], 342['ecore_wayland' ,['wl-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
343['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, false, ['eina'], []], 343['ecore_drm' ,['drm-deprecated'] , false, true, false, false, false, false, false, ['eina'], []],
@@ -428,7 +428,7 @@ foreach package : subprojects
428 ) 428 )
429 # dependency for all the .eo file targets 429 # dependency for all the .eo file targets
430 efl_one_eo_deps += declare_dependency( 430 efl_one_eo_deps += declare_dependency(
431 sources: pub_eo_file_target, 431 sources: pub_eo_file_target + priv_eo_file_target, #this here *needs* to be public and private, because our binaries and modules do depend on internal headers
432 ) 432 )
433 efl_one_deps += external_deps 433 efl_one_deps += external_deps
434 efl_one_parts += tmp 434 efl_one_parts += tmp
@@ -620,7 +620,7 @@ configure_file(
620configure_file( 620configure_file(
621 input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'), 621 input: join_paths('src','lib', 'efl', 'Efl_Config.h.in'),
622 output: 'Efl_Config.h', 622 output: 'Efl_Config.h',
623 install_dir : join_paths(dir_include,'efl-'+version_major), 623 install_dir : join_paths(dir_include,'eina-'+version_major),
624 configuration: efl_config_h 624 configuration: efl_config_h
625) 625)
626 626
diff --git a/scripts/test-efl-one.py b/scripts/test-efl-one.py
new file mode 100755
index 0000000000..ba3e34e63d
--- /dev/null
+++ b/scripts/test-efl-one.py
@@ -0,0 +1,52 @@
1#!/bin/env python3
2import os
3import subprocess
4import argparse
5import json
6from elftools.elf.elffile import ELFFile
7
8
9#meson changed behaviour from 0.49 to 0.50 so we need this:
10def meson_fetch_filename(filename_object):
11 if isinstance(filename_object, str):
12 return filename_object
13 else:
14 return filename_object[0]
15
16
17def needed_libs(filename):
18 print('Processing file:', filename)
19 result = []
20 with open(filename, 'rb') as f:
21 elffile = ELFFile(f)
22 for section in elffile.iter_sections():
23 if section.name.startswith('.dynamic'):
24 for tag in section.iter_tags():
25 if tag.entry.d_tag == 'DT_NEEDED':
26 result.append(getattr(tag, tag.entry.d_tag[3:].lower()))
27 return result
28
29
30parser = argparse.ArgumentParser(description='Check that when build with efl-one that no module nor efl-one lib does drag in libeina or the likes')
31parser.add_argument('builddir', metavar='build', help='the path where to find the meson build directory')
32
33G = parser.parse_args()
34
35#Run meson to fetch all examples
36meson_introspect = subprocess.Popen(["meson", "introspect", G.builddir, "--targets"],
37 stdout = subprocess.PIPE,
38 stderr = subprocess.PIPE,
39)
40meson_introspect.poll()
41build_targets = json.loads(meson_introspect.stdout.read())
42build_modules = [meson_fetch_filename(b["filename"]) for b in build_targets if "modules" in meson_fetch_filename(b["filename"]) and meson_fetch_filename(b["filename"]).endswith('.so')]
43
44for build_modules in build_modules:
45 libs = needed_libs(build_modules)
46 lib_es = [lib for lib in libs if lib.startswith("libe") and lib != "libefl-one.so.1"]
47 if len(lib_es) != 0:
48 print("Error, {} requies lib {}".format(build_modules, lib_es[0]))
49 exit(-1)
50
51print("Nothing wrong found!")
52
diff --git a/src/lib/efl_canvas_wl/meson.build b/src/lib/efl_canvas_wl/meson.build
index 3b223ea174..5955da62eb 100644
--- a/src/lib/efl_canvas_wl/meson.build
+++ b/src/lib/efl_canvas_wl/meson.build
@@ -1,9 +1,10 @@
1efl_canvas_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, eina, wayland_protocol ] 1efl_canvas_wl_deps = [ecore_wl2, ecore_input, ecore, ecore_evas, evas, emile, eina]
2efl_canvas_wl_pub_deps = [eo, efl, evas, dependency('wayland-server', version : '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0')] 2efl_canvas_wl_pub_deps = [eo, efl, evas]
3efl_canvas_wl_ext_deps = [dependency('wayland-server', version : '>= 1.11.0'), dependency('xkbcommon', version : '>= 0.6.0'), wayland_protocol]
3 4
4if (get_option('x11')) 5if (get_option('x11'))
5 efl_canvas_wl_deps += [ecore_x] 6 efl_canvas_wl_deps += [ecore_x]
6 efl_canvas_wl_pub_deps += [dependency('xkbcommon-x11')] 7 efl_canvas_wl_ext_deps += [dependency('xkbcommon-x11')]
7endif 8endif
8 9
9pub_eo_files = [ 10pub_eo_files = [
@@ -25,16 +26,17 @@ foreach eo_file : pub_eo_files
25 '-gchd', '@INPUT@']) 26 '-gchd', '@INPUT@'])
26endforeach 27endforeach
27 28
28efl_canvas_wl_src = [ 29efl_canvas_wl_src = files([
29 'dmabuf.c', 30 'dmabuf.c',
30 'efl_canvas_wl.c', 31 'efl_canvas_wl.c',
31] 32])
33
32efl_canvas_wl_header_src = ['Efl_Canvas_Wl.h'] 34efl_canvas_wl_header_src = ['Efl_Canvas_Wl.h']
33eolian_include_directories += ['-I', meson.current_source_dir()] 35eolian_include_directories += ['-I', meson.current_source_dir()]
34 36
35efl_canvas_wl_lib = library('efl_canvas_wl', 37efl_canvas_wl_lib = library('efl_canvas_wl',
36 efl_canvas_wl_src, pub_eo_file_target, 38 efl_canvas_wl_src, pub_eo_file_target,
37 dependencies: [m, dl] + efl_canvas_wl_deps + efl_canvas_wl_pub_deps, 39 dependencies: efl_canvas_wl_deps + efl_canvas_wl_pub_deps + efl_canvas_wl_ext_deps,
38 include_directories : config_dir + [include_directories(join_paths('..','..'))], 40 include_directories : config_dir + [include_directories(join_paths('..','..'))],
39 install: true, 41 install: true,
40 c_args : package_c_args, 42 c_args : package_c_args,
diff --git a/src/lib/eina/meson.build b/src/lib/eina/meson.build
index b146da9f5f..5aad9c344f 100644
--- a/src/lib/eina/meson.build
+++ b/src/lib/eina/meson.build
@@ -1,5 +1,5 @@
1eina_deps = [dl] 1eina_deps = [dl]
2eina_pub_deps = [thread_dep] 2eina_pub_deps = [thread_dep, m]
3eina_pc_deps = [m, rt, dl, thread_dep] #special case, this array is taken to drag in external deps to efl-one 3eina_pc_deps = [m, rt, dl, thread_dep] #special case, this array is taken to drag in external deps to efl-one
4eina_ext_deps = eina_pc_deps 4eina_ext_deps = eina_pc_deps
5 5
@@ -388,11 +388,6 @@ install_headers(public_sub_headers,
388 install_dir : join_paths(dir_package_include, 'eina') 388 install_dir : join_paths(dir_package_include, 'eina')
389) 389)
390 390
391automatic_pkgfile = false 391package_header_subdirs += 'eina'
392 392#special case here to support -lm -ldl -threads
393pkgconfig.generate(eina_lib, 393eina_pub_deps += eina_pc_deps
394 name : 'eina',
395 subdirs : ['eina-'+version_major, 'efl-'+version_major, join_paths('eina-'+version_major, 'eina')],
396 version : version_major + '.' + version_minor + '.' + version_micro,
397 libraries : eina_pub_deps + eina_pc_deps,
398)
diff --git a/src/lib/elementary/efl_ui_bg.c b/src/lib/elementary/efl_ui_bg.c
index 51b12158db..56ccdbd72f 100644
--- a/src/lib/elementary/efl_ui_bg.c
+++ b/src/lib/elementary/efl_ui_bg.c
@@ -187,7 +187,11 @@ elm_bg_load_size_set(Evas_Object *obj, int w, int h)
187EAPI Eina_Bool 187EAPI Eina_Bool
188elm_bg_file_set(Eo *obj, const char *file, const char *group) 188elm_bg_file_set(Eo *obj, const char *file, const char *group)
189{ 189{
190 return efl_file_simple_load((Eo *) obj, file, group); 190 EFL_UI_BG_DATA_GET_OR_RETURN_VAL(obj, sd, EINA_FALSE);
191 Eina_Bool ret = efl_file_simple_load((Eo *) obj, file, group);
192 if (ret) elm_image_preload_disabled_set(sd->img, EINA_TRUE);
193
194 return ret;
191} 195}
192 196
193EOLIAN static Eina_Error 197EOLIAN static Eina_Error
diff --git a/src/lib/evas/canvas/evas_render.c b/src/lib/evas/canvas/evas_render.c
index f8abfd5700..f80cb24c8d 100644
--- a/src/lib/evas/canvas/evas_render.c
+++ b/src/lib/evas/canvas/evas_render.c
@@ -1755,6 +1755,9 @@ _evas_render_mapped_mask(Evas_Public_Data *evas, Evas_Object_Protected_Data *obj
1755 Evas_Proxy_Render_Data *proxy_render_data, void *output, void *ctx, int off_x, int off_y, int level, Eina_Bool do_async) 1755 Evas_Proxy_Render_Data *proxy_render_data, void *output, void *ctx, int off_x, int off_y, int level, Eina_Bool do_async)
1756{ 1756{
1757 if (!mask) return; 1757 if (!mask) return;
1758 if (proxy_render_data &&
1759 !proxy_render_data->source_clip &&
1760 proxy_render_data->src_obj->clip.mask == mask) return;
1758 1761
1759 // This path can be hit when we're multiplying masks on top of each other... 1762 // This path can be hit when we're multiplying masks on top of each other...
1760 Evas_Object_Protected_Data *prev_mask = obj->clip.prev_mask; 1763 Evas_Object_Protected_Data *prev_mask = obj->clip.prev_mask;
diff --git a/src/lib/evas/meson.build b/src/lib/evas/meson.build
index d923cee0df..3b49e2bea6 100644
--- a/src/lib/evas/meson.build
+++ b/src/lib/evas/meson.build
@@ -49,7 +49,8 @@ evas_vg_savers_file = ['eet', 'svg']
49 49
50rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 'software_generic') 50rel_evas_modules = join_paths('..', '..', '..', 'modules', 'evas', 'engines', 'software_generic')
51evas_deps = [eo, eet, eina, efl, emile, ector, ecore, draw, buildsystem] 51evas_deps = [eo, eet, eina, efl, emile, ector, ecore, draw, buildsystem]
52evas_ext_deps = [buildsystem_simple, intl, m, draw_simple, valgrind, libunibreak, lua, vg_common] 52evas_ext_deps = []
53evas_ext_none_static_deps = [buildsystem_simple, intl, m, draw_simple, valgrind, libunibreak, lua, vg_common]
53 54
54pub_eo_file_target = [] 55pub_eo_file_target = []
55priv_eo_files = [] 56priv_eo_files = []
@@ -138,16 +139,16 @@ evas_src += files([
138 139
139evas_src_opt = [ ] 140evas_src_opt = [ ]
140 141
141evas_ext_deps += dependency('freetype2') 142evas_ext_none_static_deps += dependency('freetype2')
142 143
143if (get_option('fontconfig')) 144if (get_option('fontconfig'))
144 config_h.set('HAVE_FONTCONFIG', '1') 145 config_h.set('HAVE_FONTCONFIG', '1')
145 evas_ext_deps += dependency('fontconfig') 146 evas_ext_none_static_deps += dependency('fontconfig')
146endif 147endif
147 148
148if (get_option('fribidi')) 149if (get_option('fribidi'))
149 config_h.set('HAVE_FRIBIDI', '1') 150 config_h.set('HAVE_FRIBIDI', '1')
150 evas_ext_deps += dependency('fribidi') 151 evas_ext_none_static_deps += dependency('fribidi')
151endif 152endif
152 153
153if (get_option('pixman')) 154if (get_option('pixman'))
@@ -155,16 +156,16 @@ if (get_option('pixman'))
155 foreach support : pixman_support 156 foreach support : pixman_support
156 config_h.set(support, '1') 157 config_h.set(support, '1')
157 endforeach 158 endforeach
158 evas_ext_deps += dependency('pixman-1') 159 evas_ext_none_static_deps += dependency('pixman-1')
159endif 160endif
160 161
161if (get_option('hyphen')) 162if (get_option('hyphen'))
162 config_h.set('HAVE_HYPHEN', '1') 163 config_h.set('HAVE_HYPHEN', '1')
163 hyphen = dependency('hyphen', required : false) 164 hyphen = dependency('hyphen', required : false)
164 if hyphen.found() == false 165 if hyphen.found() == false
165 evas_ext_deps += cc.find_library('hyphen') 166 evas_ext_none_static_deps += cc.find_library('hyphen')
166 endif 167 endif
167 evas_ext_deps += hyphen 168 evas_ext_none_static_deps += hyphen
168 config_h.set_quoted('EVAS_DICTS_HYPHEN_DIR', get_option('dictionaries-hyphen-dir')) 169 config_h.set_quoted('EVAS_DICTS_HYPHEN_DIR', get_option('dictionaries-hyphen-dir'))
169endif 170endif
170 171
@@ -180,12 +181,12 @@ subdir('vg')
180gl_deps = [] 181gl_deps = []
181 182
182if get_option('harfbuzz') 183if get_option('harfbuzz')
183 evas_ext_deps += dependency('harfbuzz') 184 evas_ext_none_static_deps += dependency('harfbuzz')
184 config_h.set('HAVE_HARFBUZZ', '1') 185 config_h.set('HAVE_HARFBUZZ', '1')
185endif 186endif
186 187
187if get_option('wl') 188if get_option('wl')
188 evas_ext_deps += wayland_protocol 189 evas_ext_none_static_deps += wayland_protocol
189endif 190endif
190 191
191 192
@@ -204,13 +205,13 @@ evas_pub_deps = [eina, ecore, ector, emile]
204 205
205if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false 206if cpu_sse3 == true or cpu_neon == true and cpu_neon_intrinsics == false
206 evas_opt = static_library('evas_opt', 207 evas_opt = static_library('evas_opt',
207 sources: evas_src_opt, 208 sources: [evas_src_opt, pub_eo_file_target, priv_eo_file_target],
208 include_directories: 209 include_directories:
209 [ include_directories('../../..') ] + 210 [ include_directories('../../..') ] +
210 evas_include_directories + 211 evas_include_directories +
211 [vg_common_inc_dir], 212 [vg_common_inc_dir],
212 c_args: native_arch_opt_c_args, 213 c_args: native_arch_opt_c_args,
213 dependencies: [eina, eo, ector, emile, evas_deps, evas_ext_deps], 214 dependencies: [eina, eo, ector, emile, evas_deps, evas_ext_none_static_deps],
214 ) 215 )
215 evas_link += [ evas_opt ] 216 evas_link += [ evas_opt ]
216endif 217endif
@@ -284,6 +285,8 @@ evas_ext_deps += declare_dependency(
284 link_with: evas_link, 285 link_with: evas_link,
285) 286)
286 287
288evas_ext_deps += evas_ext_none_static_deps
289
287evas_lib = library('evas', 290evas_lib = library('evas',
288 include_directories: evas_include_directories + [vg_common_inc_dir], 291 include_directories: evas_include_directories + [vg_common_inc_dir],
289 sources : [evas_src, pub_eo_file_target, priv_eo_file_target], 292 sources : [evas_src, pub_eo_file_target, priv_eo_file_target],
diff --git a/src/modules/evas/engines/meson.build b/src/modules/evas/engines/meson.build
index 1efdbbddc8..c7e4255d9c 100644
--- a/src/modules/evas/engines/meson.build
+++ b/src/modules/evas/engines/meson.build
@@ -46,7 +46,7 @@ foreach engine_conf : engines
46 if build 46 if build
47 engine_include_dir = [] 47 engine_include_dir = []
48 engine_src = [] 48 engine_src = []
49 engine_deps = [eina, evas, evas_ext_deps] 49 engine_deps = [eina, evas, evas_ext_none_static_deps, eet]
50 engine_dep = declare_dependency( 50 engine_dep = declare_dependency(
51 include_directories: include_directories(engine), 51 include_directories: include_directories(engine),
52 ) 52 )
diff --git a/src/modules/evas/image_loaders/meson.build b/src/modules/evas/image_loaders/meson.build
index 963245ecfe..11b11f79c2 100644
--- a/src/modules/evas/image_loaders/meson.build
+++ b/src/modules/evas/image_loaders/meson.build
@@ -11,7 +11,7 @@ foreach loader_inst : evas_image_loaders_file
11 shared_module('shared_loader_'+loader, file, 11 shared_module('shared_loader_'+loader, file,
12 c_args : package_c_args, 12 c_args : package_c_args,
13 include_directories : config_dir, 13 include_directories : config_dir,
14 dependencies : [eina, evas, evas_ext_deps] + loader_deps, 14 dependencies : [eina, evas, eet, evas_ext_none_static_deps] + loader_deps,
15 install : true, 15 install : true,
16 install_dir : mod_install_dir, 16 install_dir : mod_install_dir,
17 name_suffix : sys_mod_extension 17 name_suffix : sys_mod_extension
diff --git a/src/modules/evas/image_savers/meson.build b/src/modules/evas/image_savers/meson.build
index 7a5ebcb3b3..e30a05fe3b 100644
--- a/src/modules/evas/image_savers/meson.build
+++ b/src/modules/evas/image_savers/meson.build
@@ -11,7 +11,7 @@ foreach loader_inst : evas_image_savers_file
11 shared_module('shared_saver_'+loader, file, 11 shared_module('shared_saver_'+loader, file,
12 c_args : package_c_args, 12 c_args : package_c_args,
13 include_directories : config_dir, 13 include_directories : config_dir,
14 dependencies : [eina, evas, eet, evas_ext_deps] + loader_deps, 14 dependencies : [eina, evas, eet, evas_ext_none_static_deps] + loader_deps,
15 install : true, 15 install : true,
16 install_dir : mod_install_dir, 16 install_dir : mod_install_dir,
17 name_suffix : sys_mod_extension 17 name_suffix : sys_mod_extension