Repository navigation
Building
| 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.
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.
| 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.
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.
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.
Getting started
Guides