mac os test
This commit is contained in:
@@ -12,8 +12,9 @@ video and ImGui rendering; and
|
|||||||
> [!IMPORTANT]
|
> [!IMPORTANT]
|
||||||
> This project is under active development. Builds and feed playback have been
|
> This project is under active development. Builds and feed playback have been
|
||||||
> verified in current Ubuntu and Fedora environments and on a separate Ubuntu
|
> verified in current Ubuntu and Fedora environments and on a separate Ubuntu
|
||||||
> machine. macOS builds are in progress; native playback testing and packaging
|
> machine. Native builds and feed playback have also been verified on macOS
|
||||||
> are still pending. Stable releases and MXL Fabrics support are planned.
|
> with MoltenVK. macOS packaging, stable releases, and MXL Fabrics support are
|
||||||
|
> planned.
|
||||||
|
|
||||||
## Features
|
## 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
|
dependency is temporarily replaced by a portability fork while the upstream
|
||||||
change is reviewed.
|
change is reviewed.
|
||||||
|
|
||||||
A macOS source build has succeeded on real Apple hardware and currently
|
A macOS source build and native feed playback have succeeded on real Apple
|
||||||
requires:
|
hardware. Building currently requires:
|
||||||
|
|
||||||
- Xcode Command Line Tools;
|
- Xcode Command Line Tools;
|
||||||
- Go;
|
- Go;
|
||||||
@@ -121,13 +122,40 @@ requires:
|
|||||||
- Vulkan loader and MoltenVK;
|
- Vulkan loader and MoltenVK;
|
||||||
- a macOS build of libmxl with matching headers and pkg-config metadata.
|
- 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:
|
Nonstandard loader locations can be supplied explicitly:
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
export SDL3_LIBRARY=/absolute/path/to/libSDL3.dylib
|
export SDL3_LIBRARY="$(brew --prefix sdl3)/lib/libSDL3.dylib"
|
||||||
export VULKAN_LIBRARY=/absolute/path/to/libvulkan.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
|
The resulting executable may currently need an additional libmxl runtime search
|
||||||
path, for example:
|
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
|
These workarounds should not be necessary once the libraries are installed in
|
||||||
a normal dynamic-loader path. Native playback testing is still pending. A
|
a normal dynamic-loader path. A self-contained `.app` bundle and downloadable
|
||||||
self-contained `.app` bundle and downloadable GitHub release are planned but do
|
GitHub release are planned but do not exist yet.
|
||||||
not exist yet.
|
|
||||||
|
|
||||||
## Running
|
## 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;
|
- Linux builds and feed playback have been verified on Ubuntu and Fedora;
|
||||||
broader runtime and hardware coverage is still limited.
|
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.
|
- Windows support is not currently claimed.
|
||||||
- GPU selection and verbose logging flags are incomplete.
|
- GPU selection and verbose logging flags are incomplete.
|
||||||
- There are no prebuilt packages or application bundles yet.
|
- There are no prebuilt packages or application bundles yet.
|
||||||
|
|||||||
Reference in New Issue
Block a user