MoltenVK

(★ 5,795)

MoltenVK is a Vulkan Portability implementation. It layers a subset of the high-performance, industry-standard Vulkan graphics and compute API over Apple's Metal graphics framework, enabling Vulkan applications to run on macOS, iOS and tvOS.

File Explorer

  • .gitignore
  • CMakeLists.txt
  • CODE_OF_CONDUCT.md
  • fetchDependencies
  • LICENSE
  • Makefile
  • README.md

# Installation Guide

cmake
Prerequisites

Setup Steps

brew install cmake python3 ninja

Install required build tools.

git clone https://github.com/KhronosGroup/MoltenVK.git

Clone the MoltenVK repository.

./fetchDependencies --all

Fetch and build external dependency libraries.

Key Commands

./fetchDependencies --all

Fetch and build external open-source dependencies for specified platforms.

Specify platform options (--macos, --ios, --all, etc.) when running fetchDependencies.

# Use via CDN

jsDelivr

jsDelivr serves any public GitHub repository as a CDN with zero setup. Pick a version and a file to get a ready-to-paste link and snippet.

Command Glossary

Commands referenced in this DOCs, explained below.

🔍

brew install

View Details ▼

Install a Homebrew formula or cask.

brew install {{formula|cask}}

Install a formula/cask:

brew install {{[-s|--build-from-source]}} {{formula}}

Build and install a formula from source (dependencies will still be installed from bottles):

brew install {{[-n|--dry-run]}} {{formula|cask}}

Download the manifest, print what would be installed but don't actually install anything:

🔍

clang-format

View Details ▼

Auto-format C/C++/Java/JavaScript/Objective-C/Protobuf/C# code.

clang-format {{path/to/file}}

Format a file and print the result to `stdout`:

clang-format -i {{path/to/file}}

Format a file in-place:

clang-format --style {{LLVM|GNU|Google|Chromium|Microsoft|Mozilla|WebKit}} {{path/to/file}}

Format a file using a predefined coding style:

🔍

cmake

View Details ▼

Cross-platform build automation system, that generates recipes for native build systems.

cmake {{path/to/project_directory}}

Generate a build recipe in the current directory with `CMakeLists.txt` from a project directory:

cmake --build {{path/to/build_directory}}

Use a generated recipe in a given directory to build artifacts:

cmake --install {{path/to/build_directory}} --strip

Install the build artifacts into `/usr/local/` and strip debugging symbols:

🔍

git clone

View Details ▼

Clone an existing repository.

git clone {{remote_repository_location}} {{path/to/directory}}

Clone an existing repository into a new directory (the default directory is the repository name):

git clone --recursive {{remote_repository_location}}

Clone an existing repository and its submodules:

git clone {{[-n|--no-checkout]}} {{remote_repository_location}}

Clone only the `.git` directory of an existing repository:

🔍

ninja

View Details ▼

A Build system designed to be fast.

ninja

Build in the current directory:

ninja -j {{4}}

Build in the current directory, executing 4 [j]obs at a time in parallel:

ninja -C {{path/to/directory}}

Build a program in a given directory:

🔍

python3

View Details ▼

This command is an alias of `python`.

tldr python

View documentation for the original command:

// repository documentation