diff options
author | Arnaud Rebillout <arnaud.rebillout@collabora.com> | 2018-11-28 20:43:53 +0700 |
---|---|---|
committer | Arun Raghavan <arun@arunraghavan.net> | 2019-06-08 12:03:03 +0200 |
commit | 1a3ed2f430669dea3d0978ce3acbcceb443c7447 (patch) | |
tree | 176ae11e0ce1211b436cddf3fa500eb7c55bac1d | |
parent | aa5502926fdb1d1b45f7cb0ed8570d90f84532eb (diff) |
meson: Add support for gcov
Unlike autotools, we use the option --coverage, which is a synonym for
-profile-arcs and -ftest-coverage (when compiling) and -lgcov (when
linking).
For reference, see:
https://gcc.gnu.org/onlinedocs/gcc/Instrumentation-Options.html#Instrumentation-Options
Signed-off-by: Arnaud Rebillout <arnaud.rebillout@collabora.com>
-rw-r--r-- | meson.build | 9 | ||||
-rw-r--r-- | meson_options.txt | 3 |
2 files changed, 11 insertions, 1 deletions
diff --git a/meson.build b/meson.build index efe5f0f48..4b3b3e8c5 100644 --- a/meson.build +++ b/meson.build @@ -267,6 +267,13 @@ pa_c_args = ['-DHAVE_CONFIG_H', '-D_GNU_SOURCE'] server_c_args = ['-D__INCLUDED_FROM_PULSE_AUDIO'] cdata.set('MESON_BUILD', 1) +# Code coverage + +if get_option('gcov') + add_project_arguments('--coverage', language: ['c', 'cpp']) + add_project_link_arguments('--coverage', language: ['c', 'cpp']) +endif + # Core Dependencies libm_dep = cc.find_library('m', required : true) @@ -605,7 +612,7 @@ summary = [ 'Enable Speex (resampler, AEC): @0@'.format(speex_dep.found()), 'Enable SoXR (resampler): @0@'.format(soxr_dep.found()), 'Enable WebRTC echo canceller: @0@'.format(webrtc_dep.found()), -# 'Enable gcov coverage: @0@'.format(${ENABLE_GCOV}), + 'Enable Gcov coverage: @0@'.format(get_option('gcov')), 'Enable man pages: @0@'.format(get_option('man')), 'Enable unit tests: @0@'.format(get_option('tests')), '', diff --git a/meson_options.txt b/meson_options.txt index 8a2663ceb..5e79ffb9a 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,6 @@ +option('gcov', + type : 'boolean', + description : 'Enable optional gcov coverage analysis') option('man', type : 'boolean', description : 'Enable building and installation of man pages') |