meson: add option for opengl and the misc optional gl plugin deps
Finer control over the opengl integration library dependencies is already implemented via the gl_api, gl_platform, and gl_winsys options. https://bugzilla.gnome.org/show_bug.cgi?id=796947
This commit is contained in:
parent
8829a8707a
commit
4ec1ba433d
@ -47,80 +47,82 @@ opengl_sources = [
|
|||||||
'gstglutils.c'
|
'gstglutils.c'
|
||||||
]
|
]
|
||||||
|
|
||||||
if build_gstgl and gstgl_dep.found()
|
if get_option('gl').disabled() or not gstgl_dep.found()
|
||||||
optional_deps = []
|
subdir_done()
|
||||||
|
|
||||||
if gl_dep.found() # have desktop GL
|
|
||||||
# These have to stay in -bad until we can move GstVideoAggregator to -base
|
|
||||||
# 'gstglmosaic.c',
|
|
||||||
opengl_sources += [
|
|
||||||
'gstglfilterglass.c',
|
|
||||||
]
|
|
||||||
endif
|
|
||||||
|
|
||||||
graphene_dep = dependency('graphene-1.0', version : '>=1.4.0', required : false)
|
|
||||||
if graphene_dep.found()
|
|
||||||
optional_deps += graphene_dep
|
|
||||||
core_conf.set('HAVE_GRAPHENE', true)
|
|
||||||
opengl_sources += [
|
|
||||||
'gstgltransformation.c',
|
|
||||||
'gstglvideoflip.c',
|
|
||||||
]
|
|
||||||
endif
|
|
||||||
|
|
||||||
png_dep = dependency('libpng', version : '>=1.0', required : false)
|
|
||||||
jpeg_dep = cc.find_library('jpeg-mmx', required : false)
|
|
||||||
if not jpeg_dep.found()
|
|
||||||
jpeg_dep = cc.find_library('jpeg', required : false)
|
|
||||||
endif
|
|
||||||
|
|
||||||
if png_dep.found()
|
|
||||||
optional_deps += png_dep
|
|
||||||
core_conf.set('HAVE_PNG', true)
|
|
||||||
opengl_sources += [
|
|
||||||
'gstgldifferencematte.c',
|
|
||||||
]
|
|
||||||
if jpeg_dep.found()
|
|
||||||
optional_deps += jpeg_dep
|
|
||||||
core_conf.set('HAVE_JPEG', true)
|
|
||||||
opengl_sources += [
|
|
||||||
'gstgloverlay.c',
|
|
||||||
]
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if glconf.has('GST_GL_HAVE_WINDOW_COCOA')
|
|
||||||
quartzcore_dep = dependency('QuartzCore', required : false)
|
|
||||||
if quartzcore_dep.found() # have cocoa
|
|
||||||
opengl_sources += [
|
|
||||||
'caopengllayersink.m',
|
|
||||||
]
|
|
||||||
optional_deps += quartzcore_dep
|
|
||||||
endif
|
|
||||||
endif
|
|
||||||
|
|
||||||
if x11_dep.found()
|
|
||||||
# for XInitThreads()
|
|
||||||
optional_deps += x11_dep
|
|
||||||
endif
|
|
||||||
|
|
||||||
if bcm_host_dep.found()
|
|
||||||
optional_deps += bcm_host_dep
|
|
||||||
endif
|
|
||||||
|
|
||||||
if egl_dep.found() and cc.has_header('libdrm/drm_fourcc.h')
|
|
||||||
optional_deps += allocators_dep
|
|
||||||
endif
|
|
||||||
|
|
||||||
gstopengl = library('gstopengl',
|
|
||||||
opengl_sources,
|
|
||||||
c_args : gst_plugins_base_args,
|
|
||||||
link_args : noseh_link_args,
|
|
||||||
include_directories : [configinc],
|
|
||||||
dependencies : [gstgl_dep, video_dep,
|
|
||||||
gst_base_dep, gst_controller_dep, libm] + optional_deps,
|
|
||||||
install : true,
|
|
||||||
install_dir : plugins_install_dir,
|
|
||||||
)
|
|
||||||
pkgconfig.generate(gstopengl, install_dir : plugins_pkgconfig_install_dir)
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
optional_deps = []
|
||||||
|
|
||||||
|
if gl_dep.found() # have desktop GL
|
||||||
|
# These have to stay in -bad until we can move GstVideoAggregator to -base
|
||||||
|
# 'gstglmosaic.c',
|
||||||
|
opengl_sources += [
|
||||||
|
'gstglfilterglass.c',
|
||||||
|
]
|
||||||
|
endif
|
||||||
|
|
||||||
|
graphene_dep = dependency('graphene-1.0', version : '>=1.4.0', required : get_option('gl-graphene'))
|
||||||
|
if graphene_dep.found()
|
||||||
|
optional_deps += graphene_dep
|
||||||
|
core_conf.set('HAVE_GRAPHENE', true)
|
||||||
|
opengl_sources += [
|
||||||
|
'gstgltransformation.c',
|
||||||
|
'gstglvideoflip.c',
|
||||||
|
]
|
||||||
|
endif
|
||||||
|
|
||||||
|
png_dep = dependency('libpng', version : '>=1.0', required : get_option('gl-png'))
|
||||||
|
jpeg_dep = cc.find_library('jpeg-mmx', required : false)
|
||||||
|
if not jpeg_dep.found()
|
||||||
|
jpeg_dep = cc.find_library('jpeg', required : get_option('gl-jpeg'))
|
||||||
|
endif
|
||||||
|
|
||||||
|
if png_dep.found()
|
||||||
|
optional_deps += png_dep
|
||||||
|
core_conf.set('HAVE_PNG', true)
|
||||||
|
opengl_sources += [
|
||||||
|
'gstgldifferencematte.c',
|
||||||
|
]
|
||||||
|
if jpeg_dep.found()
|
||||||
|
optional_deps += jpeg_dep
|
||||||
|
core_conf.set('HAVE_JPEG', true)
|
||||||
|
opengl_sources += [
|
||||||
|
'gstgloverlay.c',
|
||||||
|
]
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if glconf.has('GST_GL_HAVE_WINDOW_COCOA')
|
||||||
|
quartzcore_dep = dependency('QuartzCore', required : false)
|
||||||
|
if quartzcore_dep.found() # have cocoa
|
||||||
|
opengl_sources += [
|
||||||
|
'caopengllayersink.m',
|
||||||
|
]
|
||||||
|
optional_deps += quartzcore_dep
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
|
if x11_dep.found()
|
||||||
|
# for XInitThreads()
|
||||||
|
optional_deps += x11_dep
|
||||||
|
endif
|
||||||
|
|
||||||
|
if bcm_host_dep.found()
|
||||||
|
optional_deps += bcm_host_dep
|
||||||
|
endif
|
||||||
|
|
||||||
|
if egl_dep.found() and cc.has_header('libdrm/drm_fourcc.h')
|
||||||
|
optional_deps += allocators_dep
|
||||||
|
endif
|
||||||
|
|
||||||
|
gstopengl = library('gstopengl',
|
||||||
|
opengl_sources,
|
||||||
|
c_args : gst_plugins_base_args,
|
||||||
|
link_args : noseh_link_args,
|
||||||
|
include_directories : [configinc],
|
||||||
|
dependencies : [gstgl_dep, video_dep,
|
||||||
|
gst_base_dep, gst_controller_dep, libm] + optional_deps,
|
||||||
|
install : true,
|
||||||
|
install_dir : plugins_install_dir)
|
||||||
|
|
||||||
|
pkgconfig.generate(gstopengl, install_dir : plugins_pkgconfig_install_dir)
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
if get_option('gl').disabled()
|
||||||
|
message('GStreamer OpenGL integration disabled via options.')
|
||||||
|
gstgl_dep = disabler()
|
||||||
|
build_gstgl = false
|
||||||
|
subdir_done()
|
||||||
|
endif
|
||||||
|
|
||||||
gl_sources = [
|
gl_sources = [
|
||||||
'gstglapi.c',
|
'gstglapi.c',
|
||||||
'gstglbasefilter.c',
|
'gstglbasefilter.c',
|
||||||
@ -821,4 +828,7 @@ if build_gstgl
|
|||||||
include_directories : [libsinc, compat_includes],
|
include_directories : [libsinc, compat_includes],
|
||||||
sources: gen_sources,
|
sources: gen_sources,
|
||||||
dependencies : [video_dep, gst_base_dep] + gl_winsys_deps)
|
dependencies : [video_dep, gst_base_dep] + gl_winsys_deps)
|
||||||
|
|
||||||
|
elif get_option('gl').enabled()
|
||||||
|
error('GStreamer OpenGL integration required via options, but needed dependencies not found.')
|
||||||
endif
|
endif
|
||||||
|
@ -21,6 +21,12 @@ option('opengl_module_name', type : 'string', value : '',
|
|||||||
option('gles2_module_name', type : 'string', value : '',
|
option('gles2_module_name', type : 'string', value : '',
|
||||||
description : 'The file to pass to g_module_open to open the libGLESv2 library (default: libGLESv2)')
|
description : 'The file to pass to g_module_open to open the libGLESv2 library (default: libGLESv2)')
|
||||||
|
|
||||||
|
# Feature option for opengl plugin and integration library
|
||||||
|
option('gl', type : 'feature', value : 'auto', description : 'OpenGL integration library and OpenGL plugin')
|
||||||
|
option('gl-graphene', type : 'feature', value : 'auto', description : 'Use Graphene in OpenGL plugin')
|
||||||
|
option('gl-jpeg', type : 'feature', value : 'auto', description : 'Use libjpeg in OpenGL plugin')
|
||||||
|
option('gl-png', type : 'feature', value : 'auto', description : 'Use libpng in OpenGL plugin')
|
||||||
|
|
||||||
# Feature options for plugins with no external deps
|
# Feature options for plugins with no external deps
|
||||||
option('adder', type : 'feature', value : 'auto')
|
option('adder', type : 'feature', value : 'auto')
|
||||||
option('app', type : 'feature', value : 'auto')
|
option('app', type : 'feature', value : 'auto')
|
||||||
|
Loading…
x
Reference in New Issue
Block a user