opencv: Enable in meson build
authorLuis de Bethencourt <luisbg@osg.samsung.com>
Tue, 15 Nov 2016 16:57:20 +0000 (16:57 +0000)
committerLuis de Bethencourt <luisbg@osg.samsung.com>
Sat, 26 Nov 2016 17:55:23 +0000 (17:55 +0000)
https://bugzilla.gnome.org/show_bug.cgi?id=774223

ext/meson.build
ext/opencv/meson.build [new file with mode: 0644]
gst-libs/gst/meson.build
gst-libs/gst/opencv/meson.build [new file with mode: 0644]

index 66e1e6fb1e1bff72b6012281897916d3e24db6c4..62af789509bcc8e699b92c5a4f104d320d5315d7 100644 (file)
@@ -35,7 +35,7 @@ subdir('libmms')
 #subdir('neon')
 #subdir('ofa')
 #subdir('openal')
-#subdir('opencv')
+subdir('opencv')
 #subdir('openexr')
 subdir('openh264')
 subdir('openjpeg')
diff --git a/ext/opencv/meson.build b/ext/opencv/meson.build
new file mode 100644 (file)
index 0000000..01bb640
--- /dev/null
@@ -0,0 +1,50 @@
+opencv_sources = [
+  'gstcvdilate.cpp',
+  'gstcvdilateerode.cpp',
+  'gstcvequalizehist.cpp',
+  'gstcverode.cpp',
+  'gstcvlaplace.cpp',
+  'gstcvsmooth.cpp',
+  'gstcvsobel.cpp',
+  'gstdisparity.cpp',
+  'gstedgedetect.cpp',
+  'gstfaceblur.cpp',
+  'gstfacedetect.cpp',
+  'gstgrabcut.cpp',
+  'gsthanddetect.cpp',
+  'gstmotioncells.cpp',
+  'gstopencv.cpp',
+  'gstretinex.cpp',
+  'gstsegmentation.cpp',
+  'gstskindetect.cpp',
+  'gsttemplatematch.cpp',
+  'gsttextoverlay.cpp',
+  'MotionCells.cpp',
+  'motioncells_wrapper.cpp'
+]
+
+opencv_cargs = ['-DGST_HAAR_CASCADES_DIR="@0@"']
+runcmd = run_command('pkg-config', '--variable=prefix', 'opencv')
+if runcmd.returncode() == 0
+  opencv_cargs += '-DOPENCV_PREFIX="' + runcmd.stdout().strip() + '"'
+endif
+
+r = run_command('test', '-d', '/usr/share/opencv')
+if r.returncode() == 0
+  opencv_cargs += '-DOPENCV_PATH_NAME="opencv"'
+else
+  opencv_cargs += '-DOPENCV_PATH_NAME="OpenCv"'
+endif
+
+opencv_dep = dependency('opencv', version : '>= 2.3.0')
+if opencv_dep.found()
+  gstopencv = library('gstopencv',
+    opencv_sources,
+    cpp_args : gst_plugins_bad_args + opencv_cargs + [ '-DGST_USE_UNSTABLE_API' ],
+    link_args : noseh_link_args,
+    include_directories : [configinc],
+    dependencies : [gstbase_dep, gstvideo_dep, opencv_dep, gstopencv_dep],
+    install : true,
+    install_dir : plugins_install_dir,
+  )
+endif
index 2ea25bcd817a44c10040d0cae0f6c0a82f66f8f7..847b5a5a7fb0454c9c39f2aca9565a8f63de8146 100644 (file)
@@ -8,6 +8,7 @@ subdir('codecparsers')
 subdir('insertbin')
 subdir('interfaces')
 subdir('mpegts')
+subdir('opencv')
 subdir('player')
 subdir('video')
 subdir('wayland')
diff --git a/gst-libs/gst/opencv/meson.build b/gst-libs/gst/opencv/meson.build
new file mode 100644 (file)
index 0000000..80639d3
--- /dev/null
@@ -0,0 +1,27 @@
+opencv_sources = [
+  'gstopencvutils.cpp',
+  'gstopencvvideofilter.cpp',
+]
+
+opencv_headers = [
+  'gstopencvutils.h',
+  'gstopencvvideofilter.h',
+]
+install_headers(opencv_headers, subdir : 'gstreamer-1.0/gst/opencv')
+
+opencv_dep = dependency('opencv', version : '>= 2.3.0', required : false)
+if opencv_dep.found()
+  gstopencv = library('gstopencv-' + api_version,
+    opencv_sources,
+    c_args : gst_plugins_bad_args,
+    include_directories : [configinc, libsinc],
+    version : libversion,
+    soversion : soversion,
+    install : true,
+    dependencies : [gstbase_dep, gstvideo_dep, opencv_dep],
+  )
+
+  gstopencv_dep = declare_dependency(link_with: gstopencv,
+    include_directories : [libsinc],
+    dependencies : [gstvideo_dep, opencv_dep])
+endif