|
@@ -0,0 +1,90 @@
|
|
|
+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)
|