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
)
asan_option =[]
if get_option('b_sanitize') == 'address'
asan_option= 'ASAN_OPTIONS=detect_leaks=0'
endif
if meson.is_cross_build()
_edje_cc = find_program('edje_cc', native: true)
edje_cc_path = _edje_cc.path()
@ -40,7 +45,7 @@ else
edje_cc_exe = [edje_cc.full_path()]
else
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
edje_depends = [edje_cc, epp, evas_engine_buffer_mod, embryo_cc]
endif
@ -93,7 +98,7 @@ if meson.is_cross_build()
edje_codegen_exe = [_edje_codegen]
else
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
edje_pick = executable('edje_pick',

View File

@ -237,11 +237,16 @@ elementary_codegen = executable('elementary_codegen',
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()
elementary_codegen_exe = [find_program('elementary_codegen', native: true)]
else
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
elm_prefs_cc_src = [
@ -267,7 +272,7 @@ if meson.is_cross_build()
elm_prefs_cc_exe = [_elm_prefs_cc]
else
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
if sys_windows == false