153a5a1b3Sopenharmony_cilibpulsecore_sources = [ 253a5a1b3Sopenharmony_ci 'asyncmsgq.c', 353a5a1b3Sopenharmony_ci 'asyncq.c', 453a5a1b3Sopenharmony_ci 'auth-cookie.c', 553a5a1b3Sopenharmony_ci 'card.c', 653a5a1b3Sopenharmony_ci 'cli-command.c', 753a5a1b3Sopenharmony_ci 'cli-text.c', 853a5a1b3Sopenharmony_ci 'client.c', 953a5a1b3Sopenharmony_ci 'core-scache.c', 1053a5a1b3Sopenharmony_ci 'core-subscribe.c', 1153a5a1b3Sopenharmony_ci 'core.c', 1253a5a1b3Sopenharmony_ci 'cpu.c', 1353a5a1b3Sopenharmony_ci 'cpu-arm.c', 1453a5a1b3Sopenharmony_ci 'cpu-orc.c', 1553a5a1b3Sopenharmony_ci 'cpu-x86.c', 1653a5a1b3Sopenharmony_ci 'device-port.c', 1753a5a1b3Sopenharmony_ci 'database.c', 1853a5a1b3Sopenharmony_ci 'downmix.c', 1953a5a1b3Sopenharmony_ci 'ffmpeg/resample2.c', 2053a5a1b3Sopenharmony_ci 'filter/biquad.c', 2153a5a1b3Sopenharmony_ci 'filter/crossover.c', 2253a5a1b3Sopenharmony_ci 'filter/lfe-filter.c', 2353a5a1b3Sopenharmony_ci 'hook-list.c', 2453a5a1b3Sopenharmony_ci 'ltdl-helper.c', 2553a5a1b3Sopenharmony_ci 'message-handler.c', 2653a5a1b3Sopenharmony_ci 'mix.c', 2753a5a1b3Sopenharmony_ci 'modargs.c', 2853a5a1b3Sopenharmony_ci 'modinfo.c', 2953a5a1b3Sopenharmony_ci 'module.c', 3053a5a1b3Sopenharmony_ci 'msgobject.c', 3153a5a1b3Sopenharmony_ci 'namereg.c', 3253a5a1b3Sopenharmony_ci 'object.c', 3353a5a1b3Sopenharmony_ci 'play-memblockq.c', 3453a5a1b3Sopenharmony_ci 'play-memchunk.c', 3553a5a1b3Sopenharmony_ci 'remap.c', 3653a5a1b3Sopenharmony_ci 'resampler.c', 3753a5a1b3Sopenharmony_ci 'resampler/ffmpeg.c', 3853a5a1b3Sopenharmony_ci 'resampler/peaks.c', 3953a5a1b3Sopenharmony_ci 'resampler/trivial.c', 4053a5a1b3Sopenharmony_ci 'rtpoll.c', 4153a5a1b3Sopenharmony_ci 'sconv-s16be.c', 4253a5a1b3Sopenharmony_ci 'sconv-s16le.c', 4353a5a1b3Sopenharmony_ci 'sconv.c', 4453a5a1b3Sopenharmony_ci 'shared.c', 4553a5a1b3Sopenharmony_ci 'sink.c', 4653a5a1b3Sopenharmony_ci 'sink-input.c', 4753a5a1b3Sopenharmony_ci 'sioman.c', 4853a5a1b3Sopenharmony_ci 'socket-server.c', 4953a5a1b3Sopenharmony_ci 'sound-file-stream.c', 5053a5a1b3Sopenharmony_ci 'sound-file.c', 5153a5a1b3Sopenharmony_ci 'source.c', 5253a5a1b3Sopenharmony_ci 'source-output.c', 5353a5a1b3Sopenharmony_ci 'start-child.c', 5453a5a1b3Sopenharmony_ci 'stream-util.c', 5553a5a1b3Sopenharmony_ci 'svolume_arm.c', 5653a5a1b3Sopenharmony_ci 'svolume_c.c', 5753a5a1b3Sopenharmony_ci 'svolume_mmx.c', 5853a5a1b3Sopenharmony_ci 'svolume_sse.c', 5953a5a1b3Sopenharmony_ci 'thread-mq.c', 6053a5a1b3Sopenharmony_ci] 6153a5a1b3Sopenharmony_ci 6253a5a1b3Sopenharmony_cilibpulsecore_headers = [ 6353a5a1b3Sopenharmony_ci 'asyncmsgq.h', 6453a5a1b3Sopenharmony_ci 'asyncq.h', 6553a5a1b3Sopenharmony_ci 'auth-cookie.h', 6653a5a1b3Sopenharmony_ci 'card.h', 6753a5a1b3Sopenharmony_ci 'cli-command.h', 6853a5a1b3Sopenharmony_ci 'cli-text.h', 6953a5a1b3Sopenharmony_ci 'client.h', 7053a5a1b3Sopenharmony_ci 'core.h', 7153a5a1b3Sopenharmony_ci 'core-scache.h', 7253a5a1b3Sopenharmony_ci 'core-subscribe.h', 7353a5a1b3Sopenharmony_ci 'cpu.h', 7453a5a1b3Sopenharmony_ci 'cpu-arm.h', 7553a5a1b3Sopenharmony_ci 'cpu-orc.h', 7653a5a1b3Sopenharmony_ci 'cpu-x86.h', 7753a5a1b3Sopenharmony_ci 'database.h', 7853a5a1b3Sopenharmony_ci 'device-port.h', 7953a5a1b3Sopenharmony_ci 'downmix.h', 8053a5a1b3Sopenharmony_ci 'ffmpeg/avcodec.h', 8153a5a1b3Sopenharmony_ci 'ffmpeg/dsputil.h', 8253a5a1b3Sopenharmony_ci 'filter/biquad.h', 8353a5a1b3Sopenharmony_ci 'filter/crossover.h', 8453a5a1b3Sopenharmony_ci 'filter/lfe-filter.h', 8553a5a1b3Sopenharmony_ci 'hook-list.h', 8653a5a1b3Sopenharmony_ci 'ltdl-helper.h', 8753a5a1b3Sopenharmony_ci 'message-handler.h', 8853a5a1b3Sopenharmony_ci 'mix.h', 8953a5a1b3Sopenharmony_ci 'modargs.h', 9053a5a1b3Sopenharmony_ci 'modinfo.h', 9153a5a1b3Sopenharmony_ci 'module.h', 9253a5a1b3Sopenharmony_ci 'msgobject.h', 9353a5a1b3Sopenharmony_ci 'namereg.h', 9453a5a1b3Sopenharmony_ci 'object.h', 9553a5a1b3Sopenharmony_ci 'play-memblockq.h', 9653a5a1b3Sopenharmony_ci 'play-memchunk.h', 9753a5a1b3Sopenharmony_ci 'remap.h', 9853a5a1b3Sopenharmony_ci 'resampler.h', 9953a5a1b3Sopenharmony_ci 'rtpoll.h', 10053a5a1b3Sopenharmony_ci 'sconv.h', 10153a5a1b3Sopenharmony_ci 'sconv-s16be.h', 10253a5a1b3Sopenharmony_ci 'sconv-s16le.h', 10353a5a1b3Sopenharmony_ci 'shared.h', 10453a5a1b3Sopenharmony_ci 'sink-input.h', 10553a5a1b3Sopenharmony_ci 'sink.h', 10653a5a1b3Sopenharmony_ci 'sioman.h', 10753a5a1b3Sopenharmony_ci 'socket-server.h', 10853a5a1b3Sopenharmony_ci 'sound-file-stream.h', 10953a5a1b3Sopenharmony_ci 'sound-file.h', 11053a5a1b3Sopenharmony_ci 'source-output.h', 11153a5a1b3Sopenharmony_ci 'source.h', 11253a5a1b3Sopenharmony_ci 'start-child.h', 11353a5a1b3Sopenharmony_ci 'stream-util.h', 11453a5a1b3Sopenharmony_ci 'thread-mq.h', 11553a5a1b3Sopenharmony_ci 'typedefs.h', 11653a5a1b3Sopenharmony_ci] 11753a5a1b3Sopenharmony_ci 11853a5a1b3Sopenharmony_ciif get_option('database') == 'tdb' 11953a5a1b3Sopenharmony_ci libpulsecore_sources += 'database-tdb.c' 12053a5a1b3Sopenharmony_ci database_c_args = '-DHAVE_TDB' 12153a5a1b3Sopenharmony_cielif get_option('database') == 'gdbm' 12253a5a1b3Sopenharmony_ci libpulsecore_sources += 'database-gdbm.c' 12353a5a1b3Sopenharmony_ci database_c_args = '-DHAVE_GDBM' 12453a5a1b3Sopenharmony_cielse 12553a5a1b3Sopenharmony_ci libpulsecore_sources += 'database-simple.c' 12653a5a1b3Sopenharmony_ci database_c_args = '-DHAVE_SIMPLEDB' 12753a5a1b3Sopenharmony_ciendif 12853a5a1b3Sopenharmony_ci 12953a5a1b3Sopenharmony_ciif dbus_dep.found() 13053a5a1b3Sopenharmony_ci libpulsecore_sources += [ 13153a5a1b3Sopenharmony_ci 'dbus-shared.c', 13253a5a1b3Sopenharmony_ci 'protocol-dbus.c', 13353a5a1b3Sopenharmony_ci ] 13453a5a1b3Sopenharmony_ci libpulsecore_headers += [ 13553a5a1b3Sopenharmony_ci 'dbus-shared.h', 13653a5a1b3Sopenharmony_ci 'protocol-dbus.h', 13753a5a1b3Sopenharmony_ci ] 13853a5a1b3Sopenharmony_ciendif 13953a5a1b3Sopenharmony_ci 14053a5a1b3Sopenharmony_ciif samplerate_dep.found() 14153a5a1b3Sopenharmony_ci libpulsecore_sources += ['resampler/libsamplerate.c'] 14253a5a1b3Sopenharmony_ciendif 14353a5a1b3Sopenharmony_ci 14453a5a1b3Sopenharmony_ciif soxr_dep.found() 14553a5a1b3Sopenharmony_ci libpulsecore_sources += ['resampler/soxr.c'] 14653a5a1b3Sopenharmony_ciendif 14753a5a1b3Sopenharmony_ci 14853a5a1b3Sopenharmony_ciif speex_dep.found() 14953a5a1b3Sopenharmony_ci libpulsecore_sources += ['resampler/speex.c'] 15053a5a1b3Sopenharmony_ciendif 15153a5a1b3Sopenharmony_ci 15253a5a1b3Sopenharmony_ciif x11_dep.found() 15353a5a1b3Sopenharmony_ci libpulsecore_sources += ['x11wrap.c'] 15453a5a1b3Sopenharmony_ci libpulsecore_headers += ['x11wrap.h'] 15553a5a1b3Sopenharmony_ciendif 15653a5a1b3Sopenharmony_ci 15753a5a1b3Sopenharmony_ciorc_sources = [] 15853a5a1b3Sopenharmony_ciorc_headers = [] 15953a5a1b3Sopenharmony_ciif have_orcc 16053a5a1b3Sopenharmony_ci orcsrc = 'svolume' 16153a5a1b3Sopenharmony_ci orc_h = custom_target(orcsrc + '-orc-gen.h', 16253a5a1b3Sopenharmony_ci input : orcsrc + '.orc', 16353a5a1b3Sopenharmony_ci output : orcsrc + '-orc-gen.h', 16453a5a1b3Sopenharmony_ci command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'] 16553a5a1b3Sopenharmony_ci ) 16653a5a1b3Sopenharmony_ci orc_c = custom_target(orcsrc + '-orc-gen.c', 16753a5a1b3Sopenharmony_ci input : orcsrc + '.orc', 16853a5a1b3Sopenharmony_ci output : orcsrc + '-orc-gen.c', 16953a5a1b3Sopenharmony_ci command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'] 17053a5a1b3Sopenharmony_ci ) 17153a5a1b3Sopenharmony_ci orc_sources = [orc_c, 'svolume_orc.c'] 17253a5a1b3Sopenharmony_ci orc_headers = [orc_h] 17353a5a1b3Sopenharmony_ciendif 17453a5a1b3Sopenharmony_ci 17553a5a1b3Sopenharmony_ci# FIXME: walk through dependencies and add files 17653a5a1b3Sopenharmony_ci 17753a5a1b3Sopenharmony_ci# FIXME: SIMD support (ORC) 17853a5a1b3Sopenharmony_cisimd = import('unstable-simd') 17953a5a1b3Sopenharmony_cisimd_variants = [ 18053a5a1b3Sopenharmony_ci { 'mmx' : ['remap_mmx.c', 'svolume_mmx.c'] }, 18153a5a1b3Sopenharmony_ci { 'sse' : ['remap_sse.c', 'sconv_sse.c', 'svolume_sse.c'] }, 18253a5a1b3Sopenharmony_ci { 'neon' : ['remap_neon.c', 'sconv_neon.c', 'mix_neon.c'] }, 18353a5a1b3Sopenharmony_ci] 18453a5a1b3Sopenharmony_ci 18553a5a1b3Sopenharmony_cilibpulsecore_simd_lib = [] 18653a5a1b3Sopenharmony_ci 18753a5a1b3Sopenharmony_ciforeach simd_kwargs : simd_variants 18853a5a1b3Sopenharmony_ci 18953a5a1b3Sopenharmony_ci if host_machine.cpu_family() == 'arm' and 'neon' in simd_kwargs 19053a5a1b3Sopenharmony_ci if not cc.compiles(''' 19153a5a1b3Sopenharmony_ci #include <arm_neon.h> 19253a5a1b3Sopenharmony_ci int main() { 19353a5a1b3Sopenharmony_ci return sizeof(uint8x8_t) + sizeof(int32x4_t) + sizeof(float32x4_t); 19453a5a1b3Sopenharmony_ci } 19553a5a1b3Sopenharmony_ci ''', name : 'neon code') 19653a5a1b3Sopenharmony_ci continue 19753a5a1b3Sopenharmony_ci endif 19853a5a1b3Sopenharmony_ci endif 19953a5a1b3Sopenharmony_ci 20053a5a1b3Sopenharmony_ci libpulsecore_simd = simd.check('libpulsecore_simd', 20153a5a1b3Sopenharmony_ci kwargs : simd_kwargs, 20253a5a1b3Sopenharmony_ci c_args : [pa_c_args], 20353a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 20453a5a1b3Sopenharmony_ci implicit_include_directories : false, 20553a5a1b3Sopenharmony_ci compiler : cc) 20653a5a1b3Sopenharmony_ci 20753a5a1b3Sopenharmony_ci libpulsecore_simd_lib += libpulsecore_simd[0] 20853a5a1b3Sopenharmony_ci cdata.merge_from(libpulsecore_simd[1]) 20953a5a1b3Sopenharmony_ciendforeach 21053a5a1b3Sopenharmony_ci 21153a5a1b3Sopenharmony_ciif host_machine.system() == 'windows' 21253a5a1b3Sopenharmony_ci libpulsecore_sources += ['mutex-win32.c', 21353a5a1b3Sopenharmony_ci 'poll-win32.c', 21453a5a1b3Sopenharmony_ci 'semaphore-win32.c', 21553a5a1b3Sopenharmony_ci 'thread-win32.c', 21653a5a1b3Sopenharmony_ci ] 21753a5a1b3Sopenharmony_ciendif 21853a5a1b3Sopenharmony_ci 21953a5a1b3Sopenharmony_cilibpulsecore = shared_library('pulsecore-' + pa_version_major_minor, 22053a5a1b3Sopenharmony_ci libpulsecore_sources, libpulsecore_headers, 22153a5a1b3Sopenharmony_ci orc_sources, orc_headers, 22253a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 22353a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args], 22453a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 22553a5a1b3Sopenharmony_ci install : true, 22653a5a1b3Sopenharmony_ci install_rpath : privlibdir, 22753a5a1b3Sopenharmony_ci install_dir : privlibdir, 22853a5a1b3Sopenharmony_ci link_with : libpulsecore_simd_lib, 22953a5a1b3Sopenharmony_ci dependencies : [libm_dep, libpulsecommon_dep, ltdl_dep, shm_dep, sndfile_dep, database_dep, dbus_dep, libatomic_ops_dep, orc_dep, samplerate_dep, soxr_dep, speex_dep, x11_dep, libsystemd_dep, libintl_dep, platform_dep, tcpwrap_dep, platform_socket_dep,], 23053a5a1b3Sopenharmony_ci implicit_include_directories : false) 23153a5a1b3Sopenharmony_ci 23253a5a1b3Sopenharmony_cilibpulsecore_dep = declare_dependency(link_with: libpulsecore) 23353a5a1b3Sopenharmony_ci 23453a5a1b3Sopenharmony_ci# Internal libraries for modules 23553a5a1b3Sopenharmony_ci# TODO: understand 'c_args' and 'dependencies' better, maybe we can remove some 23653a5a1b3Sopenharmony_ci 23753a5a1b3Sopenharmony_cilibavahi_wrap = shared_library('avahi-wrap', 23853a5a1b3Sopenharmony_ci 'avahi-wrap.c', 23953a5a1b3Sopenharmony_ci 'avahi-wrap.h', 24053a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 24153a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 24253a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 24353a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, avahi_dep], 24453a5a1b3Sopenharmony_ci implicit_include_directories : false, # pulsecore/poll.h <vs> /usr/include/poll.h 24553a5a1b3Sopenharmony_ci install : true, 24653a5a1b3Sopenharmony_ci install_rpath : privlibdir, 24753a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 24853a5a1b3Sopenharmony_ci) 24953a5a1b3Sopenharmony_ci 25053a5a1b3Sopenharmony_cilibcli = shared_library('cli', 25153a5a1b3Sopenharmony_ci 'cli.c', 25253a5a1b3Sopenharmony_ci 'cli.h', 25353a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 25453a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 25553a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 25653a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], 25753a5a1b3Sopenharmony_ci install : true, 25853a5a1b3Sopenharmony_ci install_rpath : privlibdir, 25953a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 26053a5a1b3Sopenharmony_ci) 26153a5a1b3Sopenharmony_ci 26253a5a1b3Sopenharmony_cilibcli_dep = declare_dependency(link_with: libcli) 26353a5a1b3Sopenharmony_ci 26453a5a1b3Sopenharmony_ci# FIXME: meson doesn't support multiple RPATH arguments currently 26553a5a1b3Sopenharmony_cirpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir) 26653a5a1b3Sopenharmony_ci 26753a5a1b3Sopenharmony_cilibprotocol_cli = shared_library('protocol-cli', 26853a5a1b3Sopenharmony_ci 'protocol-cli.c', 26953a5a1b3Sopenharmony_ci 'protocol-cli.h', 27053a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 27153a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 27253a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 27353a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libcli_dep], 27453a5a1b3Sopenharmony_ci install : true, 27553a5a1b3Sopenharmony_ci install_rpath : rpath_dirs, 27653a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 27753a5a1b3Sopenharmony_ci) 27853a5a1b3Sopenharmony_ci 27953a5a1b3Sopenharmony_cilibprotocol_http = shared_library('protocol-http', 28053a5a1b3Sopenharmony_ci ['protocol-http.c', 'mime-type.c'], 28153a5a1b3Sopenharmony_ci ['protocol-http.h', 'mime-type.h'], 28253a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 28353a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 28453a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 28553a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], 28653a5a1b3Sopenharmony_ci install : true, 28753a5a1b3Sopenharmony_ci install_rpath : privlibdir, 28853a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 28953a5a1b3Sopenharmony_ci) 29053a5a1b3Sopenharmony_ci 29153a5a1b3Sopenharmony_cilibprotocol_native = shared_library('protocol-native', 29253a5a1b3Sopenharmony_ci 'protocol-native.c', 29353a5a1b3Sopenharmony_ci ['protocol-native.h', 'native-common.h'], 29453a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 29553a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 29653a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 29753a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep], 29853a5a1b3Sopenharmony_ci install : true, 29953a5a1b3Sopenharmony_ci install_rpath : privlibdir, 30053a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 30153a5a1b3Sopenharmony_ci) 30253a5a1b3Sopenharmony_ci 30353a5a1b3Sopenharmony_cilibprotocol_simple = shared_library('protocol-simple', 30453a5a1b3Sopenharmony_ci 'protocol-simple.c', 30553a5a1b3Sopenharmony_ci 'protocol-simple.h', 30653a5a1b3Sopenharmony_ci c_args : [pa_c_args, server_c_args, database_c_args], 30753a5a1b3Sopenharmony_ci link_args : [nodelete_link_args], 30853a5a1b3Sopenharmony_ci include_directories : [configinc, topinc], 30953a5a1b3Sopenharmony_ci dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], 31053a5a1b3Sopenharmony_ci install : true, 31153a5a1b3Sopenharmony_ci install_rpath : privlibdir, 31253a5a1b3Sopenharmony_ci install_dir : modlibexecdir, 31353a5a1b3Sopenharmony_ci) 314