Blog

Bringing Linux Support to the Laura Game Engine

An accepted open-source contribution that adds full Linux compatibility to the Laura game engine.

26 October 2025 · C++, Game Engine, Linux, Build Systems, Cross-Platform

Overview #

This blog post documents my accepted pull request to the Laura game engine that adds support for building and running the project on Linux. The contribution removes platform-specific assumptions, fixes build issues, and ensures the engine can be compiled with standard Linux toolchains.

The pull request was reviewed and merged upstream, officially making Linux a supported platform for the project.

Motivation #

Prior to this contribution, Laura primarily targeted non-Linux environments. Attempting to build the project on Linux exposed several issues related to platform assumptions, missing guards, and build configuration incompatibilities.

Linux support is important for:

The goal of this pull request was to make the project build cleanly on Linux without impacting existing platforms.

Technical Changes #

The Linux compatibility work focused on three main areas:

Build System Fixes #

Platform-Specific Code Handling #

Validation #

These changes were kept minimal and focused to align with the existing project structure.

Building on Linux #

With this pull request merged, Laura can now be built on Linux using standard tools.

Experimental Linux support:

To enable file dialogs, make sure Zenity is installed.

# Install Zenity
sudo apt install zenity        # Ubuntu / Debian
sudo pacman -S zenity          # Arch

# Test installation
zenity --info --text="Hello World!"

Clone and build Laura on Linux:

git clone --recursive https://github.com/jakubg05/Laura.git
cd Laura

# Compile with g++ (GCC)
cmake -S . -B build \
  -DCMAKE_BUILD_TYPE=Release \
  -DBUILD_INSTALL=ON \
  -DCMAKE_C_COMPILER=gcc \
  -DCMAKE_CXX_COMPILER=g++

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

# Run
./build/install/LauraEditor

Any missing dependencies can be installed through the system package manager depending on the distribution.

Impact #

This contribution expands Laura’s platform support and lowers the barrier for Linux-based developers to use, test, and contribute to the engine. It also makes future CI integration and automated testing on Linux straightforward.

Supporting Linux is a small change in code, but a meaningful improvement in accessibility and project longevity.

Conclusion #

This pull request was a focused but impactful contribution: enabling Linux support without altering the engine’s design or workflow. It highlights how incremental platform improvements can significantly broaden the reach of an open-source project.