~/openengine
$ cat docs/guides/linux.md
# building on Linux

OpenEngine supports Linux C++ builds with scripting currently disabled (enabled in future roadmap phases).

Prerequisites

bash
sudo apt install libxinerama-dev libxcursor-dev xorg-dev libglu1-mesa-dev pkg-config
sudo apt install mesa-vulkan-drivers vulkan-tools vulkan-validationlayers
  • CMake 3.20+
  • A recent C++ compiler (Clang or GCC)
  • .NET 9.0 SDK (optional, for future scripting support)

Native Build

bash
# Ninja (recommended)
cmake -S . -B build \
  -G Ninja \
  -DCMAKE_BUILD_TYPE=Debug \
  -DBUILD_EXAMPLES=ON \
  -DBUILD_TESTING=ON \
  -DENABLE_SCRIPTING=OFF

cmake --build build -- -j$(nproc)

# Run
./build/bin/Editor

For Unix Makefiles, replace -G Ninja with -G "Unix Makefiles".

Streamlined Build

bash
chmod +x Tools/Scripts/build-linux.sh
./Tools/Scripts/build-linux.sh

Docker Build (from Windows)

If you don't have a native Linux environment, use Docker from Windows:

powershell
.\Tools\Scripts\run-linux-build.ps1

This builds a Linux dev Docker image using Dockerfile.linux-dev, mounts your checkout, configures a Ninja build in build-linux-docker/, and builds the Editor target.

Vulkan Surface Troubleshooting

If you see Failed to create window surface! Error: -7:

  1. Ensure vcpkg installs vulkan-loader[wayland,xcb,xlib] (automatic via manifest mode)
  2. Install the X11 development packages listed above
  3. If running pure Wayland (no XWayland), enable glfw3[wayland] in vcpkg.json
  4. Reconfigure and rebuild after adjusting packages
info

Configure with CMake so vcpkg installs dependencies from vcpkg.json. This installs Vulkan loader with all WSI surface extensions automatically.

Next Steps

enesfrar