Files
Faset_Engine/docs/manual/getting-started/build.md
T

2.2 KiB

Build from source

!!! warning "Foundation checkpoint" These instructions initially cover the build foundation. The integrated editor, sample projects, and packaging steps are being added and verified during MVP implementation.

Linux prerequisites

The selected toolchain is C++20, CMake 3.25 or later, Ninja, and Clang. Graphical builds need Vulkan 1.3 headers/loader and a compatible driver. SDL3 is built from a pinned source archive.

On Ubuntu, install the native build tools before configuring:

sudo apt install clang ninja-build cmake python3 python3-venv pkg-config \
  libvulkan-dev vulkan-validationlayers libx11-dev libxext-dev libxrandr-dev \
  libxcursor-dev libxi-dev libxfixes-dev libxkbcommon-dev libwayland-dev \
  libfreetype-dev libharfbuzz-dev xvfb

xvfb is used for automated window tests. A normal desktop session does not need it.

Configure, build, test

python3 tools/fetch_slang.py
cmake --preset linux-debug
cmake --build --preset linux-debug --parallel
ctest --preset linux-debug

For an optimized build use linux-release. The linux-sanitize preset enables AddressSanitizer and UndefinedBehaviorSanitizer for tests without the graphics backend.

Dependencies and offline builds

Dependency source URLs, commits, and archive SHA-256 values are stored in dependencies.lock.json. CMake downloads them on the first configuration. To prefetch them for later offline use:

python3 tools/fetch_dependencies.py
python3 tools/fetch_dependencies.py --verify-only

Cached archives live in .cache/downloads and are not committed. Local compilers, system development libraries, and the Slang compiler must also be available before disconnecting. Prefetching source archives alone is not a complete offline SDK.

Windows prerequisites

Use an x64 Visual Studio Developer shell with the Windows SDK, MSVC runtime libraries, LLVM clang-cl, Ninja, CMake, and the Vulkan SDK available. Then use the windows-debug or windows-release presets.

py tools/fetch_slang.py
cmake --preset windows-debug
cmake --build --preset windows-debug --parallel
ctest --preset windows-debug

Windows acceptance is tracked separately from Linux; a successful Linux build does not verify a Windows build.