build: add MoltenVK to dependencies

This commit is contained in:
osy
2026-01-07 21:03:12 -08:00
parent 50283fd05d
commit 847ad6e425
3 changed files with 43 additions and 1 deletions
+2 -1
View File
@@ -87,7 +87,8 @@ jobs:
run: |
brew uninstall cmake
brew install bison pkg-config gettext glib-utils libgpg-error nasm make meson cmake
pip3 install --user six pyparsing pyyaml setuptools distlib mako
pip3 install --break-system-packages --user six pyparsing pyyaml setuptools distlib mako
gem install --user-install xcpretty
rm -f /usr/local/lib/pkgconfig/*.pc
- name: Build Sysroot
if: steps.cache-sysroot.outputs.cache-matched-key == '' || github.event.inputs.rebuild_sysroot == 'true'
+2
View File
@@ -49,6 +49,8 @@ VIRGLRENDERER_REPO="https://github.com/utmapp/virglrenderer.git"
VIRGLRENDERER_COMMIT="31d91c3860749534aed7bd26af8f47f7de412681"
MESA_REPO="https://gitlab.freedesktop.org/osy/mesa.git"
MESA_COMMIT="79bc850d884a1307356ff61c017e58901b90c7e2"
MOLTENVK_REPO="https://github.com/KhronosGroup/MoltenVK.git"
MOLTENVK_COMMIT="bf60f60d0805e9b3ab989cfc1b69f780f96fd123"
# Decompiled Hypervisor for iOS
HYPERVISOR_REPO="https://github.com/utmapp/Hypervisor.git"
+39
View File
@@ -176,6 +176,7 @@ download_all () {
clone $HYPERVISOR_REPO $HYPERVISOR_COMMIT
clone $LIBUCONTEXT_REPO $LIBUCONTEXT_COMMIT
clone $MESA_REPO $MESA_COMMIT
clone $MOLTENVK_REPO $MOLTENVK_COMMIT
}
copy_private_headers() {
@@ -708,10 +709,48 @@ patch_vulkan_icd() {
fi
}
build_moltenvk() {
pushd "$BUILD_DIR/MoltenVK.git"
# for xcpretty if installed
if which ruby >/dev/null && which gem >/dev/null; then
PATH="$(ruby -r rubygems -e 'puts Gem.user_dir')/bin:$PATH"
fi
case $PLATFORM in
ios_simulator* )
MVK_PLATFORM="iossim"
;;
ios* )
MVK_PLATFORM="ios"
;;
visionos_simulator* )
MVK_PLATFORM="visionossim"
;;
visionos* )
MVK_PLATFORM="visionos"
;;
macos )
MVK_PLATFORM="macos"
;;
esac
env -i PATH=$PATH HOME=$HOME LANG=en_US.UTF-8 ./fetchDependencies --$MVK_PLATFORM -v
env -i PATH=$PATH HOME=$HOME LANG=en_US.UTF-8 make $MVK_PLATFORM
if [ "$PLATFORM" == "macos" ]; then
$(xcrun --sdk $SDK --find lipo) "Package/Release/MoltenVK/dylib/macOS/libMoltenVK.dylib" -extract $ARCH -output "$PREFIX/lib/libMoltenVK.dylib"
else
find "Package/Release/MoltenVK/dynamic/MoltenVK.xcframework" -name "MoltenVK.framework" -exec cp -a \{\} "$PREFIX/Frameworks/" \;
fi
cp -a "MoltenVK/icd/MoltenVK_icd.json" "$PREFIX/share/vulkan/icd.d/"
popd
}
build_vulkan_drivers () {
export PATH="$(brew --prefix mesa)/bin:$PATH"
mkdir -p "$PREFIX/share/vulkan/icd.d"
meson_darwin_build $MESA_REPO -Dmesa-clc=system -Dgallium-drivers= -Dvulkan-drivers=kosmickrisp -Dplatforms=macos
patch_vulkan_icd "$PREFIX/share/vulkan/icd.d/kosmickrisp_mesa_icd.$ARCH.json"
mv "$PREFIX/share/vulkan/icd.d/kosmickrisp_mesa_icd.$ARCH.json" "$PREFIX/share/vulkan/icd.d/kosmickrisp_mesa_icd.json"
build_moltenvk
patch_vulkan_icd "$PREFIX/share/vulkan/icd.d/MoltenVK_icd.json"
}
fixup () {