diff options
Diffstat (limited to '')
-rw-r--r-- | spa/meson.build | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/spa/meson.build b/spa/meson.build new file mode 100644 index 0000000..995fbf8 --- /dev/null +++ b/spa/meson.build @@ -0,0 +1,101 @@ +#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'), + ], + 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 = '/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_deps_found = bluez_dep.found() and gio_dep.found() and gio_unix_dep.found() + summary({'Bluetooth audio': bluez_deps_found}, bool_yn: true, section: 'Backend') + if bluez_deps_found + sbc_dep = dependency('sbc', required: get_option('bluez5')) + summary({'SBC': sbc_dep.found()}, bool_yn: true, section: 'Bluetooth audio codecs') + 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') + opus_dep = dependency('opus', required : get_option('bluez5-codec-opus')) + 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 + endif + jack_dep = dependency('jack', version : '>= 1.9.10', required: get_option('jack')) + summary({'JACK2': jack_dep.found()}, bool_yn: true, section: 'Backend') + vulkan_dep = dependency('vulkan', disabler : true, version : '>= 1.1.69', required: get_option('vulkan')) + vulkan_headers = cc.has_header('vulkan/vulkan.h', dependencies : vulkan_dep) + #summary({'Vulkan': vulkan_headers}, bool_yn: true, section: 'Misc dependencies') + + libcamera_dep = dependency('libcamera', required: get_option('libcamera')) + summary({'libcamera': libcamera_dep.found()}, bool_yn: true, section: 'Backend') + + tinycompress_dep = cc.find_library('tinycompress', has_headers: ['tinycompress/tinycompress.h' ], required: get_option('compress-offload')) + summary({'Compress-Offload': tinycompress_dep.found()}, bool_yn: true, section: 'Backend') + cdata.set('HAVE_ALSA_COMPRESS_OFFLOAD', tinycompress_dep.found()) + + # 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') +if get_option('examples').allowed() + subdir('examples') +endif |