2022-11-14 01:48:27 +02:00
|
|
|
gnome = import('gnome')
|
|
|
|
|
|
|
|
|
|
bluez5_deps = [ mathlib, dbus_dep, glib2_dep, sbc_dep, bluez_dep, gio_dep, gio_unix_dep ]
|
2021-03-10 15:36:27 -03:00
|
|
|
foreach dep: bluez5_deps
|
|
|
|
|
if not dep.found()
|
|
|
|
|
subdir_done()
|
|
|
|
|
endif
|
|
|
|
|
endforeach
|
|
|
|
|
|
2022-02-03 18:52:54 +01:00
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_NATIVE',
|
2022-02-03 19:14:34 +01:00
|
|
|
get_option('bluez5-backend-hsp-native').allowed() or
|
|
|
|
|
get_option('bluez5-backend-hfp-native').allowed())
|
|
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_HSP_NATIVE', get_option('bluez5-backend-hsp-native').allowed())
|
|
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_HFP_NATIVE', get_option('bluez5-backend-hfp-native').allowed())
|
2022-09-06 12:13:14 +02:00
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_NATIVE_MM', get_option('bluez5-backend-native-mm').allowed())
|
2022-02-03 19:14:34 +01:00
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_OFONO', get_option('bluez5-backend-ofono').allowed())
|
|
|
|
|
cdata.set('HAVE_BLUEZ_5_BACKEND_HSPHFPD', get_option('bluez5-backend-hsphfpd').allowed())
|
2022-02-03 18:52:54 +01:00
|
|
|
cdata.set('HAVE_BLUEZ_5_HCI', dependency('bluez', version: '< 6', required: false).found())
|
2022-01-20 22:39:51 +02:00
|
|
|
|
2021-09-20 08:59:10 +10:00
|
|
|
bluez5_sources = [
|
|
|
|
|
'plugin.c',
|
|
|
|
|
'codec-loader.c',
|
2022-06-15 17:24:41 +02:00
|
|
|
'media-codecs.c',
|
|
|
|
|
'media-sink.c',
|
|
|
|
|
'media-source.c',
|
2021-09-20 08:59:10 +10:00
|
|
|
'sco-sink.c',
|
|
|
|
|
'sco-source.c',
|
|
|
|
|
'sco-io.c',
|
|
|
|
|
'quirks.c',
|
2021-10-09 19:11:51 +03:00
|
|
|
'player.c',
|
2021-09-20 08:59:10 +10:00
|
|
|
'bluez5-device.c',
|
2022-01-20 22:39:51 +02:00
|
|
|
'bluez5-dbus.c',
|
2022-10-30 16:46:38 +02:00
|
|
|
'hci.c',
|
2022-10-30 16:47:31 +02:00
|
|
|
'dbus-monitor.c',
|
2022-10-30 16:51:21 +02:00
|
|
|
'midi-enum.c',
|
2022-11-01 23:34:12 +02:00
|
|
|
'midi-parser.c',
|
2022-10-30 16:54:57 +02:00
|
|
|
'midi-node.c',
|
2022-11-05 22:24:22 +02:00
|
|
|
'midi-server.c',
|
2021-09-20 08:59:10 +10:00
|
|
|
]
|
2020-07-22 14:50:38 +02:00
|
|
|
|
2022-11-14 01:48:27 +02:00
|
|
|
bluez5_interface_src = gnome.gdbus_codegen('bluez5-interface-gen',
|
|
|
|
|
sources: 'org.bluez.xml',
|
|
|
|
|
interface_prefix : 'org.bluez.',
|
|
|
|
|
object_manager: true,
|
|
|
|
|
namespace : 'Bluez5',
|
|
|
|
|
annotations : [
|
|
|
|
|
['org.bluez.GattCharacteristic1.AcquireNotify()', 'org.gtk.GDBus.C.UnixFD', 'true'],
|
|
|
|
|
['org.bluez.GattCharacteristic1.AcquireWrite()', 'org.gtk.GDBus.C.UnixFD', 'true'],
|
|
|
|
|
]
|
|
|
|
|
)
|
|
|
|
|
bluez5_sources += [ bluez5_interface_src ]
|
|
|
|
|
|
2021-09-18 12:32:29 +03:00
|
|
|
bluez5_data = ['bluez-hardware.conf']
|
|
|
|
|
|
|
|
|
|
install_data(bluez5_data, install_dir : spa_datadir / 'bluez5')
|
|
|
|
|
|
2022-02-03 19:14:34 +01:00
|
|
|
if get_option('bluez5-backend-hsp-native').allowed() or get_option('bluez5-backend-hfp-native').allowed()
|
2021-06-13 21:52:41 +03:00
|
|
|
if libusb_dep.found()
|
|
|
|
|
bluez5_deps += libusb_dep
|
|
|
|
|
endif
|
2022-09-06 12:13:14 +02:00
|
|
|
if mm_dep.found()
|
|
|
|
|
bluez5_deps += mm_dep
|
2022-09-16 14:15:52 +02:00
|
|
|
bluez5_sources += ['modemmanager.c']
|
2022-09-06 12:13:14 +02:00
|
|
|
endif
|
2022-09-19 15:00:24 +02:00
|
|
|
bluez5_sources += ['backend-native.c', 'upower.c']
|
2020-07-22 14:50:38 +02:00
|
|
|
endif
|
|
|
|
|
|
2022-02-03 19:14:34 +01:00
|
|
|
if get_option('bluez5-backend-ofono').allowed()
|
2020-07-22 14:50:38 +02:00
|
|
|
bluez5_sources += ['backend-ofono.c']
|
|
|
|
|
endif
|
2018-01-11 10:23:37 +01:00
|
|
|
|
2022-02-03 19:14:34 +01:00
|
|
|
if get_option('bluez5-backend-hsphfpd').allowed()
|
2020-07-22 17:40:32 +02:00
|
|
|
bluez5_sources += ['backend-hsphfpd.c']
|
|
|
|
|
endif
|
|
|
|
|
|
2018-01-11 10:23:37 +01:00
|
|
|
bluez5lib = shared_library('spa-bluez5',
|
2021-09-20 08:59:10 +10:00
|
|
|
bluez5_sources,
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
|
|
|
|
dependencies : [ spa_dep, bluez5_deps ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
|
|
|
|
|
codec_args = [ '-DCODEC_PLUGIN' ]
|
|
|
|
|
|
2021-09-06 17:25:58 +03:00
|
|
|
bluez_codec_sbc = shared_library('spa-codec-bluez5-sbc',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-sbc.c', 'media-codecs.c' ],
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
2021-09-20 08:59:10 +10:00
|
|
|
c_args : codec_args,
|
2021-12-28 16:04:06 +01:00
|
|
|
dependencies : [ spa_dep, sbc_dep ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
|
2021-09-06 17:25:58 +03:00
|
|
|
bluez_codec_faststream = shared_library('spa-codec-bluez5-faststream',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-faststream.c', 'media-codecs.c' ],
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
2021-09-20 08:59:10 +10:00
|
|
|
c_args : codec_args,
|
2021-12-28 16:04:06 +01:00
|
|
|
dependencies : [ spa_dep, sbc_dep ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
|
|
|
|
|
if fdk_aac_dep.found()
|
2021-09-06 17:25:58 +03:00
|
|
|
bluez_codec_aac = shared_library('spa-codec-bluez5-aac',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-aac.c', 'media-codecs.c' ],
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
2021-09-20 08:59:10 +10:00
|
|
|
c_args : codec_args,
|
2021-12-28 16:04:06 +01:00
|
|
|
dependencies : [ spa_dep, fdk_aac_dep ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
if aptx_dep.found()
|
2021-09-20 10:23:17 +10:00
|
|
|
bluez_codec_aptx = shared_library('spa-codec-bluez5-aptx',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-aptx.c', 'media-codecs.c' ],
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
2021-09-20 08:59:10 +10:00
|
|
|
c_args : codec_args,
|
2021-12-28 16:04:06 +01:00
|
|
|
dependencies : [ spa_dep, aptx_dep, sbc_dep ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
endif
|
|
|
|
|
|
|
|
|
|
if ldac_dep.found()
|
|
|
|
|
ldac_args = codec_args
|
|
|
|
|
ldac_dep = [ ldac_dep ]
|
|
|
|
|
if ldac_abr_dep.found()
|
|
|
|
|
ldac_args += [ '-DENABLE_LDAC_ABR' ]
|
|
|
|
|
ldac_dep += ldac_abr_dep
|
|
|
|
|
endif
|
2021-09-06 17:25:58 +03:00
|
|
|
bluez_codec_ldac = shared_library('spa-codec-bluez5-ldac',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-ldac.c', 'media-codecs.c' ],
|
2021-12-28 16:04:06 +01:00
|
|
|
include_directories : [ configinc ],
|
2021-09-20 08:59:10 +10:00
|
|
|
c_args : ldac_args,
|
2021-12-28 16:04:06 +01:00
|
|
|
dependencies : [ spa_dep, ldac_dep ],
|
2021-09-20 08:59:10 +10:00
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
2021-09-01 00:33:43 +03:00
|
|
|
endif
|
2022-04-30 21:03:59 +03:00
|
|
|
|
2022-05-02 23:03:48 +03:00
|
|
|
if get_option('bluez5-codec-lc3plus').allowed() and lc3plus_dep.found()
|
2022-04-30 21:03:59 +03:00
|
|
|
bluez_codec_lc3plus = shared_library('spa-codec-bluez5-lc3plus',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-lc3plus.c', 'media-codecs.c' ],
|
2022-04-30 21:03:59 +03:00
|
|
|
include_directories : [ configinc ],
|
2022-06-10 17:33:10 +02:00
|
|
|
c_args : codec_args,
|
2022-04-30 21:03:59 +03:00
|
|
|
dependencies : [ spa_dep, lc3plus_dep, mathlib ],
|
|
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
|
|
|
|
endif
|
2022-05-21 14:40:26 +03:00
|
|
|
|
|
|
|
|
if get_option('bluez5-codec-opus').allowed() and opus_dep.found()
|
|
|
|
|
opus_args = codec_args
|
|
|
|
|
opus_dep = [ opus_dep ]
|
|
|
|
|
bluez_codec_opus = shared_library('spa-codec-bluez5-opus',
|
2022-06-15 17:24:41 +02:00
|
|
|
[ 'a2dp-codec-opus.c', 'media-codecs.c' ],
|
2022-05-21 14:40:26 +03:00
|
|
|
include_directories : [ configinc ],
|
|
|
|
|
c_args : opus_args,
|
|
|
|
|
dependencies : [ spa_dep, opus_dep, mathlib ],
|
|
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
|
|
|
|
endif
|
2022-06-16 09:56:52 +02:00
|
|
|
|
|
|
|
|
if get_option('bluez5-codec-lc3').allowed() and lc3_dep.found()
|
|
|
|
|
bluez_codec_lc3 = shared_library('spa-codec-bluez5-lc3',
|
|
|
|
|
[ 'bap-codec-lc3.c', 'media-codecs.c' ],
|
|
|
|
|
include_directories : [ configinc ],
|
|
|
|
|
c_args : codec_args,
|
|
|
|
|
dependencies : [ spa_dep, lc3_dep, mathlib ],
|
|
|
|
|
install : true,
|
|
|
|
|
install_dir : spa_plugindir / 'bluez5')
|
|
|
|
|
endif
|
2022-11-06 18:13:14 +02:00
|
|
|
|
|
|
|
|
test_apps = [
|
|
|
|
|
'test-midi',
|
|
|
|
|
]
|
|
|
|
|
bluez5_test_lib = static_library('bluez5_test_lib',
|
|
|
|
|
[ 'midi-parser.c' ],
|
|
|
|
|
include_directories : [ configinc ],
|
2022-11-14 01:48:27 +02:00
|
|
|
dependencies : [ spa_dep, bluez5_deps ],
|
2022-11-06 18:13:14 +02:00
|
|
|
install : false
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
foreach a : test_apps
|
|
|
|
|
test(a,
|
|
|
|
|
executable(a, a + '.c',
|
|
|
|
|
dependencies : [ spa_dep, dl_lib, pthread_lib, mathlib, bluez5_deps ],
|
|
|
|
|
include_directories : [ configinc ],
|
|
|
|
|
link_with : [ bluez5_test_lib ],
|
|
|
|
|
install_rpath : spa_plugindir / 'bluez5',
|
|
|
|
|
install : installed_tests_enabled,
|
|
|
|
|
install_dir : installed_tests_execdir / 'bluez5'),
|
|
|
|
|
env : [
|
|
|
|
|
'SPA_PLUGIN_DIR=@0@'.format(spa_dep.get_variable('plugindir')),
|
|
|
|
|
])
|
|
|
|
|
|
|
|
|
|
if installed_tests_enabled
|
|
|
|
|
test_conf = configuration_data()
|
|
|
|
|
test_conf.set('exec', installed_tests_execdir / 'bluez5' / a)
|
|
|
|
|
configure_file(
|
|
|
|
|
input: installed_tests_template,
|
|
|
|
|
output: a + '.test',
|
|
|
|
|
install_dir: installed_tests_metadir / 'bluez5',
|
|
|
|
|
configuration: test_conf
|
|
|
|
|
)
|
|
|
|
|
endif
|
|
|
|
|
endforeach
|