forked from enlightenment/efl
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:
parent
a227b83f41
commit
f9a108c51a
|
@ -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',
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue