build-sys: Add an option for enabling/disabling Valgrind
authorTanu Kaskinen <tanuk@iki.fi>
Fri, 14 Feb 2020 05:29:33 +0000 (07:29 +0200)
committerGeorg Chini <georg@chini.tk>
Wed, 9 Dec 2020 11:07:09 +0000 (11:07 +0000)
In OpenEmbedded the PulseAudio recipe currently disables Valgrind
support by passing "ac_cv_header_valgrind_memcheck_h=no" to the
configure script (this was added to make it deterministic whether
Valgrdind support gets enabled or not). I'm converting the PulseAudio
recipe to use Meson, and I needed an option to disable Valgrind.

meson.build
meson_options.txt

index 06c44d7..3adb876 100644 (file)
@@ -221,7 +221,6 @@ check_headers = [
   'sys/un.h',
   'sys/wait.h',
   'syslog.h',
-  'valgrind/memcheck.h',
   'xlocale.h',
 ]
 
@@ -232,6 +231,10 @@ foreach h : check_headers
   endif
 endforeach
 
+if cc.has_header('valgrind/memcheck.h', required: get_option('valgrind'))
+  cdata.set('HAVE_VALGRIND_MEMCHECK_H', 1)
+endif
+
 # FIXME: move this to the above set
 if cc.has_header('pthread.h')
   cdata.set('HAVE_PTHREAD', 1)
@@ -842,6 +845,7 @@ summary = [
   'Enable SoXR (resampler):       @0@'.format(soxr_dep.found()),
   'Enable WebRTC echo canceller:  @0@'.format(webrtc_dep.found()),
   'Enable Gcov coverage:          @0@'.format(get_option('gcov')),
+  'Enable Valgrind:               @0@'.format(cdata.has('HAVE_VALGRIND_MEMCHECK_H')),
   'Enable man pages:              @0@'.format(get_option('man')),
   'Enable unit tests:             @0@'.format(get_option('tests')),
   '',
index 5283a6d..247f26a 100644 (file)
@@ -141,6 +141,9 @@ option('systemd',
 option('udev',
        type : 'feature', value : 'auto',
        description : 'Optional udev support')
+option('valgrind',
+       type : 'feature', value : 'auto',
+       description : 'Optional Valgrind support')
 option('x11',
        type : 'feature', value : 'auto',
        description : 'Optional X11 support')