mac os test

This commit is contained in:
Dmitry Sergeev
2026-09-05 01:10:36 +03:00
parent dd75cac4a3
commit 3768397bfd
2 changed files with 39 additions and 11 deletions
+38 -10
View File
@@ -12,8 +12,9 @@ video and ImGui rendering; and
> [!IMPORTANT]
> This project is under active development. Builds and feed playback have been
> verified in current Ubuntu and Fedora environments and on a separate Ubuntu
> machine. macOS builds are in progress; native playback testing and packaging
> are still pending. Stable releases and MXL Fabrics support are planned.
> machine. Native builds and feed playback have also been verified on macOS
> with MoltenVK. macOS packaging, stable releases, and MXL Fabrics support are
> planned.
## Features
@@ -112,8 +113,8 @@ The SDL3 and Vulkan loaders contain macOS library-name support. The Vulkan
dependency is temporarily replaced by a portability fork while the upstream
change is reviewed.
A macOS source build has succeeded on real Apple hardware and currently
requires:
A macOS source build and native feed playback have succeeded on real Apple
hardware. Building currently requires:
- Xcode Command Line Tools;
- Go;
@@ -121,13 +122,40 @@ requires:
- Vulkan loader and MoltenVK;
- a macOS build of libmxl with matching headers and pkg-config metadata.
When libmxl has been built from its source tree but has not been installed into
a standard prefix, expose its build metadata, source headers, and library
directory to cgo. For example:
```sh
export MXL_SOURCE=/Users/jitten/extra/mxl
export MXL_BUILD="$MXL_SOURCE/build/Darwin-Clang-Release"
export PKG_CONFIG_PATH="$MXL_BUILD${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH}"
export CGO_CFLAGS="-I$MXL_SOURCE/lib/include"
export CGO_LDFLAGS="-L$MXL_BUILD/lib"
mkdir -p build
go build -o build/mxl-player ./cmd/mxl-player
```
The `CGO_CFLAGS` workaround is needed because the headers are still in the MXL
source tree. A properly installed MXL SDK should expose them through
`libmxl.pc` instead.
Nonstandard loader locations can be supplied explicitly:
```sh
export SDL3_LIBRARY=/absolute/path/to/libSDL3.dylib
export VULKAN_LIBRARY=/absolute/path/to/libvulkan.dylib
export SDL3_LIBRARY="$(brew --prefix sdl3)/lib/libSDL3.dylib"
export VULKAN_LIBRARY=/absolute/path/to/libMoltenVK.dylib
export DYLD_LIBRARY_PATH="$MXL_BUILD/lib${DYLD_LIBRARY_PATH:+:$DYLD_LIBRARY_PATH}"
./build/mxl-player
```
Direct loading of `libMoltenVK.dylib` is the configuration verified to work.
The Vulkan loader installed through Homebrew did not work in the tested setup,
so it is not currently recommended for running the player.
The resulting executable may currently need an additional libmxl runtime search
path, for example:
@@ -136,9 +164,8 @@ install_name_tool -add_rpath /absolute/path/to/mxl/lib build/mxl-player
```
These workarounds should not be necessary once the libraries are installed in
a normal dynamic-loader path. Native playback testing is still pending. A
self-contained `.app` bundle and downloadable GitHub release are planned but do
not exist yet.
a normal dynamic-loader path. A self-contained `.app` bundle and downloadable
GitHub release are planned but do not exist yet.
## Running
@@ -453,7 +480,8 @@ local MXL flow; it will not be implemented as a separate playback backend. See
- Linux builds and feed playback have been verified on Ubuntu and Fedora;
broader runtime and hardware coverage is still limited.
- macOS/MoltenVK support is not yet release-tested.
- macOS/MoltenVK builds and feed playback work on tested hardware, but the
application is not yet packaged or release-tested on a clean machine.
- Windows support is not currently claimed.
- GPU selection and verbose logging flags are incomplete.
- There are no prebuilt packages or application bundles yet.