mirror of
https://gitlab.gnome.org/GNOME/libgnome-volume-control.git
synced 2024-10-05 21:56:14 -04:00
f764bb68e0
Headers are not necessary to be passed to the library compilation function because the compiler will find them. On the other hand they are necessary for the proper GIR generation. This patch splits headers and sources, uses only sources for the library building and uses both for GIR generation. It also allows getting both separately. https://bugzilla.gnome.org/show_bug.cgi?id=792948
147 lines
3.3 KiB
Meson
147 lines
3.3 KiB
Meson
project('gvc', 'c',
|
|
meson_version: '>= 0.38.0',
|
|
default_options: ['static=true']
|
|
)
|
|
|
|
if not meson.is_subproject()
|
|
error('This project is only intended to be used as a subproject!')
|
|
endif
|
|
|
|
gnome = import('gnome')
|
|
|
|
pkglibdir = get_option('pkglibdir')
|
|
pkgdatadir = get_option('pkgdatadir')
|
|
|
|
cdata = configuration_data()
|
|
cdata.set_quoted('GETTEXT_PACKAGE', get_option('package_name'))
|
|
cdata.set_quoted('PACKAGE_VERSION', get_option('package_version'))
|
|
|
|
libgvc_inc = include_directories('.')
|
|
|
|
libgvc_gir_headers = [
|
|
'gvc-channel-map.h',
|
|
'gvc-mixer-card.h',
|
|
'gvc-mixer-control.h',
|
|
'gvc-mixer-event-role.h',
|
|
'gvc-mixer-sink.h',
|
|
'gvc-mixer-sink-input.h',
|
|
'gvc-mixer-source.h',
|
|
'gvc-mixer-source-output.h',
|
|
'gvc-mixer-stream.h',
|
|
'gvc-mixer-ui-device.h'
|
|
]
|
|
|
|
libgvc_gir_sources = [
|
|
'gvc-channel-map.c',
|
|
'gvc-mixer-card.c',
|
|
'gvc-mixer-control.c',
|
|
'gvc-mixer-event-role.c',
|
|
'gvc-mixer-sink.c',
|
|
'gvc-mixer-sink-input.c',
|
|
'gvc-mixer-source.c',
|
|
'gvc-mixer-source-output.c',
|
|
'gvc-mixer-stream.c',
|
|
'gvc-mixer-ui-device.c'
|
|
]
|
|
|
|
libgvc_no_gir_sources = [
|
|
'gvc-mixer-card-private.h',
|
|
'gvc-mixer-stream-private.h',
|
|
'gvc-channel-map-private.h',
|
|
'gvc-mixer-control-private.h',
|
|
'gvc-pulseaudio-fake.h'
|
|
]
|
|
|
|
libgvc_deps = [
|
|
dependency('gio-2.0'),
|
|
dependency('gobject-2.0'),
|
|
dependency('libpulse', version: '>= 2.0'),
|
|
dependency('libpulse-mainloop-glib')
|
|
]
|
|
|
|
enable_alsa = get_option('alsa')
|
|
if enable_alsa
|
|
libgvc_deps += dependency('alsa')
|
|
endif
|
|
cdata.set('HAVE_ALSA', enable_alsa)
|
|
|
|
enable_static = get_option('static')
|
|
enable_introspection = get_option('introspection')
|
|
|
|
if enable_static and enable_introspection
|
|
error('Currently meson requires a shared library for building girs.')
|
|
endif
|
|
|
|
c_args = ['-DG_LOG_DOMAIN="Gvc"']
|
|
|
|
if enable_introspection
|
|
c_args += '-DWITH_INTROSPECTION'
|
|
endif
|
|
|
|
if enable_static
|
|
libgvc_static = static_library('gvc',
|
|
sources: libgvc_gir_sources + libgvc_no_gir_sources,
|
|
include_directories: libgvc_inc,
|
|
dependencies: libgvc_deps,
|
|
c_args: c_args
|
|
)
|
|
|
|
libgvc = libgvc_static
|
|
else
|
|
if pkglibdir == ''
|
|
error('Installing shared library, but pkglibdir is unset!')
|
|
endif
|
|
|
|
libgvc_shared = shared_library('gvc',
|
|
sources: libgvc_gir_sources + libgvc_no_gir_sources,
|
|
include_directories: libgvc_inc,
|
|
dependencies: libgvc_deps,
|
|
c_args: c_args,
|
|
install_rpath: pkgdatadir,
|
|
install_dir: pkglibdir,
|
|
install: true
|
|
)
|
|
|
|
libgvc = libgvc_shared
|
|
endif
|
|
|
|
if enable_introspection
|
|
if pkgdatadir == ''
|
|
error('Installing introspection, but pkgdatadir is unset!')
|
|
elif (pkglibdir == '')
|
|
error('Installing introspection, but pkglibdir is unset!')
|
|
endif
|
|
|
|
libgvc_gir = gnome.generate_gir(libgvc,
|
|
sources: libgvc_gir_sources + libgvc_gir_headers,
|
|
nsversion: '1.0',
|
|
namespace: 'Gvc',
|
|
includes: ['Gio-2.0', 'GObject-2.0'],
|
|
extra_args: ['-DWITH_INTROSPECTION', '--quiet'],
|
|
install_dir_gir: pkgdatadir,
|
|
install_dir_typelib: pkglibdir,
|
|
install: true
|
|
)
|
|
endif
|
|
|
|
if enable_alsa
|
|
executable('test-audio-device-selection',
|
|
sources: 'test-audio-device-selection.c',
|
|
link_with: libgvc,
|
|
dependencies: libgvc_deps,
|
|
c_args: c_args
|
|
)
|
|
endif
|
|
|
|
libgvc_dep = declare_dependency(
|
|
link_with: libgvc,
|
|
include_directories: libgvc_inc,
|
|
dependencies: libgvc_deps
|
|
)
|
|
|
|
config = configure_file(
|
|
input: 'config.h.meson',
|
|
output: 'config.h',
|
|
configuration: cdata
|
|
)
|