[libcamera-devel] gst: Silence -Wunused-function warning for older GLib versions

Message ID 20200306231141.8071-1-laurent.pinchart@ideasonboard.com
State Accepted
Delegated to: Laurent Pinchart
Headers show
Series
  • [libcamera-devel] gst: Silence -Wunused-function warning for older GLib versions
Related show

Commit Message

Laurent Pinchart March 6, 2020, 11:11 p.m. UTC
The G_DECLARE_FINAL_TYPE macro from GLib creates static inline functions
that, prior to GLib v2.63.0, were not marked as possibly unused. This
causes clang to complain about the ones we are not using. Silence the
-Wunused-function warning in that case.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---
 src/gstreamer/meson.build | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

Patch

diff --git a/src/gstreamer/meson.build b/src/gstreamer/meson.build
index ca64bf110dde..a144d7d2b4eb 100644
--- a/src/gstreamer/meson.build
+++ b/src/gstreamer/meson.build
@@ -13,13 +13,23 @@  libcamera_gst_c_args = [
     '-DPACKAGE="@0@"'.format(meson.project_name()),
 ]
 
+glib_dep = dependency('glib', required : get_option('gstreamer'))
+
 gst_dep_version = '>=1.14.0'
 gstvideo_dep = dependency('gstreamer-video-1.0', version : gst_dep_version,
                           required : get_option('gstreamer'))
 gstallocator_dep = dependency('gstreamer-allocators-1.0', version : gst_dep_version,
                               required : get_option('gstreamer'))
 
-if gstvideo_dep.found() and gstallocator_dep.found()
+if glib_dep.found() and gstvideo_dep.found() and gstallocator_dep.found()
+    # The G_DECLARE_FINAL_TYPE macro from GLib creates static inline functions
+    # that, prior to GLib v2.63.0, were not marked as possibly unused. This
+    # causes clang to complain about the ones we are not using. Silence the
+    # -Wunused-function warning in that case.
+    if cc.get_id() == 'clang' and glib_dep.version().version_compare('<2.63.0')
+        libcamera_gst_c_args += [ '-Wno-unused-function' ]
+    endif
+
     libcamera_gst = shared_library('gstlibcamera',
         libcamera_gst_sources,
         c_args : libcamera_gst_c_args,