gstreamer/subprojects/gst-plugins-bad/gst-libs/gst/cuda/meson.build
Seungha Yang 219bb769a2 cuda: Remove GST_CUDA_HAS_D3D define from header
... and fix d3d11 specific enum type name

GST_CUDA_HAS_D3D is a build time define which indicates whether
GstD3D11 library is available or not, but DirectX SDK headers
must be available on the build system already.

Expose Direct3D related symbols if the build target is Windows
(i.e., if G_OS_WIN32 is defined)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3018>
2022-09-13 16:40:51 +00:00

120 lines
3.2 KiB
Meson

cuda_sources = files([
'gstcudaloader.c',
'gstcudacontext.c',
'gstcudautils.c',
'gstcudamemory.c',
'gstcudabufferpool.c',
'gstcudanvrtc.c',
])
cuda_headers = files([
'cuda-prelude.h',
'gstcudabufferpool.h',
'gstcudacontext.h',
'gstcudaloader.h',
'gstcudamemory.h',
'gstcudanvrtc.h',
'gstcudautils.h',
])
gstcuda_dep = dependency('', required : false)
if host_system not in ['windows', 'linux']
subdir_done()
endif
cuda_win32_headers = [
'initguid.h',
'd3d11.h',
'dxgi.h',
]
if host_system == 'windows'
foreach h : cuda_win32_headers
if not cc.has_header(h)
subdir_done()
endif
endforeach
endif
cuda_stubinc = include_directories('./stub')
extra_c_args = ['-DGST_USE_UNSTABLE_API']
if gstgl_dep.found()
extra_c_args += ['-DHAVE_NVCODEC_GST_GL=1']
endif
if gstd3d11_dep.found()
extra_c_args += ['-DGST_CUDA_HAS_D3D=1', '-DCOBJMACROS']
endif
pkg_name = 'gstreamer-cuda-' + api_version
gstcuda= library('gstcuda-' + api_version,
cuda_sources,
c_args : gst_plugins_bad_args + extra_c_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_CUDA', '-DG_LOG_DOMAIN="GStreamer-Cuda"'],
cpp_args : gst_plugins_bad_args,
include_directories : [configinc, libsinc, cuda_stubinc],
version : libversion,
soversion : soversion,
install : true,
dependencies : [gstbase_dep, gmodule_dep, gstvideo_dep, gstglproto_dep, gstd3d11_dep]
)
gen_sources = []
library_def = {'lib': gstcuda}
if build_gir
gir_includes = ['Gst-1.0', 'GstBase-1.0', 'GstVideo-1.0', 'CudaGst-1.0']
if gstglproto_dep.found()
gir_includes += ['GstGL-1.0']
endif
cuda_gir = {
'sources' : files('stub/cuda.h', 'stub/cudaGL.h'),
'namespace' : 'CudaGst',
'nsversion' : api_version,
'identifier_prefix' : 'CU',
'symbol_prefix' : ['cu', 'cuda'],
'includes' : [],
'install' : true,
'extra_args' : [],
'dependencies' : [],
}
gir = {
'sources' : cuda_sources + cuda_headers,
'namespace' : 'GstCuda',
'nsversion' : api_version,
'identifier_prefix' : 'Gst',
'symbol_prefix' : 'gst',
'export_packages' : pkg_name,
'includes' : gir_includes,
'install' : true,
'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API', '-I' + meson.current_source_dir() / 'stub'],
'dependencies' : [gstbase_dep, gstvideo_dep, gstglproto_dep],
}
if not static_build
cudagst_gir = gnome.generate_gir(gstcuda, kwargs: cuda_gir)
gir += {'includes': gir['includes'] + [cudagst_gir[0]]}
gst_cuda_gir = gnome.generate_gir(gstcuda, kwargs: gir)
gen_sources += gst_cuda_gir
endif
library_def += {'gir': [gir, cuda_gir]}
endif
gst_libraries += [[pkg_name, library_def]]
pkgconfig.generate(gstcuda,
libraries : [gstbase_dep, gmodule_dep, gstvideo_dep, gstglproto_dep],
variables : pkgconfig_variables,
subdirs : pkgconfig_subdirs,
name : pkg_name,
description : 'Unstable library to work with CUDA inside GStreamer',
)
install_headers(cuda_headers + ['cuda-gst.h'], subdir : 'gstreamer-1.0/gst/cuda')
gstcuda_dep = declare_dependency(link_with : gstcuda,
include_directories : [libsinc],
dependencies : [gstbase_dep, gmodule_dep, gstvideo_dep, gstglproto_dep],
sources: gen_sources)
meson.override_dependency(pkg_name, gstcuda_dep)