diff options
Diffstat (limited to 'src/pulsecore/meson.build')
-rw-r--r-- | src/pulsecore/meson.build | 286 |
1 files changed, 286 insertions, 0 deletions
diff --git a/src/pulsecore/meson.build b/src/pulsecore/meson.build new file mode 100644 index 0000000..99a702e --- /dev/null +++ b/src/pulsecore/meson.build @@ -0,0 +1,286 @@ +libpulsecore_sources = [ + 'asyncmsgq.c', + 'asyncq.c', + 'auth-cookie.c', + 'card.c', + 'cli-command.c', + 'cli-text.c', + 'client.c', + 'core-scache.c', + 'core-subscribe.c', + 'core.c', + 'cpu.c', + 'cpu-arm.c', + 'cpu-orc.c', + 'cpu-x86.c', + 'device-port.c', + 'database.c', + 'ffmpeg/resample2.c', + 'filter/biquad.c', + 'filter/crossover.c', + 'filter/lfe-filter.c', + 'hook-list.c', + 'ltdl-helper.c', + 'message-handler.c', + 'mix.c', + 'modargs.c', + 'modinfo.c', + 'module.c', + 'msgobject.c', + 'namereg.c', + 'object.c', + 'play-memblockq.c', + 'play-memchunk.c', + 'remap.c', + 'resampler.c', + 'resampler/ffmpeg.c', + 'resampler/peaks.c', + 'resampler/trivial.c', + 'rtpoll.c', + 'sconv-s16be.c', + 'sconv-s16le.c', + 'sconv.c', + 'shared.c', + 'sink.c', + 'sink-input.c', + 'sioman.c', + 'sound-file-stream.c', + 'sound-file.c', + 'source.c', + 'source-output.c', + 'start-child.c', + 'stream-util.c', + 'svolume_arm.c', + 'svolume_c.c', + 'svolume_mmx.c', + 'svolume_sse.c', + 'thread-mq.c', +] + +libpulsecore_headers = [ + 'asyncmsgq.h', + 'asyncq.h', + 'auth-cookie.h', + 'card.h', + 'cli-command.h', + 'cli-text.h', + 'client.h', + 'core.h', + 'core-scache.h', + 'core-subscribe.h', + 'cpu.h', + 'cpu-arm.h', + 'cpu-orc.h', + 'cpu-x86.h', + 'database.h', + 'device-port.h', + 'ffmpeg/avcodec.h', + 'ffmpeg/dsputil.h', + 'filter/biquad.h', + 'filter/crossover.h', + 'filter/lfe-filter.h', + 'hook-list.h', + 'ltdl-helper.h', + 'message-handler.h', + 'mix.h', + 'modargs.h', + 'modinfo.h', + 'module.h', + 'msgobject.h', + 'namereg.h', + 'object.h', + 'play-memblockq.h', + 'play-memchunk.h', + 'remap.h', + 'resampler.h', + 'rtpoll.h', + 'sconv.h', + 'sconv-s16be.h', + 'sconv-s16le.h', + 'shared.h', + 'sink-input.h', + 'sink.h', + 'sioman.h', + 'sound-file-stream.h', + 'sound-file.h', + 'source-output.h', + 'source.h', + 'start-child.h', + 'stream-util.h', + 'thread-mq.h', + 'typedefs.h', +] + +if get_option('database') == 'tdb' + libpulsecore_sources += 'database-tdb.c' + database_c_args = '-DHAVE_TDB' +elif get_option('database') == 'gdbm' + libpulsecore_sources += 'database-gdbm.c' + database_c_args = '-DHAVE_GDBM' +else + libpulsecore_sources += 'database-simple.c' + database_c_args = '-DHAVE_SIMPLEDB' +endif + +if dbus_dep.found() + libpulsecore_sources += [ + 'dbus-shared.c', + 'protocol-dbus.c', + ] + libpulsecore_headers += [ + 'dbus-shared.h', + 'protocol-dbus.h', + ] +endif + +if samplerate_dep.found() + libpulsecore_sources += ['resampler/libsamplerate.c'] +endif + +if soxr_dep.found() + libpulsecore_sources += ['resampler/soxr.c'] +endif + +if speex_dep.found() + libpulsecore_sources += ['resampler/speex.c'] +endif + +if x11_dep.found() + libpulsecore_sources += ['x11wrap.c'] + libpulsecore_headers += ['x11wrap.h'] +endif + +orc_sources = [] +orc_headers = [] +if have_orcc + orcsrc = 'svolume' + orc_h = custom_target(orcsrc + '-orc-gen.h', + input : orcsrc + '.orc', + output : orcsrc + '-orc-gen.h', + command : orcc_args + ['--header', '-o', '@OUTPUT@', '@INPUT@'] + ) + orc_c = custom_target(orcsrc + '-orc-gen.c', + input : orcsrc + '.orc', + output : orcsrc + '-orc-gen.c', + command : orcc_args + ['--implementation', '-o', '@OUTPUT@', '@INPUT@'] + ) + orc_sources = [orc_c, 'svolume_orc.c'] + orc_headers = [orc_h] +endif + +# FIXME: walk through dependencies and add files + +# FIXME: SIMD support (ORC) +simd = import('unstable-simd') +libpulsecore_simd = simd.check('libpulsecore_simd', + mmx : ['remap_mmx.c', 'svolume_mmx.c'], + sse : ['remap_sse.c', 'sconv_sse.c', 'svolume_sse.c'], + neon : ['remap_neon.c', 'sconv_neon.c', 'mix_neon.c'], + c_args : [pa_c_args], + include_directories : [configinc, topinc], + implicit_include_directories : false, + compiler : cc) +libpulsecore_simd_lib = libpulsecore_simd[0] +cdata.merge_from(libpulsecore_simd[1]) + +# FIXME: Implement Windows support +#'mutex-win32.c', +#'poll-win32.c', +#'semaphore-win32.c', +#'thread-win32.c', + +libpulsecore = shared_library('pulsecore-' + pa_version_major_minor, + libpulsecore_sources, libpulsecore_headers, + orc_sources, orc_headers, + include_directories : [configinc, topinc], + c_args : [pa_c_args, server_c_args], + link_args : [nodelete_link_args], + install : true, + install_rpath : privlibdir, + install_dir : privlibdir, + link_with : libpulsecore_simd_lib, + 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, libintl_dep], + implicit_include_directories : false) + +libpulsecore_dep = declare_dependency(link_with: libpulsecore) + +# Internal libraries for modules +# TODO: understand 'c_args' and 'dependencies' better, maybe we can remove some + +libavahi_wrap = shared_library('avahi-wrap', + 'avahi-wrap.c', + 'avahi-wrap.h', + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, avahi_dep], + implicit_include_directories : false, # pulsecore/poll.h <vs> /usr/include/poll.h + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +) + +libcli = shared_library('cli', + 'cli.c', + 'cli.h', + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +) + +libcli_dep = declare_dependency(link_with: libcli) + +# FIXME: meson doesn't support multiple RPATH arguments currently +rpath_dirs = join_paths(privlibdir) + ':' + join_paths(modlibexecdir) + +libprotocol_cli = shared_library('protocol-cli', + 'protocol-cli.c', + 'protocol-cli.h', + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, libcli_dep], + install : true, + install_rpath : rpath_dirs, + install_dir : modlibexecdir, +) + +libprotocol_http = shared_library('protocol-http', + ['protocol-http.c', 'mime-type.c'], + ['protocol-http.h', 'mime-type.h'], + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +) + +libprotocol_native = shared_library('protocol-native', + 'protocol-native.c', + ['protocol-native.h', 'native-common.h'], + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep, dbus_dep], + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +) + +libprotocol_simple = shared_library('protocol-simple', + 'protocol-simple.c', + 'protocol-simple.h', + c_args : [pa_c_args, server_c_args, database_c_args], + link_args : [nodelete_link_args], + include_directories : [configinc, topinc], + dependencies : [libpulse_dep, libpulsecommon_dep, libpulsecore_dep], + install : true, + install_rpath : privlibdir, + install_dir : modlibexecdir, +) |