feat(ios,p0): iOS P0 platform, audio fixes, channel UX

This commit is contained in:
Edison Jwa
2026-05-17 22:00:00 +09:00
parent a1fefc8ab6
commit 7a59f5b9a1
38 changed files with 1705 additions and 674 deletions
+40
View File
@@ -0,0 +1,40 @@
# Environment variables set for all cargo invocations in this workspace.
# CMAKE_POLICY_VERSION_MINIMUM is required for audiopus_sys's bundled
# Opus CMake build to succeed on CMake 4.x (which removed compatibility
# with cmake_minimum_required < 3.5). audiopus_sys v0.2.2 bundles
# Opus 1.3.1 whose CMakeLists.txt uses a very old minimum version.
#
# IPHONEOS_DEPLOYMENT_TARGET=13.0 is required for iOS builds because
# ___chkstk_darwin (the stack-probe symbol emitted by clang for functions
# with large stack frames) only exists in the iOS 13.0+ runtime. The
# pre-built libopus.a and any C code compiled by the cc crate reference
# this symbol. Without this env var, the cc crate compiles C code
# targeting iOS 10.0 (the Rust default), producing object files that
# reference ___chkstk_darwin but can't resolve it against the 10.0
# runtime. Setting IPHONEOS_DEPLOYMENT_TARGET=13.0 ensures the cc crate
# and CMake both target iOS 13.0+, where ___chkstk_darwin exists.
# (DEC-003: minimum deployment target iOS 13.0)
[env]
CMAKE_POLICY_VERSION_MINIMUM = "3.5"
IPHONEOS_DEPLOYMENT_TARGET = "13.0"
# iOS target linker flags (DEC-003: minimum deployment target iOS 13.0).
#
# These rustflags pass -miphoneos-version-min=13.0 to the linker, ensuring
# the final binary targets iOS 13.0+. This is defense-in-depth alongside
# the IPHONEOS_DEPLOYMENT_TARGET env var above — the env var affects C
# compilation (cc crate, CMake), while these rustflags affect the final
# link step.
#
# NOTE: The canonical iOS build is done via tools/build-ios.sh, which
# sets LIBOPUS_STATIC=1, LIBOPUS_NO_PKG=1, and LIBOPUS_LIB_DIR to
# bypass audiopus_sys's CMake build entirely.
[target.aarch64-apple-ios]
rustflags = ["-C", "link-arg=-miphoneos-version-min=13.0"]
[target.aarch64-apple-ios-sim]
rustflags = ["-C", "link-arg=-miphonesimulator-version-min=13.0"]
[target.x86_64-apple-ios]
rustflags = ["-C", "link-arg=-miphonesimulator-version-min=13.0"]