Prerequisites
Draconis++ requires C++26 support. We recommend Clang 21+ or the latest compiler toolchain.
Required tools
- Meson ≥1.1
- Ninja (build backend)
- pkg-config (for dependency discovery)
- C++26-capable compiler:
- Clang 21+ (recommended)
- GCC 15+ (experimental)
- MSVC with
/std:c++latest(Windows)
Platform-specific dependencies
- Linux
- macOS
- Windows
Required:Optional (for display/window manager detection):
Installation methods
Method 1: Meson build (recommended)
Configure the build
Method 2: vcpkg integration
Draconis++ provides avcpkg.json manifest for dependency management.
Clone and configure with vcpkg
vcpkg.json:- asio
- curl
- magic-enum
- mimalloc
Method 3: Nix flake
The Nix flake provides a fully reproducible build environment with all dependencies.
Enter the dev shell
- Clang 21 toolchain
- Meson, Ninja, pkg-config
- All static dependencies (asio, curl, magic-enum, mimalloc, etc.)
- Platform-specific libraries (XCB, Wayland on Linux)
Configure and build
build: Compile the projectclean: Wipe and reconfigure build directoryrun: Build and execute the CLI
Precompiled configuration
Precompiled configuration embeds your settings at compile-time for a fully static, portable binary.
-Dprecompiled_config=true, you need to create config.hpp from the example:
config.hpp to customize:
- Username display
- Logo path and protocol (Kitty, iTerm2)
- Enabled package managers
- UI layout (which system info rows to display)
- Static plugin configurations (e.g., weather location)
Verifying installation
Build options reference
| Option | Type | Default | Description |
|---|---|---|---|
build_examples | boolean | true | Build example applications (HTTP/MCP servers) |
build_tests | boolean | true | Build unit tests |
build_cli | boolean | true | Build the CLI application |
packagecount | feature | enabled | Enable package manager counting |
caching | feature | enabled | Enable result caching |
plugins | feature | enabled | Enable plugin system |
precompiled_config | boolean | false | Use compile-time configuration (disables TOML) |
static_plugins | array | [] | List of plugins to statically compile |
xcb | feature | enabled | Use XCB for X11 support (Linux/BSD) |
wayland | feature | enabled | Use Wayland client library (Linux/BSD) |
pugixml | feature | auto | Use pugixml for XBPS metadata (Void Linux) |
default_language | string | en | Default localization language |
meson.options for the complete list.
Troubleshooting
Error: C++26 features not supported
Error: C++26 features not supported
Ensure you’re using a recent compiler:
- Clang 21+
- GCC 15+ (experimental)
- MSVC with
/std:c++latest
Error: 'config.hpp' not found
Error: 'config.hpp' not found
When using
-Dprecompiled_config=true, you must create config.hpp:Link errors on macOS
Link errors on macOS
Make sure you’re using the Apple SDK 15.0+. The Nix flake handles this automatically:Or set manually:
Missing dependencies (magic_enum, glaze, etc.)
Missing dependencies (magic_enum, glaze, etc.)
Meson will automatically fetch missing dependencies via wrap files in
subprojects/. Ensure you have internet access during the first build.Force dependency download:Next steps
Quick start guide
Now that Draconis++ is installed, try building your first application