Building from source gives you full access to the engine internals, lets you modify subsystems, and is required if you want to work on the editor, contribute to the project, or target a platform configuration not covered by a prebuilt SDK release. Prisma Engine uses CMake presets to standardize builds across all supported platforms and architectures.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Excurs1ons/PrismaEngine/llms.txt
Use this file to discover all available pages before exploring further.
Prerequisites
Install the following tools before cloning the repository.- Git — with submodule support (
--recursiveclone) - CMake 3.31 or later — required by
CMakePresets.json - C++20 compiler:
- Windows: Visual Studio 2022 (MSVC)
- Linux: GCC 11+ or Clang 13+
- Android: NDK r25+
- Vulkan SDK 1.3+ — required for Vulkan builds on Linux and Windows
- Ninja — required for Linux and Android builds (Windows uses Visual Studio generator)
Clone the repository
Clone theprune branch with all submodules. The prune branch focuses on the SDL3 + Vulkan rendering path.
--recursive, initialize submodules manually:
One-command build
Thescripts/build.sh script auto-detects your platform and architecture, selects the appropriate CMake preset, and runs the full configure + build pipeline.
| Option | Description |
|---|---|
--target | engine, editor, or runtime |
--config | debug or release |
--preset | Override auto-detection with an exact preset name |
--clean | Remove the build directory before configuring |
Build steps
Configure
Run the CMake configure step using a preset. Presets are defined in For example, to configure the editor for Linux x64 in debug mode:
CMakePresets.json and cover all combinations of target, platform, architecture, and build type.Build
Run the build step using the same preset name.Continuing the example above:Build output is placed in
build/<preset-name>/. For example, the Linux x64 debug editor outputs to build/editor-linux-x64-debug/.Platform-specific commands
- Windows
- Linux
- Android
Windows builds use the Visual Studio 17 2022 generator. You can build from the command line using CMake presets or open the project directly in Visual Studio.
Available presets
The table below lists all non-hidden presets defined inCMakePresets.json.
| Preset name | Target | Platform | Arch | Config |
|---|---|---|---|---|
engine-windows-x64-debug | Engine | Windows | x64 | Debug |
engine-windows-x64-release | Engine | Windows | x64 | Release |
editor-windows-x64-debug | Editor | Windows | x64 | Debug |
editor-windows-x64-release | Editor | Windows | x64 | Release |
runtime-windows-x64-debug | Runtime | Windows | x64 | Debug |
runtime-windows-x64-release | Runtime | Windows | x64 | Release |
engine-linux-x64-debug | Engine | Linux | x64 | Debug |
engine-linux-x64-release | Engine | Linux | x64 | Release |
engine-linux-arm64-debug | Engine | Linux | ARM64 | Debug |
engine-linux-arm64-release | Engine | Linux | ARM64 | Release |
editor-linux-x64-debug | Editor | Linux | x64 | Debug |
editor-linux-x64-release | Editor | Linux | x64 | Release |
editor-linux-arm64-debug | Editor | Linux | ARM64 | Debug |
editor-linux-arm64-release | Editor | Linux | ARM64 | Release |
runtime-linux-x64-debug | Runtime | Linux | x64 | Debug |
runtime-linux-x64-release | Runtime | Linux | x64 | Release |
engine-android-arm64-debug | Engine | Android | arm64-v8a | Debug |
engine-android-arm64-release | Engine | Android | arm64-v8a | Release |
runtime-android-arm64-debug | Runtime | Android | arm64-v8a | Debug |
runtime-android-arm64-release | Runtime | Android | arm64-v8a | Release |
Key CMake options
You can pass these options tocmake --preset via -D flags to override preset defaults.
| Option | Description | Default |
|---|---|---|
PRISMA_BUILD_EDITOR | Include the ImGui editor application | OFF (most presets) |
PRISMA_BUILD_SHARED_LIBS | Build the engine as a shared library | ON (debug), OFF (release) |
PRISMA_USE_FETCHCONTENT | Download dependencies via CMake FetchContent | ON |
PRISMA_ENABLE_RENDER_VULKAN | Enable the Vulkan rendering backend | Platform-dependent |
PRISMA_ENABLE_RENDER_DX12 | Enable the DirectX 12 rendering backend | ON (Windows base) |
PRISMA_ENABLE_AUDIO_SDL3 | Enable the SDL3 audio backend | ON (Linux/Android) |
PRISMA_ENABLE_IMGUI_DEBUG | Enable ImGui debug overlays | ON (debug builds) |
PRISMA_USE_NATIVE_AUDIO | Use platform-native audio instead of SDL3 | ON |
PRISMA_USE_NATIVE_INPUT | Use platform-native input instead of SDL3 | ON |