How can I configure GitHub Workflows to build mpv for macOS 13 arm64 #15972
-
I'm using an Apple Silicon Mac (M1) with macOS 13 and I'm trying to install mpv. The links provided on the mpv.io website, https://nightly.link/mpv-player/mpv/workflows/build/master and https://laboratory.stolendata.net/~djinn/mpv_osx/, provide arm64 builds only for macOS 14 and later. I tried Homebrew, although it has prebuilt arm64 binary for macOS 13, it installs unnecessary bloated dependencies such as llvm (~2GB!). I tried to fork mpv and change |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
Found this in Homebrew # std::to_chars requires at least MACOSX_DEPLOYMENT_TARGET=13.3
# so it is possible to avoid LLVM dependency on Ventura but the
# bottle would have issues if system was on macOS 13.2 or older.
on_ventura :or_older do
depends_on "llvm"
fails_with :clang
end My OS is 13.6.6 so in theory I don't need llvm. Then, I tried to install mpv with # Run mpv
mpv
# Printed error
dyld[773]: Library not loaded: /opt/homebrew/opt/libplacebo/lib/libplacebo.349.dylib
# Install libplacebo
brew install --ignore-dependencies libplacebo
# Run mpv again When there were no more errors, I tried to play a file and it worked. However, I think this is just a workaround and I'm still looking for a way to build a standalone package with macOS application bundles. |
Beta Was this translation helpful? Give feedback.
-
i think you are misunderstanding how this works completely. first of all nightly builds we provide are build for the macOS version and architecture it is build on (github runner). for details see https://github.com/actions/runner-images?tab=readme-ov-file#available-images. changing "arch" doesn't do much besides changing the name of the resulting zip (https://github.com/forkshub/mpv/blob/11df963a878d89721c705de3e8bc06cbcd3fd39a/.github/workflows/build.yml#L100). if you want to change the target version of the resulting binary you have to set the target for the c parts (MACOSX_DEPLOYMENT_TARGET) and swift (--target), which also depends on the runner you use. that alone doesn't result in a working result, since in the worst case you also have to rebuild all dependencies for that target. |
Beta Was this translation helpful? Give feedback.
i think you are misunderstanding how this works completely.
first of all nightly builds we provide are build for the macOS version and architecture it is build on (github runner). for details see https://github.com/actions/runner-images?tab=readme-ov-file#available-images.
macos-13 > macOS 13 intel
macos-14 > mac OS 14 ARM
macos-15 > macOS 15 ARM
changing "arch" doesn't do much besides changing the name of the resulting zip (https://github.com/forkshub/mpv/blob/11df963a878d89721c705de3e8bc06cbcd3fd39a/.github/workflows/build.yml#L100).
if you want to change the target version of the resulting binary you have to set the target for the c parts (MACOSX_DEPLOYMENT_TARGET) and swift (--target)…