wireplumber/lib/wp/meson.build

156 lines
3.6 KiB
Meson

wp_lib_sources = files(
'private/pipewire-object-mixin.c',
'client.c',
'component-loader.c',
'core.c',
'device.c',
'endpoint.c',
'error.c',
'global-proxy.c',
'iterator.c',
'link.c',
'log.c',
'metadata.c',
'node.c',
'object.c',
'object-interest.c',
'object-manager.c',
'plugin.c',
'port.c',
'properties.c',
'proxy.c',
'proxy-interfaces.c',
'session-item.c',
'si-factory.c',
'si-interfaces.c',
'spa-pod.c',
'spa-type.c',
'state.c',
'transition.c',
'wp.c',
)
wp_lib_headers = files(
'client.h',
'component-loader.h',
'core.h',
'defs.h',
'device.h',
'endpoint.h',
'error.h',
'global-proxy.h',
'iterator.h',
'link.h',
'log.h',
'metadata.h',
'node.h',
'object.h',
'object-interest.h',
'object-manager.h',
'plugin.h',
'port.h',
'properties.h',
'proxy.h',
'proxy-interfaces.h',
'session-item.h',
'si-factory.h',
'si-interfaces.h',
'spa-pod.h',
'spa-type.h',
'state.h',
'transition.h',
'wp.h',
)
install_headers(wp_lib_headers,
install_dir : wireplumber_headers_dir
)
enums = gnome.mkenums_simple('wpenums',
sources: wp_lib_headers,
header_prefix: '#include "wp/defs.h"',
decorator: 'WP_API',
install_header: true,
install_dir: wireplumber_headers_dir,
)
wpenums_h = enums[1]
wpenums_c = enums[0]
wp_gen_sources = [wpenums_h]
wpversion_data = configuration_data()
wpversion_data.set('version', meson.project_version())
wpversion_data.set('api_version', wireplumber_api_version)
wpversion = configure_file(
input : 'wpversion.h.in',
output : 'wpversion.h',
configuration : wpversion_data,
install_dir: wireplumber_headers_dir
)
wp_gen_sources += [wpversion]
wp_lib = library('wireplumber-' + wireplumber_api_version,
wp_lib_sources, wpenums_c, wpenums_h, wpversion,
c_args : [
'-D_GNU_SOURCE',
'-DG_LOG_USE_STRUCTURED',
'-DWIREPLUMBER_DEFAULT_MODULE_DIR="@0@"'.format(wireplumber_module_dir),
'-DWIREPLUMBER_DEFAULT_CONFIG_DIR="@0@"'.format(wireplumber_config_dir),
'-DWIREPLUMBER_DEFAULT_DATA_DIR="@0@"'.format(wireplumber_data_dir),
'-DBUILDING_WP',
],
install: true,
include_directories: wp_lib_include_dir,
dependencies : [gobject_dep, gmodule_dep, gio_dep, pipewire_dep],
soversion: wireplumber_so_version,
version: meson.project_version(),
)
if build_gir
wp_gtkdoc_conf = configure_file(
input: '../../docs/gen-api-gtkdoc.py.in',
output: 'gen-api-gtkdoc.py',
copy: true
)
script_data = configuration_data()
script_data.set('PYTHON', 'python3')
script_data.set('OUTDIR', meson.current_build_dir())
script_data.set('GIR_PY_SCRIPT', meson.current_build_dir() + '/gen-api-gtkdoc.py')
script_data.set('XML_DIR', meson.build_root() + '/docs/doxygen_doc/xml')
script_data.set('DOXYGEN_CONF', meson.build_root() + '/docs/doxyfile')
script_data.set('DOXYGEN_CMD', doxygen_p.path())
script_gen_api = configure_file(
input: '../../docs/run_gen_api.sh.in',
output: 'run_gen_api.sh',
configuration: script_data
)
wp_gtkdoc_h = custom_target(
'gir',
command: script_gen_api,
output: 'wp-gtkdoc.h',
build_by_default: true,
)
wp_gir = gnome.generate_gir(wp_lib,
namespace: 'Wp',
nsversion: wireplumber_api_version,
sources: [wpenums_c, wpenums_h, wp_gtkdoc_h],
includes: ['GLib-2.0', 'GObject-2.0', 'Gio-2.0'],
install: true,
)
wp_gen_sources += wp_gir
endif
wp_dep = declare_dependency(
link_with: wp_lib,
sources: wp_gen_sources,
include_directories: wp_lib_include_dir,
dependencies: [gobject_dep, gio_dep]
)
pkgconfig.generate(wp_lib,
libraries: [gobject_dep, gio_dep],
subdirs: 'wireplumber-' + wireplumber_api_version
)