gstreamer/subprojects/gst-plugins-bad/gst-libs/gst/webrtc/meson.build
Thibault Saunier 6e79932ad9 meson: List libraries and their corresponding gir definition
Introduces a `libraries` variable that contains all libraries in a
list with the following format:

``` meson
libraries = [
    [pkg_name, {
        'lib': library_object
        'gir': [ {full gir definition in a dict } ]
    ],
    ....
]
```

It therefore refactors the way we build the gir so that we can reuse the
same information to build them against 'gstreamer-full' in gst-build
when linking statically

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1093>
2021-10-15 19:27:30 -03:00

97 lines
2.6 KiB
Meson

webrtc_sources = files([
'dtlstransport.c',
'icetransport.c',
'rtcsessiondescription.c',
'rtpreceiver.c',
'rtpsender.c',
'rtptransceiver.c',
'datachannel.c',
'sctptransport.c',
])
webrtc_headers = files([
'dtlstransport.h',
'icetransport.h',
'rtcsessiondescription.h',
'rtpreceiver.h',
'rtpsender.h',
'rtptransceiver.h',
'datachannel.h',
'webrtc_fwd.h',
'webrtc.h',
'sctptransport.h',
])
webrtc_enumtypes_headers = files([
'dtlstransport.h',
'icetransport.h',
'rtptransceiver.h',
'webrtc_fwd.h',
])
webrtc_enums = gnome.mkenums_simple('webrtc-enumtypes',
sources : webrtc_enumtypes_headers,
body_prefix : '#ifdef HAVE_CONFIG_H\n#include "config.h"\n#endif',
header_prefix : '#include <gst/webrtc/webrtc_fwd.h>',
decorator: 'GST_WEBRTC_API',
install_header: true,
install_dir : join_paths(get_option('includedir'), 'gstreamer-1.0/gst/webrtc/'))
gstwebrtc_c = webrtc_enums[0]
gstwebrtc_h = webrtc_enums[1]
webrtc_gen_sources = [gstwebrtc_h]
gstwebrtc_dependencies = [gstbase_dep, gstsdp_dep]
gstwebrtc = library('gstwebrtc-' + api_version,
webrtc_sources, gstwebrtc_c, gstwebrtc_h,
c_args : gst_plugins_bad_args + ['-DGST_USE_UNSTABLE_API', '-DBUILDING_GST_WEBRTC'],
include_directories : [configinc, libsinc],
version : libversion,
soversion : soversion,
darwin_versions : osxversion,
install : true,
dependencies : gstwebrtc_dependencies,
)
library_def = {'lib': gstwebrtc}
pkg_name = 'gstreamer-webrtc-1.0'
pkgconfig.generate(gstwebrtc,
libraries : [gst_dep, gstbase_dep],
variables : pkgconfig_variables,
subdirs : pkgconfig_subdirs,
name : pkg_name,
description : 'GStreamer WebRTC support',
)
if build_gir
gir = {
'sources' : webrtc_sources + webrtc_headers + [gstwebrtc_h],
'namespace' : 'GstWebRTC',
'nsversion' : api_version,
'identifier_prefix' : 'Gst',
'symbol_prefix' : 'gst',
'export_packages' : pkg_name,
'includes' : ['Gst-1.0', 'GstSdp-1.0'],
'install' : true,
'extra_args' : gir_init_section + ['-DGST_USE_UNSTABLE_API'] + ['--c-include=gst/webrtc/webrtc.h'],
'dependencies' : gstwebrtc_dependencies,
}
library_def = {'lib': library_def['lib'], 'gir': [gir]}
if not static_build
webrtc_gir = gnome.generate_gir(gstwebrtc, kwargs: gir)
webrtc_gen_sources += webrtc_gir
endif
endif
libraries += [[pkg_name, library_def]]
install_headers(webrtc_headers, subdir : 'gstreamer-1.0/gst/webrtc')
gstwebrtc_dep = declare_dependency(link_with: gstwebrtc,
include_directories : libsinc,
sources: webrtc_gen_sources,
dependencies: gstwebrtc_dependencies)
meson.override_dependency(pkg_name, gstwebrtc_dep)