meson: Changed meson build to support address sanitizer build

As we run some intermediate binary like edje_cc during efl build , and due to
those binary has some memory leaks the address sanitizer build of efl fails.
This Patch runs those binary with 'ASAN_OPTIONS=detect_leak=false' to disable the
memory leak check for those binaries.

Reviewed-by: Stefan Schmidt <stefan@datenfreihafen.org>
Differential Revision: https://phab.enlightenment.org/D11137
This commit is contained in:
Subhransu Mohanty 2020-01-21 02:06:17 +00:00 committed by Stefan Schmidt
parent a227b83f41
commit f9a108c51a
2 changed files with 14 additions and 4 deletions

View File

@ -30,6 +30,11 @@ edje_cc = executable('edje_cc',
link_args : bin_linker_args link_args : bin_linker_args
) )
asan_option =[]
if get_option('b_sanitize') == 'address'
asan_option= 'ASAN_OPTIONS=detect_leaks=0'
endif
if meson.is_cross_build() if meson.is_cross_build()
_edje_cc = find_program('edje_cc', native: true) _edje_cc = find_program('edje_cc', native: true)
edje_cc_path = _edje_cc.path() edje_cc_path = _edje_cc.path()
@ -40,7 +45,7 @@ else
edje_cc_exe = [edje_cc.full_path()] edje_cc_exe = [edje_cc.full_path()]
else else
env = find_program('env', native: true) env = find_program('env', native: true)
edje_cc_exe = [env, 'EFL_RUN_IN_TREE=1', edje_cc.full_path()] edje_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', edje_cc.full_path()]
endif endif
edje_depends = [edje_cc, epp, evas_engine_buffer_mod, embryo_cc] edje_depends = [edje_cc, epp, evas_engine_buffer_mod, embryo_cc]
endif endif
@ -93,7 +98,7 @@ if meson.is_cross_build()
edje_codegen_exe = [_edje_codegen] edje_codegen_exe = [_edje_codegen]
else else
env = find_program('env', native: true) env = find_program('env', native: true)
edje_codegen_exe = [env, 'EFL_RUN_IN_TREE=1', edje_codegen.full_path()] edje_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', edje_codegen.full_path()]
endif endif
edje_pick = executable('edje_pick', edje_pick = executable('edje_pick',

View File

@ -237,11 +237,16 @@ elementary_codegen = executable('elementary_codegen',
link_args: link_args link_args: link_args
) )
asan_option =[]
if get_option('b_sanitize') == 'address'
asan_option= 'ASAN_OPTIONS=detect_leaks=0'
endif
if meson.is_cross_build() if meson.is_cross_build()
elementary_codegen_exe = [find_program('elementary_codegen', native: true)] elementary_codegen_exe = [find_program('elementary_codegen', native: true)]
else else
env = find_program('env', native: true) env = find_program('env', native: true)
elementary_codegen_exe = [env, 'EFL_RUN_IN_TREE=1', elementary_codegen.full_path()] elementary_codegen_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', elementary_codegen.full_path()]
endif endif
elm_prefs_cc_src = [ elm_prefs_cc_src = [
@ -267,7 +272,7 @@ if meson.is_cross_build()
elm_prefs_cc_exe = [_elm_prefs_cc] elm_prefs_cc_exe = [_elm_prefs_cc]
else else
env = find_program('env', native: true) env = find_program('env', native: true)
elm_prefs_cc_exe = [env, 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path()] elm_prefs_cc_exe = [env, asan_option, 'EFL_RUN_IN_TREE=1', elm_prefs_cc.full_path()]
endif endif
if sys_windows == false if sys_windows == false