| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- package("pulseaudio")
- set_homepage("https://www.freedesktop.org/wiki/Software/PulseAudio/")
- set_description("A featureful, general-purpose sound server")
- set_license("LGPL-2.1-or-later")
- add_urls("https://github.com/pulseaudio/pulseaudio/archive/refs/tags/$(version).tar.gz",
- "https://github.com/pulseaudio/pulseaudio.git")
- add_versions("v17.0", "ed36c8a0cdff7b57382a258d3e1a916f42500fbafd64dd3c2e258ed8f017ee90")
- add_configs("shared", {description = "Build shared library.", default = true, type = "boolean", readonly = true})
- add_extsources("pkgconfig::libpulse")
- if is_plat("linux") then
- add_extsources("pacman::libpulse", "apt::libpulse-dev")
- end
- if is_plat("linux", "bsd") then
- add_syslinks("pthread")
- end
- add_deps("meson", "ninja")
- if is_plat("linux") then
- add_deps("alsa-lib")
- end
- add_deps("dbus", "fftw", "glib", "jack2", "libatomic_ops", "libiconv", "libsndfile", "openssl3", "soxr", "speex")
- on_install("linux", function (package)
- -- FFTW dependency has broken CMakeConfig
- io.replace("meson.build",
- "fftw_dep = dependency('fftw3f', required : get_option('fftw'))",
- "fftw_dep = dependency('fftw3', method: 'pkg-config', required : get_option('fftw'))", {plain = true})
- -- SndFile dependency has 4 FindDep.cmake files
- io.replace("meson.build",
- "sndfile_dep = dependency('sndfile', version : '>= 1.0.20')",
- "sndfile_dep = dependency('SndFile', method: 'cmake')", {plain = true})
- if package:version_str() then
- local v = package:version_str():gsub("v", "")
- io.writefile(".tarball-version", v)
- os.rm("git-version-gen")
- io.replace("meson.build",
- "run_command(find_program('git-version-gen'), join_paths(meson.current_source_dir(), '.tarball-version'), check : false).stdout().strip()",
- "'" .. v .. "'", {plain = true})
- end
- local configs = {
- "-Dgstreamer=disabled",
- "-Ddaemon=false",
- "-Dclient=true",
- "-Ddoxygen=false",
- "-Dgcov=false",
- "-Dman=false",
- "-Dtests=false",
- "-Dbashcompletiondir=no",
- "-Dzshcompletiondir=no",
- "-Dasyncns=disabled",
- "-Davahi=disabled",
- "-Dbluez5=disabled",
- "-Dconsolekit=disabled",
- "-Ddbus=enabled",
- "-Delogind=disabled",
- "-Dfftw=enabled",
- "-Dglib=enabled",
- "-Dgsettings=disabled",
- "-Dgtk=disabled",
- "-Dhal-compat=false",
- "-Dipv6=true",
- "-Djack=enabled",
- "-Dlirc=enabled",
- "-Dopenssl=enabled",
- "-Dorc=disabled",
- "-Dsoxr=enabled",
- "-Dspeex=enabled",
- "-Dsystemd=disabled",
- "-Dtcpwrap=disabled",
- "-Dudev=disabled",
- "-Dvalgrind=disabled",
- "-Dx11=disabled",
- "-Dadrian-aec=false",
- "-Dwebrtc-aec=disabled"
- }
- table.insert(configs, "-Dalsa=" .. (package:is_plat("linux") and "enabled" or "disabled"))
- table.insert(configs, "-Doss-output=" .. (package:is_plat("linux") and "enabled" or "disabled"))
- table.insert(configs, "-Ddefault_library=" .. (package:config("shared") and "shared" or "static"))
-
- import("package.tools.meson").install(package, configs, {packagedeps = {"libiconv", "libflac", "libopus", "libvorbis", "libogg"}})
- end)
- on_test(function (package)
- assert(package:has_cfuncs("pa_simple_new", {includes = "pulse/simple.h"}))
- end)
|