| gst_allocators_headers = files([ | |
| 'allocators.h', | |
| 'allocators-prelude.h', | |
| 'gstfdmemory.h', | |
| 'gstphysmemory.h', | |
| 'gstdmabuf.h', | |
| 'gstdrmdumb.h', | |
| 'gstshmallocator.h', | |
| ]) | |
| install_headers(gst_allocators_headers, subdir : 'gstreamer-1.0/gst/allocators/') | |
| gst_allocators_sources = files([ | |
| 'gstdrmdumb.c', | |
| 'gstdmabuf.c', | |
| 'gstfdmemory.c', | |
| 'gstphysmemory.c', | |
| 'gstshmallocator.c', | |
| ]) | |
| gst_allocators_cargs = [ | |
| gst_plugins_base_args, | |
| '-DBUILDING_GST_ALLOCATORS', | |
| '-DG_LOG_DOMAIN="GStreamer-Allocators"', | |
| ] | |
| if cc.has_function('memfd_create') | |
| gst_allocators_cargs += [ | |
| '-DHAVE_MEMFD_CREATE', | |
| '-D_GNU_SOURCE', | |
| ] | |
| elif cc.has_function('shm_open') | |
| gst_allocators_cargs += [ | |
| '-DHAVE_SHM_OPEN', | |
| ] | |
| endif | |
| gstallocators = library('gstallocators-@0@'.format(api_version), | |
| gst_allocators_sources, | |
| c_args : gst_allocators_cargs, | |
| include_directories: [configinc, libsinc], | |
| version : libversion, | |
| soversion : soversion, | |
| darwin_versions : osxversion, | |
| install : true, | |
| dependencies : [libdrm_dep, gst_dep], | |
| ) | |
| pkg_name = 'gstreamer-allocators-1.0' | |
| pkgconfig.generate(gstallocators, | |
| libraries : [libdrm_dep, gst_dep], | |
| variables : pkgconfig_variables, | |
| subdirs : pkgconfig_subdirs, | |
| name : pkg_name, | |
| description : 'Allocators implementation', | |
| ) | |
| library_def = {'lib': gstallocators} | |
| allocators_gen_sources = [] | |
| if build_gir | |
| gst_gir_extra_args = gir_init_section + [ '--c-include=gst/allocators/allocators.h' ] | |
| gir = { | |
| 'sources' : gst_allocators_sources + gst_allocators_headers, | |
| 'namespace' : 'GstAllocators', | |
| 'nsversion' : api_version, | |
| 'identifier_prefix' : 'Gst', | |
| 'symbol_prefix' : 'gst', | |
| 'export_packages' : pkg_name, | |
| 'includes' : ['Gst-1.0'], | |
| 'install' : true, | |
| 'extra_args' : gst_gir_extra_args, | |
| 'dependencies' : [gst_dep] | |
| } | |
| library_def += {'gir': [gir]} | |
| if not static_build | |
| allocators_gir = gnome.generate_gir(gstallocators, kwargs: gir) | |
| library_def += {'gir_targets': library_def.get('gir_targets', []) + [allocators_gir]} | |
| allocators_gen_sources += allocators_gir | |
| endif | |
| endif | |
| gst_libraries += [[pkg_name, library_def]] | |
| allocators_dep = declare_dependency(link_with: gstallocators, | |
| include_directories : [libsinc], | |
| dependencies : [gst_dep], | |
| sources : allocators_gen_sources) | |
| meson.override_dependency('gstreamer-allocators-1.0', allocators_dep) |