This project builds the mpv library (libmpv) used by the Soia Media Player.
It is designed for GitHub Actions CI, and can also be run locally for testing.
Each successful build generates a self-contained runtime package containing:
libmpvruntime library (.dylibon macOS,.dllon mingw64,.soon Linux)soia_utilsruntime library for the current target platformlibmpvlink libraries on mingw64 (.lib/.a/.dll.a, when generated)- all non-system runtime dynamic dependencies (recursive)
- Linux package includes runtime dependencies recursively (excluding core glibc/loader libraries)
- rewritten install names (
@rpath) and runtime search path (@loader_path) on macOS - SHA256 checksum file
This package is intended to run without requiring Homebrew on the target machine.
Download source and build:
bash ./download.sh
bash ./build-macos.shBuild a specific mpv version:
MPV_VERSION=0.41.0 bash ./download.sh
bash ./build-macos.shBuild a local runtime package:
bash ./package-macos-runtime.sh --pkg-name libmpv-local-macosDownload source and build in MSYS2 MINGW64 shell:
bash ./download.sh
bash ./build-mingw64.shBuild a local runtime package:
bash ./package-mingw64-runtime.sh --pkg-name libmpv-local-windows-mingw64-x86_64Install dependencies on Ubuntu/Debian (example):
sudo apt-get update
sudo apt-get install -y \
build-essential git curl python3 meson ninja-build pkg-config \
libfreetype-dev libfribidi-dev liblcms2-dev libluajit-5.1-dev \
libass-dev libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev \
libswresample-dev libswscale-dev \
libpipewire-0.3-dev libpulse-dev \
libxss-dev libxpresent-dev \
libwayland-dev wayland-protocols libxkbcommon-dev \
libarchive-dev libbluray-dev libcdio-paranoia-dev libdvdnav-dev \
librubberband-dev libzimg-dev libplacebo-dev libvulkan-dev patchelfDownload source and build:
bash ./download.sh
bash ./build-linux.shBuild a local runtime package:
bash ./package-linux-runtime.sh --pkg-name libmpv-local-linux