mac os test
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user