vlc/modules/video_output/meson.build
2024-11-19 14:11:44 +00:00

197 lines
4.7 KiB
Meson

#
# Video output modules
#
# Declared here, as its used by both the
# libplacebo and opengl subfolder build file.
if have_win_store
# even if it's there, don't use it
missing_win_glew = true
elif host_system == 'windows'
missing_win_glew = not cdata.has('HAVE_GL_WGLEW_H')
else
missing_win_glew = false
endif
libplacebo_dep = dependency('libplacebo',
version: '>= 2.72',
required: get_option('libplacebo'))
if missing_win_glew
# Our OpenGL code requires glew.h to be present
opengl_dep = disabler()
else
opengl_dep = dependency('gl', required: false)
endif
opengles2_dep = dependency('glesv2', required: get_option('gles2'))
if host_system == 'darwin'
subdir('apple')
endif
if libplacebo_dep.found()
libplacebo_utils = static_library('vlc_libplacebo_utils',
files('./libplacebo/utils.c'),
dependencies: [libplacebo_dep],
include_directories: [vlc_include_dirs])
subdir('libplacebo')
else
libplacebo_utils = []
endif
subdir('opengl')
if host_system == 'windows'
subdir('win32')
endif
# Dummy video output
vlc_modules += {
'name' : 'vdummy',
'sources' : files('vdummy.c')
}
# Dummy window provider
vlc_modules += {
'name' : 'wdummy',
'sources' : files('wdummy.c')
}
# Video splitter
vlc_modules += {
'name' : 'video_splitter',
'sources' : files('splitter.c')
}
# YUV video output
vlc_modules += {
'name' : 'yuv',
'sources' : files('yuv.c')
}
# Flaschen video output
vlc_modules += {
'name' : 'flaschen',
'sources' : files('flaschen.c'),
'dependencies' : [socket_libs]
}
# vmem
vlc_modules += {
'name' : 'vmem',
'sources' : files('vmem.c')
}
# wextern
vlc_modules += {
'name' : 'wextern',
'sources' : files('wextern.c')
}
# vgl
vlc_modules += {
'name' : 'vgl',
'sources' : files('vgl.c')
}
vlc_modules += {
'name' : 'decklinkoutput',
'sources' : files('decklink.cpp',
'../stream_out/sdi/Ancillary.cpp',
'../stream_out/sdi/Ancillary.hpp',
'../stream_out/sdi/DBMHelper.cpp',
'../stream_out/sdi/DBMHelper.hpp',
'../stream_out/sdi/SDIGenerator.cpp',
'../stream_out/sdi/SDIGenerator.hpp',
'../stream_out/sdi/V210.cpp',
'../stream_out/sdi/V210.hpp'),
'dependencies' : [dl_lib, decklink_dep],
'cpp_args' : decklink_cpp_args,
'enabled' : decklink_dep.found(),
}
# Kernel Mode Setting
drm_dep = dependency('libdrm', version: '>= 2.4.83', required: get_option('drm'))
if drm_dep.found()
vlc_modules += {
'name' : 'kms',
'sources' : files('kms.c'),
'dependencies' : [drm_dep]
}
endif
# Coloured ASCII art (Caca)
caca_dep = dependency('caca', version: '>= 0.99.beta14', required: get_option('caca'))
caca_deps = [ caca_dep ]
if not (host_system in ['windows', 'darwin'])
caca_deps += x11_dep
endif
if caca_dep.found()
vlc_modules += {
'name' : 'caca',
'sources' : files('caca.c'),
'dependencies' : [caca_deps],
}
endif
#
# x11 video outputs
#
if xcb_dep.found()
vlc_xcb_events_lib = library('vlc_xcb_events',
files('xcb/events.c'),
include_directories: [vlc_include_dirs],
dependencies: [xcb_dep, libvlccore_dep])
if xcb_randr_dep.found() and xproto_dep.found()
vlc_modules += {
'name' : 'xcb_window',
'sources' : files('xcb/window.c'),
'dependencies' : [xcb_dep, xcb_randr_dep, xproto_dep]
}
endif
if xcb_render_dep.found() and xcb_shm_dep.found()
vlc_modules += {
'name' : 'xcb_render',
'sources' : files(
'xcb/pictures.c',
'xcb/render.c'
),
'dependencies' : [xcb_dep, xcb_render_dep, xcb_shm_dep, m_lib],
'link_with' : [vlc_xcb_events_lib]
}
endif
if xcb_shm_dep.found()
vlc_modules += {
'name' : 'xcb_x11',
'sources' : files(
'xcb/pictures.c',
'xcb/x11.c'
),
'dependencies' : [xcb_dep, xcb_shm_dep],
'link_with' : [vlc_xcb_events_lib]
}
endif
endif
egl_dep = dependency('egl', required: false)
if x11_dep.found() and egl_dep.found()
vlc_modules += {
'name' : 'egl_x11',
'sources' : files('opengl/egl.c'),
'c_args' : ['-DUSE_PLATFORM_X11=1'],
'dependencies' : [egl_dep, x11_dep]
}
endif
if x11_dep.found() and opengl_dep.found()
vlc_modules += {
'name' : 'glx',
'sources' : files('glx.c'),
'dependencies' : [x11_dep, opengl_dep]
}
endif