mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-10-29 05:40:27 -04:00
The file is moved into a new "include-private" directory. This is done because otherwise adjustments would have to be made to the list of installed headers, the way include tests currently work and which files are used for generating documentation.
117 lines
5.5 KiB
Meson
117 lines
5.5 KiB
Meson
#project('spa', 'c')
|
|
|
|
#cc = meson.get_compiler('c')
|
|
#dl_lib = cc.find_library('dl', required : false)
|
|
#pthread_lib = dependencies('threads')
|
|
#mathlib = cc.find_library('m', required : false)
|
|
|
|
spa_dep = declare_dependency(
|
|
include_directories : [
|
|
include_directories('include'),
|
|
include_directories('include-private'),
|
|
],
|
|
dependencies : [atomic_dep],
|
|
version : spaversion,
|
|
variables : {
|
|
'plugindir' : meson.current_build_dir() / 'plugins',
|
|
'datadir' : meson.current_source_dir() / 'plugins',
|
|
},
|
|
)
|
|
|
|
meson.override_dependency('lib@0@'.format(spa_name), spa_dep)
|
|
|
|
pkgconfig.generate(filebase : 'lib@0@'.format(spa_name),
|
|
name : 'libspa',
|
|
subdirs : spa_name,
|
|
description : 'Simple Plugin API',
|
|
version : spaversion,
|
|
extra_cflags : '-D_REENTRANT',
|
|
variables : ['plugindir=${libdir}/@0@'.format(spa_name)],
|
|
uninstalled_variables : ['plugindir=${prefix}/spa/plugins'],
|
|
)
|
|
|
|
subdir('include')
|
|
|
|
if get_option('spa-plugins').allowed()
|
|
udevrulesdir = get_option('udevrulesdir')
|
|
if udevrulesdir == ''
|
|
# absolute path, otherwise meson prepends the prefix
|
|
udevrulesdir = '/usr/lib/udev/rules.d'
|
|
endif
|
|
|
|
# plugin-specific dependencies
|
|
alsa_dep = dependency('alsa', required: get_option('alsa'))
|
|
summary({'ALSA': alsa_dep.found()}, bool_yn: true, section: 'Backend')
|
|
|
|
bluez_dep = dependency('bluez', version : '>= 4.101', required: get_option('bluez5'))
|
|
gio_dep = dependency('gio-2.0', required : get_option('bluez5'))
|
|
gio_unix_dep = dependency('gio-unix-2.0', required : get_option('bluez5'))
|
|
bluez_glib2_dep = dependency('glib-2.0', required : get_option('bluez5'))
|
|
sbc_dep = dependency('sbc', required: get_option('bluez5'))
|
|
summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
bluez5_deps = [ mathlib, dbus_dep, sbc_dep, bluez_dep, bluez_glib2_dep, gio_dep, gio_unix_dep ]
|
|
bluez_deps_found = get_option('bluez5').allowed()
|
|
foreach dep: bluez5_deps
|
|
if get_option('bluez5').enabled() and not dep.found()
|
|
error('bluez5 enabled, but dependency not found: ' + dep.name())
|
|
endif
|
|
bluez_deps_found = bluez_deps_found and dep.found()
|
|
endforeach
|
|
summary({'Bluetooth audio': bluez_deps_found}, bool_yn: true, section: 'Backend')
|
|
if bluez_deps_found
|
|
ldac_dep = dependency('ldacBT-enc', required : get_option('bluez5-codec-ldac'))
|
|
summary({'LDAC': ldac_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
ldac_abr_dep = dependency('ldacBT-abr', required : get_option('bluez5-codec-ldac'))
|
|
summary({'LDAC ABR': ldac_abr_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
aptx_dep = dependency('libfreeaptx', required : get_option('bluez5-codec-aptx'))
|
|
summary({'aptX': aptx_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
fdk_aac_dep = dependency('fdk-aac', required : get_option('bluez5-codec-aac'))
|
|
summary({'AAC': fdk_aac_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
lc3plus_dep = dependency('lc3plus', required : false)
|
|
if not lc3plus_dep.found()
|
|
lc3plus_lc3plus_h_dep = cc.find_library('LC3plus', has_headers: ['lc3plus.h'], required : get_option('bluez5-codec-lc3plus'))
|
|
if lc3plus_lc3plus_h_dep.found()
|
|
lc3plus_dep = declare_dependency(compile_args : '-DHAVE_LC3PLUS_H', dependencies : [ lc3plus_lc3plus_h_dep ])
|
|
endif
|
|
endif
|
|
summary({'LC3plus': lc3plus_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
if get_option('bluez5-codec-opus').enabled() and not opus_dep.found()
|
|
error('bluez5-codec-opus enabled, but opus dependency not found')
|
|
endif
|
|
summary({'Opus': opus_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
lc3_dep = dependency('lc3', required : get_option('bluez5-codec-lc3'))
|
|
summary({'LC3': lc3_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs')
|
|
if get_option('bluez5-backend-hsp-native').allowed() or get_option('bluez5-backend-hfp-native').allowed()
|
|
mm_dep = dependency('ModemManager', version : '>= 1.10.0', required : get_option('bluez5-backend-native-mm'))
|
|
summary({'ModemManager': mm_dep.found()}, bool_yn: true, section: 'Bluetooth backends')
|
|
endif
|
|
cdata.set('HAVE_LC3', get_option('bluez5-codec-lc3').allowed() and lc3_dep.found())
|
|
endif
|
|
jack_dep = dependency('jack', version : '>= 1.9.10', required: get_option('jack'))
|
|
summary({'JACK2': jack_dep.found()}, bool_yn: true, section: 'Backend')
|
|
|
|
have_vulkan = false
|
|
vulkan_dep = dependency('vulkan', version : '>= 1.2.170', required: get_option('vulkan'))
|
|
if vulkan_dep.found()
|
|
have_vulkan = cc.has_header('vulkan/vulkan.h', dependencies : vulkan_dep)
|
|
assert((not get_option('vulkan').enabled()) or have_vulkan, 'Vulkan headers are missing')
|
|
endif
|
|
summary({'Vulkan': have_vulkan}, bool_yn: true, section: 'Misc dependencies')
|
|
|
|
libcamera_dep = dependency('libcamera', version: '>= 0.2.0', required: get_option('libcamera'))
|
|
summary({'libcamera': libcamera_dep.found()}, bool_yn: true, section: 'Backend')
|
|
|
|
compress_offload_option = get_option('compress-offload')
|
|
summary({'Compress-Offload': compress_offload_option.allowed()}, bool_yn: true, section: 'Backend')
|
|
cdata.set('HAVE_ALSA_COMPRESS_OFFLOAD', compress_offload_option.allowed())
|
|
|
|
# common dependencies
|
|
libudev_dep = dependency('libudev', required: alsa_dep.found() or get_option('udev').enabled() or get_option('v4l2').enabled())
|
|
summary({'Udev': libudev_dep.found()}, bool_yn: true, section: 'Backend')
|
|
|
|
subdir('plugins')
|
|
endif
|
|
|
|
subdir('tools')
|
|
subdir('tests')
|
|
subdir('examples')
|