Skip to main content

Overview

Xenia uses a custom Python-based build script (xenia-build.py) that wraps premake5 and the native build tools for your platform. The build system supports Windows, Linux (experimental), and macOS (experimental).
You must have a 64-bit machine for building and running Xenia. Always run your system updater before building and ensure you have the latest drivers.

Prerequisites

Common Requirements

  • 64-bit operating system and CPU
  • Git
  • Python 3.9+ (64-bit)
    • Ensure Python is added to your PATH
  • CMake 3.10+ (or C++ CMake tools)

Platform-Specific Requirements

Windows

Visual Studio 2022, Windows 11 SDK, Python 3.9+

Linux

Clang 19, development libraries, Vulkan drivers (experimental)

Quick Start

1

Clone the Repository

git clone https://github.com/xenia-canary/xenia-canary.git
cd xenia-canary
2

Run Initial Setup

The xb setup command will initialize git submodules and run premake:
xb setup
3

Build the Project

Build in debug mode (default):
xb build
Or build in release mode:
xb build --config=release

Build System Architecture

The Xenia build system consists of:
  1. xenia-build.py (xb wrapper) - Main build script that orchestrates the build process
  2. premake5.lua - Build configuration that generates platform-specific project files
  3. Platform Build Tools:
    • Windows: MSBuild (Visual Studio)
    • Linux: CMake + Ninja
    • macOS: Xcode

Next Steps

xb Build Script

Learn about all available xb commands

Windows Build

Detailed Windows build instructions

Linux Build

Linux build instructions (experimental)

Troubleshooting

Ensure Python 3.9+ 64-bit is installed and added to your PATH. You can verify by running:
python --version
The version should be 3.9 or higher and show 64-bit.
If you encounter submodule errors, try manually updating:
git submodule update --init --depth=1 -j <cpu_count>
After pulling latest changes, always run premake again:
xb premake
Or use the pull command which does this automatically:
xb pull

Build docs developers (and LLMs) love