mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-05 09:00:54 +00:00
d2ee9b16fa
This uses the new path for OpenCV headers. OpenCV now have master headers files per modules, which reduce the amount of required includes. Note that HIGHGUI was included to get the imgcodecs includes, which I fixed, though the master header is missing the C headers, so I included that directly. All the image stuff should be ported to C++ eventually. Finally, this patch also update the header checks to reflect the modules that are really being used.
83 lines
2.3 KiB
Meson
83 lines
2.3 KiB
Meson
gstopencv_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',
|
|
'gstdewarp.cpp',
|
|
'camerautils.cpp',
|
|
'cameraevent.cpp',
|
|
'gstcameracalibrate.cpp',
|
|
'gstcameraundistort.cpp'
|
|
]
|
|
|
|
libopencv_headers = [
|
|
'opencv2/bgsegm.hpp',
|
|
'opencv2/calib3d.hpp',
|
|
'opencv2/core.hpp',
|
|
'opencv2/imgcodecs/imgcodecs_c.h',
|
|
'opencv2/imgproc.hpp',
|
|
'opencv2/objdetect.hpp',
|
|
'opencv2/opencv.hpp',
|
|
'opencv2/video.hpp',
|
|
]
|
|
|
|
gstopencv_cargs = ['-DGST_HAAR_CASCADES_DIR="@0@"']
|
|
|
|
opencv_dep = dependency('opencv', version : ['>= 3.0.0', '< 3.5.0'], required : false)
|
|
opencv_found = opencv_dep.found()
|
|
|
|
if opencv_found
|
|
foreach h : libopencv_headers
|
|
if not cxx.has_header(h)
|
|
message('Needed header "' + h + '" not found')
|
|
opencv_found = false
|
|
endif
|
|
endforeach
|
|
endif
|
|
|
|
if opencv_found
|
|
opencv_prefix = opencv_dep.get_pkgconfig_variable('prefix')
|
|
gstopencv_cargs += ['-DOPENCV_PREFIX="' + opencv_prefix + '"']
|
|
|
|
# Check the data dir used by opencv for its xml data files
|
|
# Use prefix from pkg-config to be compatible with cross-compilation
|
|
r = run_command('test', '-d', opencv_prefix + '/share/opencv')
|
|
if r.returncode() == 0
|
|
gstopencv_cargs += '-DOPENCV_PATH_NAME="opencv"'
|
|
else
|
|
r = run_command('test', '-d', opencv_prefix + '/share/OpenCV')
|
|
if r.returncode() == 0
|
|
gstopencv_cargs += '-DOPENCV_PATH_NAME="OpenCV"'
|
|
else
|
|
error('Unable to detect OpenCV data directory')
|
|
endif
|
|
endif
|
|
gstopencv = library('gstopencv',
|
|
gstopencv_sources,
|
|
cpp_args : gst_plugins_bad_args + gstopencv_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,
|
|
)
|
|
pkgconfig.generate(gstopencv, install_dir : plugins_pkgconfig_install_dir)
|
|
endif
|