153a5a1b3Sopenharmony_ciif host_machine.system() != 'windows'
253a5a1b3Sopenharmony_ci  subdir('rtp')
353a5a1b3Sopenharmony_ciendif
453a5a1b3Sopenharmony_ci
553a5a1b3Sopenharmony_ci# module name, sources, [headers, extra flags, extra deps, extra libs]
653a5a1b3Sopenharmony_ciall_modules = [
753a5a1b3Sopenharmony_ci  [ 'module-allow-passthrough', 'module-allow-passthrough.c' ],
853a5a1b3Sopenharmony_ci  [ 'module-always-sink', 'module-always-sink.c' ],
953a5a1b3Sopenharmony_ci  [ 'module-always-source', 'module-always-source.c' ],
1053a5a1b3Sopenharmony_ci  [ 'module-augment-properties', 'module-augment-properties.c' ],
1153a5a1b3Sopenharmony_ci#  [ 'module-bonjour-publish', 'macosx/module-bonjour-publish.c' ],
1253a5a1b3Sopenharmony_ci  [ 'module-card-restore', 'module-card-restore.c' ],
1353a5a1b3Sopenharmony_ci  [ 'module-cli', 'module-cli.c', [], [], [], libcli ],
1453a5a1b3Sopenharmony_ci  [ 'module-cli-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_TCP_SOCKETS'], [], libprotocol_cli ],
1553a5a1b3Sopenharmony_ci  [ 'module-cli-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_CLI', '-DUSE_UNIX_SOCKETS'], [], libprotocol_cli ],
1653a5a1b3Sopenharmony_ci  [ 'module-combine', 'module-combine.c' ],
1753a5a1b3Sopenharmony_ci  [ 'module-combine-sink', 'module-combine-sink.c' ],
1853a5a1b3Sopenharmony_ci#  [ 'module-coreaudio-detect', 'macosx/module-coreaudio-detect.c' ],
1953a5a1b3Sopenharmony_ci#  [ 'module-coreaudio-device', 'macosx/module-coreaudio-device.c' ],
2053a5a1b3Sopenharmony_ci  [ 'module-default-device-restore', 'module-default-device-restore.c', [], [], [], libprotocol_native ],
2153a5a1b3Sopenharmony_ci  [ 'module-detect', 'module-detect.c' ],
2253a5a1b3Sopenharmony_ci  [ 'module-device-manager', 'module-device-manager.c', [], [], [], libprotocol_native ],
2353a5a1b3Sopenharmony_ci  [ 'module-device-restore', 'module-device-restore.c', [], [], [dbus_dep], libprotocol_native ],
2453a5a1b3Sopenharmony_ci#  [ 'module-esound-compat-spawnfd', 'module-esound-compat-spawnfd.c' ],
2553a5a1b3Sopenharmony_ci#  [ 'module-esound-compat-spawnpid', 'module-esound-compat-spawnpid.c' ],
2653a5a1b3Sopenharmony_ci#  [ 'module-esound-protocol-tcp', 'module-protocol-stub.c' ],
2753a5a1b3Sopenharmony_ci#  [ 'module-esound-protocol-unix', 'module-protocol-stub.c' ],
2853a5a1b3Sopenharmony_ci#  [ 'module-esound-sink', 'module-esound-sink.c' ],
2953a5a1b3Sopenharmony_ci  [ 'module-filter-apply', 'module-filter-apply.c' ],
3053a5a1b3Sopenharmony_ci  [ 'module-filter-heuristics', 'module-filter-heuristics.c' ],
3153a5a1b3Sopenharmony_ci  [ 'module-http-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_TCP_SOCKETS'], [], libprotocol_http ],
3253a5a1b3Sopenharmony_ci  [ 'module-http-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_HTTP', '-DUSE_UNIX_SOCKETS'], [], libprotocol_http ],
3353a5a1b3Sopenharmony_ci  [ 'module-intended-roles', 'module-intended-roles.c' ],
3453a5a1b3Sopenharmony_ci  [ 'module-ladspa-sink', 'module-ladspa-sink.c', 'ladspa.h', ['-DLADSPA_PATH=' + join_paths(libdir, 'ladspa') + ':/usr/local/lib/ladspa:/usr/lib/ladspa:/usr/local/lib64/ladspa:/usr/lib64/ladspa'], [dbus_dep, libm_dep, ltdl_dep] ],
3553a5a1b3Sopenharmony_ci  [ 'module-loopback', 'module-loopback.c' ],
3653a5a1b3Sopenharmony_ci  [ 'module-match', 'module-match.c' ],
3753a5a1b3Sopenharmony_ci  [ 'module-native-protocol-fd', 'module-native-protocol-fd.c', [], [], [], libprotocol_native ],
3853a5a1b3Sopenharmony_ci  [ 'module-native-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_NATIVE', '-DUSE_TCP_SOCKETS'], [], libprotocol_native ],
3953a5a1b3Sopenharmony_ci  [ 'module-native-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_NATIVE', '-DUSE_UNIX_SOCKETS'], [], libprotocol_native ],
4053a5a1b3Sopenharmony_ci  [ 'module-null-sink', 'module-null-sink.c' ],
4153a5a1b3Sopenharmony_ci  [ 'module-null-source', 'module-null-source.c' ],
4253a5a1b3Sopenharmony_ci  [ 'module-position-event-sounds', 'module-position-event-sounds.c' ],
4353a5a1b3Sopenharmony_ci  [ 'module-remap-sink', 'module-remap-sink.c' ],
4453a5a1b3Sopenharmony_ci  [ 'module-remap-source', 'module-remap-source.c' ],
4553a5a1b3Sopenharmony_ci  [ 'module-rescue-streams', 'module-rescue-streams.c' ],
4653a5a1b3Sopenharmony_ci  [ 'module-role-cork', ['module-role-cork.c', 'stream-interaction.c'], 'stream-interaction.h' ],
4753a5a1b3Sopenharmony_ci  [ 'module-role-ducking', ['module-role-ducking.c', 'stream-interaction.c'], 'stream-interaction.h' ],
4853a5a1b3Sopenharmony_ci  [ 'module-simple-protocol-tcp', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_TCP_SOCKETS'], [], libprotocol_simple ],
4953a5a1b3Sopenharmony_ci  [ 'module-simple-protocol-unix', 'module-protocol-stub.c', [], ['-DUSE_PROTOCOL_SIMPLE', '-DUSE_UNIX_SOCKETS'], [], libprotocol_simple ],
5053a5a1b3Sopenharmony_ci  [ 'module-sine', 'module-sine.c' ],
5153a5a1b3Sopenharmony_ci  [ 'module-sine-source', 'module-sine-source.c' ],
5253a5a1b3Sopenharmony_ci#  [ 'module-solaris', 'module-solaris.c' ],
5353a5a1b3Sopenharmony_ci  [ 'module-stream-restore', 'module-stream-restore.c', [], [], [dbus_dep], libprotocol_native ],
5453a5a1b3Sopenharmony_ci  [ 'module-suspend-on-idle', 'module-suspend-on-idle.c' ],
5553a5a1b3Sopenharmony_ci  [ 'module-switch-on-connect', 'module-switch-on-connect.c' ],
5653a5a1b3Sopenharmony_ci  [ 'module-switch-on-port-available', 'module-switch-on-port-available.c' ],
5753a5a1b3Sopenharmony_ci  [ 'module-tunnel-sink', ['module-tunnel.c', 'restart-module.c'], [], ['-DTUNNEL_SINK=1'], [x11_dep] ],
5853a5a1b3Sopenharmony_ci  [ 'module-tunnel-sink-new', ['module-tunnel-sink-new.c', 'restart-module.c'] ],
5953a5a1b3Sopenharmony_ci  [ 'module-tunnel-source', ['module-tunnel.c', 'restart-module.c'], [], [], [x11_dep] ],
6053a5a1b3Sopenharmony_ci  [ 'module-tunnel-source-new', ['module-tunnel-source-new.c', 'restart-module.c'] ],
6153a5a1b3Sopenharmony_ci  [ 'module-virtual-sink', 'module-virtual-sink.c' ],
6253a5a1b3Sopenharmony_ci  [ 'module-virtual-source', 'module-virtual-source.c' ],
6353a5a1b3Sopenharmony_ci  [ 'module-volume-restore', 'module-volume-restore.c' ],
6453a5a1b3Sopenharmony_ci]
6553a5a1b3Sopenharmony_ci
6653a5a1b3Sopenharmony_ciif host_machine.system() == 'windows'
6753a5a1b3Sopenharmony_ci  winmm_dep = meson.get_compiler('c').find_library('winmm')
6853a5a1b3Sopenharmony_ci  ksuser_dep = meson.get_compiler('c').find_library('ksuser')
6953a5a1b3Sopenharmony_ci  all_modules += [
7053a5a1b3Sopenharmony_ci    [ 'module-waveout', 'module-waveout.c', [], [], [winmm_dep, ksuser_dep] ],
7153a5a1b3Sopenharmony_ci  ]
7253a5a1b3Sopenharmony_ciendif
7353a5a1b3Sopenharmony_ci
7453a5a1b3Sopenharmony_ciif host_machine.system() != 'windows'
7553a5a1b3Sopenharmony_ci  all_modules += [
7653a5a1b3Sopenharmony_ci    [ 'module-rtp-recv', 'rtp/module-rtp-recv.c', [], [], [], librtp ],
7753a5a1b3Sopenharmony_ci    [ 'module-rtp-send', 'rtp/module-rtp-send.c' , [], [], [], librtp ],
7853a5a1b3Sopenharmony_ci  ]
7953a5a1b3Sopenharmony_ciendif
8053a5a1b3Sopenharmony_ci
8153a5a1b3Sopenharmony_ci# Modules enabled by headers
8253a5a1b3Sopenharmony_ci
8353a5a1b3Sopenharmony_ciif cc.has_header('linux/input.h')
8453a5a1b3Sopenharmony_ci  all_modules += [
8553a5a1b3Sopenharmony_ci    [ 'module-mmkbd-evdev', 'module-mmkbd-evdev.c' ],
8653a5a1b3Sopenharmony_ci  ]
8753a5a1b3Sopenharmony_ciendif
8853a5a1b3Sopenharmony_ci
8953a5a1b3Sopenharmony_ciif cdata.has('HAVE_OSS_OUTPUT')
9053a5a1b3Sopenharmony_ci  subdir('oss')
9153a5a1b3Sopenharmony_ci  all_modules += [
9253a5a1b3Sopenharmony_ci    [ 'module-oss', 'oss/module-oss.c', [], [], [], liboss_util ],
9353a5a1b3Sopenharmony_ci  ]
9453a5a1b3Sopenharmony_ciendif
9553a5a1b3Sopenharmony_ci
9653a5a1b3Sopenharmony_ciif cc.has_function('mkfifo')
9753a5a1b3Sopenharmony_ci  all_modules += [
9853a5a1b3Sopenharmony_ci    [ 'module-pipe-sink', 'module-pipe-sink.c' ],
9953a5a1b3Sopenharmony_ci    [ 'module-pipe-source', 'module-pipe-source.c' ]
10053a5a1b3Sopenharmony_ci  ]
10153a5a1b3Sopenharmony_ciendif
10253a5a1b3Sopenharmony_ci
10353a5a1b3Sopenharmony_ci# Modules enabled by dependencies
10453a5a1b3Sopenharmony_ci
10553a5a1b3Sopenharmony_ciif alsa_dep.found()
10653a5a1b3Sopenharmony_ci  subdir('alsa')
10753a5a1b3Sopenharmony_ci  all_modules += [
10853a5a1b3Sopenharmony_ci    [ 'module-alsa-card', 'alsa/module-alsa-card.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
10953a5a1b3Sopenharmony_ci    [ 'module-alsa-sink', 'alsa/module-alsa-sink.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
11053a5a1b3Sopenharmony_ci    [ 'module-alsa-source', 'alsa/module-alsa-source.c', [], [], [alsa_dep, libm_dep], libalsa_util ],
11153a5a1b3Sopenharmony_ci  ]
11253a5a1b3Sopenharmony_ciendif
11353a5a1b3Sopenharmony_ci
11453a5a1b3Sopenharmony_ciif avahi_dep.found()
11553a5a1b3Sopenharmony_ci  all_modules += [
11653a5a1b3Sopenharmony_ci    [ 'module-zeroconf-discover', 'module-zeroconf-discover.c', [], [], [avahi_dep], libavahi_wrap ],
11753a5a1b3Sopenharmony_ci    [ 'module-zeroconf-publish', 'module-zeroconf-publish.c', [], [], [avahi_dep, dbus_dep], [libavahi_wrap, libprotocol_native] ],
11853a5a1b3Sopenharmony_ci  ]
11953a5a1b3Sopenharmony_ciendif
12053a5a1b3Sopenharmony_ci
12153a5a1b3Sopenharmony_ciif cdata.has('HAVE_BLUEZ_5')
12253a5a1b3Sopenharmony_ci  subdir('bluetooth')
12353a5a1b3Sopenharmony_ci  all_modules += [
12453a5a1b3Sopenharmony_ci    [ 'module-bluetooth-discover', 'bluetooth/module-bluetooth-discover.c' ],
12553a5a1b3Sopenharmony_ci    [ 'module-bluetooth-policy', 'bluetooth/module-bluetooth-policy.c', [], [], [dbus_dep] ],
12653a5a1b3Sopenharmony_ci    [ 'module-bluez5-device', 'bluetooth/module-bluez5-device.c', [], [], [], libbluez5_util ],
12753a5a1b3Sopenharmony_ci    [ 'module-bluez5-discover', 'bluetooth/module-bluez5-discover.c', [], [], [dbus_dep], libbluez5_util ],
12853a5a1b3Sopenharmony_ci  ]
12953a5a1b3Sopenharmony_ciendif
13053a5a1b3Sopenharmony_ci
13153a5a1b3Sopenharmony_ciif dbus_dep.found()
13253a5a1b3Sopenharmony_ci  all_modules += [
13353a5a1b3Sopenharmony_ci    [ 'module-console-kit', 'module-console-kit.c', [], [], [dbus_dep] ],
13453a5a1b3Sopenharmony_ci    [ 'module-dbus-protocol',
13553a5a1b3Sopenharmony_ci      [ 'dbus/iface-card.c', 'dbus/iface-card.h',
13653a5a1b3Sopenharmony_ci	'dbus/iface-card-profile.c', 'dbus/iface-card-profile.h',
13753a5a1b3Sopenharmony_ci	'dbus/iface-client.c', 'dbus/iface-client.h',
13853a5a1b3Sopenharmony_ci	'dbus/iface-core.c', 'dbus/iface-core.h',
13953a5a1b3Sopenharmony_ci	'dbus/iface-device.c', 'dbus/iface-device.h',
14053a5a1b3Sopenharmony_ci	'dbus/iface-device-port.c', 'dbus/iface-device-port.h',
14153a5a1b3Sopenharmony_ci	'dbus/iface-memstats.c', 'dbus/iface-memstats.h',
14253a5a1b3Sopenharmony_ci	'dbus/iface-module.c', 'dbus/iface-module.h',
14353a5a1b3Sopenharmony_ci	'dbus/iface-sample.c', 'dbus/iface-sample.h',
14453a5a1b3Sopenharmony_ci	'dbus/iface-stream.c', 'dbus/iface-stream.h',
14553a5a1b3Sopenharmony_ci	'dbus/module-dbus-protocol.c',
14653a5a1b3Sopenharmony_ci      ],
14753a5a1b3Sopenharmony_ci      [], [], [dbus_dep] ],
14853a5a1b3Sopenharmony_ci    [ 'module-rygel-media-server', 'module-rygel-media-server.c', [], [], [dbus_dep], libprotocol_http ],
14953a5a1b3Sopenharmony_ci  ]
15053a5a1b3Sopenharmony_ciendif
15153a5a1b3Sopenharmony_ci
15253a5a1b3Sopenharmony_ciif fftw_dep.found()
15353a5a1b3Sopenharmony_ci  all_modules += [
15453a5a1b3Sopenharmony_ci    [ 'module-virtual-surround-sink', 'module-virtual-surround-sink.c', [], [], [fftw_dep, libm_dep] ],
15553a5a1b3Sopenharmony_ci  ]
15653a5a1b3Sopenharmony_ciendif
15753a5a1b3Sopenharmony_ci
15853a5a1b3Sopenharmony_ciif dbus_dep.found() and fftw_dep.found()
15953a5a1b3Sopenharmony_ci  all_modules += [
16053a5a1b3Sopenharmony_ci    [ 'module-equalizer-sink', 'module-equalizer-sink.c', [], [], [dbus_dep, fftw_dep, libm_dep] ],
16153a5a1b3Sopenharmony_ci  ]
16253a5a1b3Sopenharmony_ciendif
16353a5a1b3Sopenharmony_ci
16453a5a1b3Sopenharmony_ciif get_option('gsettings').enabled() and glib_dep.found() and gio_dep.found()
16553a5a1b3Sopenharmony_ci  subdir('gsettings')
16653a5a1b3Sopenharmony_ci  all_modules += [
16753a5a1b3Sopenharmony_ci    [ 'module-gsettings',
16853a5a1b3Sopenharmony_ci      [ 'gsettings/module-gsettings.c', 'stdin-util.c', 'stdin-util.h' ],
16953a5a1b3Sopenharmony_ci      [], ['-DPA_GSETTINGS_HELPER="' + join_paths(pulselibexecdir, 'gsettings-helper') + '"'] ]
17053a5a1b3Sopenharmony_ci  ]
17153a5a1b3Sopenharmony_ciendif
17253a5a1b3Sopenharmony_ci
17353a5a1b3Sopenharmony_ciif jack_dep.found()
17453a5a1b3Sopenharmony_ci  all_modules += [
17553a5a1b3Sopenharmony_ci    [ 'module-jack-sink', 'jack/module-jack-sink.c', [], [], [jack_dep] ],
17653a5a1b3Sopenharmony_ci    [ 'module-jack-source', 'jack/module-jack-source.c', [], [], [jack_dep] ],
17753a5a1b3Sopenharmony_ci  ]
17853a5a1b3Sopenharmony_ci  if dbus_dep.found()
17953a5a1b3Sopenharmony_ci    all_modules += [
18053a5a1b3Sopenharmony_ci      [ 'module-jackdbus-detect', 'jack/module-jackdbus-detect.c', [], [], [dbus_dep] ],
18153a5a1b3Sopenharmony_ci    ]
18253a5a1b3Sopenharmony_ci  endif
18353a5a1b3Sopenharmony_ciendif
18453a5a1b3Sopenharmony_ci
18553a5a1b3Sopenharmony_ciif lirc_dep.found()
18653a5a1b3Sopenharmony_ci  all_modules += [
18753a5a1b3Sopenharmony_ci    [ 'module-lirc', 'module-lirc.c', [], [], [lirc_dep] ],
18853a5a1b3Sopenharmony_ci  ]
18953a5a1b3Sopenharmony_ciendif
19053a5a1b3Sopenharmony_ci
19153a5a1b3Sopenharmony_ciif openssl_dep.found()
19253a5a1b3Sopenharmony_ci  if host_machine.system() != 'windows'
19353a5a1b3Sopenharmony_ci    subdir('raop')
19453a5a1b3Sopenharmony_ci    all_modules += [
19553a5a1b3Sopenharmony_ci      [ 'module-raop-sink', 'raop/module-raop-sink.c', [], [], [], libraop ],
19653a5a1b3Sopenharmony_ci    ]
19753a5a1b3Sopenharmony_ci  endif
19853a5a1b3Sopenharmony_ci
19953a5a1b3Sopenharmony_ci  if avahi_dep.found()
20053a5a1b3Sopenharmony_ci    all_modules += [
20153a5a1b3Sopenharmony_ci      [ 'module-raop-discover', 'raop/module-raop-discover.c', [], [], [avahi_dep], libavahi_wrap ],
20253a5a1b3Sopenharmony_ci    ]
20353a5a1b3Sopenharmony_ci  endif
20453a5a1b3Sopenharmony_ciendif
20553a5a1b3Sopenharmony_ci
20653a5a1b3Sopenharmony_ciif libsystemd_dep.found() or libelogind_dep.found()
20753a5a1b3Sopenharmony_ci  all_modules += [
20853a5a1b3Sopenharmony_ci    [ 'module-systemd-login', 'module-systemd-login.c', [], [], [libsystemd_dep, libelogind_dep] ],
20953a5a1b3Sopenharmony_ci  ]
21053a5a1b3Sopenharmony_ciendif
21153a5a1b3Sopenharmony_ci
21253a5a1b3Sopenharmony_ciif udev_dep.found()
21353a5a1b3Sopenharmony_ci  all_modules += [ [ 'module-udev-detect', 'module-udev-detect.c', [], [], [udev_dep] ] ]
21453a5a1b3Sopenharmony_ci  if get_option('hal-compat')
21553a5a1b3Sopenharmony_ci    all_modules += [ [ 'module-hal-detect', 'module-hal-detect-compat.c' ] ]
21653a5a1b3Sopenharmony_ci  endif
21753a5a1b3Sopenharmony_ciendif
21853a5a1b3Sopenharmony_ci
21953a5a1b3Sopenharmony_ciif host_machine.system() == 'freebsd'
22053a5a1b3Sopenharmony_ci  all_modules += [ [ 'module-devd-detect', 'module-devd-detect.c', [], [], [] ] ]
22153a5a1b3Sopenharmony_ciendif
22253a5a1b3Sopenharmony_ci
22353a5a1b3Sopenharmony_ciif x11_dep.found()
22453a5a1b3Sopenharmony_ci  all_modules += [
22553a5a1b3Sopenharmony_ci    [ 'module-x11-bell', 'x11/module-x11-bell.c', [], [], [x11_dep] ],
22653a5a1b3Sopenharmony_ci    [ 'module-x11-cork-request', 'x11/module-x11-cork-request.c', [], [], [x11_dep, xtst_dep] ],
22753a5a1b3Sopenharmony_ci    [ 'module-x11-publish', 'x11/module-x11-publish.c', [], [], [x11_dep], libprotocol_native ],
22853a5a1b3Sopenharmony_ci    [ 'module-x11-xsmp', 'x11/module-x11-xsmp.c', [], [], [x11_dep, ice_dep, sm_dep] ],
22953a5a1b3Sopenharmony_ci  ]
23053a5a1b3Sopenharmony_ciendif
23153a5a1b3Sopenharmony_ci
23253a5a1b3Sopenharmony_ci# Module echo-cancel is quite modular itself and requires a section of its own
23353a5a1b3Sopenharmony_ci
23453a5a1b3Sopenharmony_cimodule_echo_cancel_sources = [
23553a5a1b3Sopenharmony_ci  'echo-cancel/echo-cancel.h',
23653a5a1b3Sopenharmony_ci  'echo-cancel/module-echo-cancel.c',
23753a5a1b3Sopenharmony_ci  'echo-cancel/null.c',
23853a5a1b3Sopenharmony_ci]
23953a5a1b3Sopenharmony_cimodule_echo_cancel_orc_sources = []
24053a5a1b3Sopenharmony_cimodule_echo_cancel_flags = []
24153a5a1b3Sopenharmony_cimodule_echo_cancel_deps = []
24253a5a1b3Sopenharmony_cimodule_echo_cancel_libs = []
24353a5a1b3Sopenharmony_ci
24453a5a1b3Sopenharmony_ciif get_option('adrian-aec')
24553a5a1b3Sopenharmony_ci  module_echo_cancel_sources += [
24653a5a1b3Sopenharmony_ci    'echo-cancel/adrian.c', 'echo-cancel/adrian.h',
24753a5a1b3Sopenharmony_ci    'echo-cancel/adrian-aec.c', 'echo-cancel/adrian-aec.h',
24853a5a1b3Sopenharmony_ci  ]
24953a5a1b3Sopenharmony_ci  module_echo_cancel_flags += ['-DHAVE_ADRIAN_EC=1']
25053a5a1b3Sopenharmony_ci  module_echo_cancel_deps += [libm_dep]
25153a5a1b3Sopenharmony_ci
25253a5a1b3Sopenharmony_ci  if have_orcc
25353a5a1b3Sopenharmony_ci    orcsrc = 'adrian-aec'
25453a5a1b3Sopenharmony_ci    orc_h = custom_target(orcsrc + '-orc-gen.h',
25553a5a1b3Sopenharmony_ci      input : join_paths('echo-cancel', orcsrc + '.orc'),
25653a5a1b3Sopenharmony_ci      output : orcsrc + '-orc-gen.h',
25753a5a1b3Sopenharmony_ci      command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@']
25853a5a1b3Sopenharmony_ci    )
25953a5a1b3Sopenharmony_ci    orc_c = custom_target(orcsrc + '-orc-gen.c',
26053a5a1b3Sopenharmony_ci      input : join_paths('echo-cancel', orcsrc + '.orc'),
26153a5a1b3Sopenharmony_ci      output : orcsrc + '-orc-gen.c',
26253a5a1b3Sopenharmony_ci      command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@']
26353a5a1b3Sopenharmony_ci    )
26453a5a1b3Sopenharmony_ci    module_echo_cancel_orc_sources += [orc_c, orc_h]
26553a5a1b3Sopenharmony_ci    module_echo_cancel_deps += [orc_dep]
26653a5a1b3Sopenharmony_ci  endif
26753a5a1b3Sopenharmony_ci
26853a5a1b3Sopenharmony_ciendif
26953a5a1b3Sopenharmony_ci
27053a5a1b3Sopenharmony_ciif speex_dep.found()
27153a5a1b3Sopenharmony_ci  module_echo_cancel_sources += ['echo-cancel/speex.c']
27253a5a1b3Sopenharmony_ci  module_echo_cancel_deps += [speex_dep]
27353a5a1b3Sopenharmony_ciendif
27453a5a1b3Sopenharmony_ci
27553a5a1b3Sopenharmony_ciif webrtc_dep.found()
27653a5a1b3Sopenharmony_ci  subdir('echo-cancel')
27753a5a1b3Sopenharmony_ci  module_echo_cancel_libs += [libwebrtc_util]
27853a5a1b3Sopenharmony_ciendif
27953a5a1b3Sopenharmony_ci
28053a5a1b3Sopenharmony_ciall_modules += [
28153a5a1b3Sopenharmony_ci  [ 'module-echo-cancel',
28253a5a1b3Sopenharmony_ci    module_echo_cancel_sources + module_echo_cancel_orc_sources,
28353a5a1b3Sopenharmony_ci    [],
28453a5a1b3Sopenharmony_ci    module_echo_cancel_flags,
28553a5a1b3Sopenharmony_ci    module_echo_cancel_deps,
28653a5a1b3Sopenharmony_ci    module_echo_cancel_libs,
28753a5a1b3Sopenharmony_ci  ]
28853a5a1b3Sopenharmony_ci]
28953a5a1b3Sopenharmony_ci
29053a5a1b3Sopenharmony_ci# Generate a shared module object for each modules
29153a5a1b3Sopenharmony_ci
29253a5a1b3Sopenharmony_ci# FIXME: Not all modules actually have a dep in modlibexecdir
29353a5a1b3Sopenharmony_ci# FIXME: meson doesn't support multiple RPATH arguments currently
29453a5a1b3Sopenharmony_cirpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir)
29553a5a1b3Sopenharmony_ci
29653a5a1b3Sopenharmony_ciforeach m : all_modules
29753a5a1b3Sopenharmony_ci  name = m[0]
29853a5a1b3Sopenharmony_ci  sources = m[1]
29953a5a1b3Sopenharmony_ci  headers = m.get(2, [])
30053a5a1b3Sopenharmony_ci  extra_flags = m.get(3, [])
30153a5a1b3Sopenharmony_ci  extra_deps = m.get(4, [])
30253a5a1b3Sopenharmony_ci  extra_libs = m.get(5, [])
30353a5a1b3Sopenharmony_ci
30453a5a1b3Sopenharmony_ci  mod = shared_module(name,
30553a5a1b3Sopenharmony_ci    sources,
30653a5a1b3Sopenharmony_ci    headers,
30753a5a1b3Sopenharmony_ci    include_directories : [configinc, topinc, include_directories('.')],
30853a5a1b3Sopenharmony_ci    c_args : [pa_c_args, server_c_args, '-DPA_MODULE_NAME=' + name.underscorify()] + extra_flags,
30953a5a1b3Sopenharmony_ci    install : true,
31053a5a1b3Sopenharmony_ci    install_rpath : rpath_dirs,
31153a5a1b3Sopenharmony_ci    install_dir : modlibexecdir,
31253a5a1b3Sopenharmony_ci    dependencies : [thread_dep, libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libintl_dep, platform_dep, platform_socket_dep] + extra_deps,
31353a5a1b3Sopenharmony_ci    link_args : [nodelete_link_args, '-Wl,--no-undefined' ],
31453a5a1b3Sopenharmony_ci    link_with : extra_libs,
31553a5a1b3Sopenharmony_ci    name_prefix : '',
31653a5a1b3Sopenharmony_ci    implicit_include_directories : false)
31753a5a1b3Sopenharmony_ciendforeach
318