# The vendored cpal, which reindeer cannot generate a target for: it arrives as # a path patch rather than a registry or git source, and reindeer only emits # targets for sources it vendors. See the patch table in ../Cargo.toml for why # the copy exists at all, and fixups/moq-media for what points at this. # # Without the `pipewire` feature, matching how ../Cargo.toml declares it, and # without `jack`, which is optional and off. rust_library( name = "cpal", srcs = glob(["src/**/*.rs"]), crate = "cpal", crate_root = "src/lib.rs", edition = "2021", visibility = ["PUBLIC"], deps = ["//third-party/rust:dasp_sample"] + select({ # The ALSA host. Mirrors cpal's linux/*bsd target table. "DEFAULT": [ "//third-party/rust:alsa", "//third-party/rust:libc", ], # The AAudio host. `ndk` is the binding, `ndk-context` is how cpal finds # the VM, and jni here is 0.21 — the other one in this graph is 0.22 and # renamed for exactly that reason. No alsa row: the phone has none. "prelude//os:android": [ "//third-party/rust:jni", "//third-party/rust:libc", "//third-party/rust:ndk", "//third-party/rust:ndk-context", "//third-party/rust:num-derive", "//third-party/rust:num-traits", ], # CoreAudio. The objc2 rows are pinned to the versions cpal asks for # rather than the older ones winit drags into the same graph. "prelude//os:macos": [ "//third-party/rust:coreaudio-rs", "//third-party/rust:libc", "//third-party/rust:mach2", "//third-party/rust:objc2", "//third-party/rust:objc2-audio-toolbox", "//third-party/rust:objc2-core-audio", "//third-party/rust:objc2-core-audio-types", "//third-party/rust:objc2-core-foundation", "//third-party/rust:objc2-foundation", ], }), )