e6b6a6d42e
Drop libcamera_private dependency entirely as to avoid libcamerasrc getting more dependent on it. In order to achieve that, one of the mutex locks in GstLibcameraSrcState needs to be replaced with GMutex. However doing so, this won't let us to use the clang's thread annotation macros in libcamera (which should be fine as libcamerasrc would move out of libcamera repo once matured). Signed-off-by: Umang Jain <umang.jain@ideasonboard.com> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Nicolas Dufresne <nicolas.dufresne@collabora.com>
49 lines
1.6 KiB
Meson
49 lines
1.6 KiB
Meson
# SPDX-License-Identifier: CC0-1.0
|
|
|
|
glib_dep = dependency('glib-2.0', 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 not glib_dep.found() or not gstvideo_dep.found() or not gstallocator_dep.found()
|
|
gst_enabled = false
|
|
subdir_done()
|
|
endif
|
|
|
|
gst_enabled = true
|
|
|
|
libcamera_gst_sources = [
|
|
'gstlibcamera-utils.cpp',
|
|
'gstlibcamera.cpp',
|
|
'gstlibcameraallocator.cpp',
|
|
'gstlibcamerapad.cpp',
|
|
'gstlibcamerapool.cpp',
|
|
'gstlibcameraprovider.cpp',
|
|
'gstlibcamerasrc.cpp',
|
|
]
|
|
|
|
libcamera_gst_cpp_args = [
|
|
'-DVERSION="@0@"'.format(libcamera_git_version),
|
|
'-DPACKAGE="@0@"'.format(meson.project_name()),
|
|
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_40',
|
|
]
|
|
|
|
# The G_DECLARE_FINAL_TYPE macro creates static inline functions that were
|
|
# not marked as possibly unused prior to GLib v2.63.0. 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_cpp_args += ['-Wno-unused-function']
|
|
endif
|
|
|
|
libcamera_gst = shared_library('gstlibcamera',
|
|
libcamera_gst_sources,
|
|
cpp_args : libcamera_gst_cpp_args,
|
|
dependencies : [libcamera_public, gstvideo_dep, gstallocator_dep],
|
|
install: true,
|
|
install_dir : '@0@/gstreamer-1.0'.format(get_option('libdir')),
|
|
)
|