Skip to content

Building

Sander van Rossen edited this page Oct 27, 2026 · 2 revisions

What you need

Windows x64 Visual Studio 2026 and CMake 4.2 or newer, or Visual Studio 2022 and CMake 3.22 or newer
Linux x64 GCC 13 or Clang 17 or newer, Ninja, CMake 3.22 or newer, and SDL3's X11 and Wayland development packages (the Ubuntu list)
macOS Apple Clang with MoltenVK from Homebrew. CI builds it and runs the headless tests, but it has never run on a Mac
All The Vulkan SDK (headers, loader and glslangValidator; the GPU tests also use its validation layers). On Linux the distribution's Vulkan and glslang packages also do
Git with Git LFS: the fonts are in LFS, and without it the clone has pointer files and the fonts fail to load

At runtime the GPU driver needs Vulkan 1.3, VK_KHR_swapchain and the features listed by VulkanDeviceContext::GetDeviceRequirements(): dynamic rendering, synchronization2, descriptor indexing, buffer device address, 8- and 16-bit storage, among others.

Clone and build

git clone --recursive https://github.com/LogicalError/TachyonUI.git
cd TachyonUI

Windows:

cmake -S . -B build -G "Visual Studio 18 2026" -A x64   # or "Visual Studio 17 2022"
cmake --build build --config Debug

Linux and macOS:

cmake -S . -B build -G "Ninja Multi-Config"
cmake --build build --config Debug

In a clone without the submodules, run git submodule update --init --recursive; configure stops with that hint when they are missing. The third-party libraries come from the submodules, so configuring needs no network.

The first configure builds the third-party libraries once into build/third_party/install; later builds reuse them. Executables land in bin/<config>.

With Visual Studio, the solution in build/ (TachyonUI.sln or TachyonUI.slnx) opens with showcase as the startup project.

CMake options

Option Default
TACHYON_BUILD_SHOWCASE on when top-level The showcase application (examples/showcase)
TACHYON_BUILD_EXAMPLES on when top-level The small examples in examples/
TACHYON_BUILD_TESTS on when top-level The unit and GPU tests
TACHYON_INSTALL on when top-level The install rules and the CMake package
TACHYON_INSTALL_THIRD_PARTY on Bundle the third-party libraries into the install
TACHYON_SDL on The SDL window backend; off builds without SDL, and the host passes a window backend
TACHYON_FALLBACK_FONTS off Ship the Noto fallback fonts (other scripts, emoji, symbols; about 87 MB) with the resources and the package
TACHYON_SYSTEM_SDL, _HARFBUZZ, _VMA off Use the host's copy of that library
TACHYON_PRECOMPILED_HEADERS on Precompile the headers most sources include
TACHYON_LTCG off MSVC whole-program optimization in Release

As a subproject (add_subdirectory) only the libraries are built by default. Using the library from your own project, as a subproject or an installed package, is in the integration guide.

The API reference

With Doxygen installed, the tachyon_docs target builds the reference into build/docs/html:

cmake --build build --target tachyon_docs

The published reference is rebuilt with each change on main.

Bundled libraries

SDL3, skribidi, googletest, VMA, vk-bootstrap, HarfBuzz, SheenBidi, libunibreak and budouxc are Git submodules in third_party, pinned on purpose; nanosvg is included in the repository. Their licenses are in THIRD_PARTY_NOTICES.txt.

Clone this wiki locally