summaryrefslogtreecommitdiffstats
path: root/pipewire-v4l2/src/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'pipewire-v4l2/src/meson.build')
-rw-r--r--pipewire-v4l2/src/meson.build41
1 files changed, 41 insertions, 0 deletions
diff --git a/pipewire-v4l2/src/meson.build b/pipewire-v4l2/src/meson.build
new file mode 100644
index 0000000..a3c97c1
--- /dev/null
+++ b/pipewire-v4l2/src/meson.build
@@ -0,0 +1,41 @@
+pipewire_v4l2_sources = [
+ 'pipewire-v4l2.c',
+ 'v4l2-func.c',
+]
+
+pipewire_v4l2_c_args = [
+ # Meson enables large file support unconditionally, which redirect file
+ # operations to 64-bit versions. This results in some symbols being
+ # renamed, for instance open() being renamed to open64(). As the V4L2
+ # adaptation wrapper needs to provide both 32-bit and 64-bit versions of
+ # file operations, disable transparent large file support.
+ '-U_FILE_OFFSET_BITS',
+ '-D_FILE_OFFSET_BITS=32',
+ '-D_LARGEFILE64_SOURCE',
+ '-fvisibility=hidden',
+]
+
+libv4l2_path = get_option('libv4l2-path')
+if libv4l2_path == ''
+ libv4l2_path = modules_install_dir / 'v4l2'
+ libv4l2_path_dlopen = modules_install_dir_dlopen / 'v4l2'
+else
+ libv4l2_path_dlopen = libv4l2_path
+endif
+
+tools_config = configuration_data()
+tools_config.set('LIBV4L2_PATH', libv4l2_path_dlopen)
+
+configure_file(input : 'pw-v4l2.in',
+ output : 'pw-v4l2',
+ configuration : tools_config,
+ install_dir : pipewire_bindir)
+
+pipewire_v4l2 = shared_library('pw-v4l2',
+ pipewire_v4l2_sources,
+ c_args : pipewire_v4l2_c_args,
+ include_directories : [configinc],
+ dependencies : [pipewire_dep, mathlib, dl_lib],
+ install : true,
+ install_dir : libv4l2_path,
+)