Skip to content
Copied!
published on 2026-06-08

Building

Settings (v0.2.2)

Build hosts

HostUse
macOSDevelopment, macOS builds, and cross-compiling for Windows
Ubuntu Desktop, etc.Native Linux builds
WindowsNot currently supported as a build host

The Windows .exe is cross-built on macOS using mingw-w64 and the x86_64-pc-windows-gnu target. Linux binaries are difficult to cross-compile from macOS, so they are built natively on a Linux host.

Production builds (repos/settings/Makefile)

TargetOutput
make binarytarget/release/settings (for bundling into the parent app)
make check-schemaStatic schema validation only
make settings-arm64 / settings-x86_64dist/settings/darwin-*/Settings.app
make settings-windist/settings/windows-x86_64/Settings.exe
make settings-linuxdist/settings/linux-x86_64/settings (run on a Linux host)
make settings-schema-checker-*dist/settings-schema-checker/<arch>/

ARCH slugs: darwin-arm64 / darwin-x86_64 / windows-x86_64 / linux-x86_64

bash
cd repos/settings
make icons
make binary
make SCHEMA='/path/with spaces/schema.toml' binary   # paths may contain spaces (since v0.2.2)
make check-schema SCHEMA=./demo/schema.toml

How to specify the schema path (via the Makefile)

PriorityMethod
1SETTINGS_SCHEMA environment variable
2make SCHEMA=…
3Default ../schema.toml

When running cargo build directly without going through the Makefile, the fallback is demo/schema.toml.

Building the demo GUI (repos/settings/demo/Makefile)

Builds a standalone GUI with demo/schema.toml embedded. settings-schema-checker is not part of this build.

TargetOutput
make demo-arm64 / demo-x86_64demo/dist/darwin-*/Settings.app + Resources/config.toml
make demo-windemo/dist/windows-x86_64/ + config.toml
make demo-linuxdemo/dist/linux-x86_64/ + config.toml

settings-schema-checker

A validation CLI for schema authors and CI. Unlike the GUI, it does not embed any schema.toml — it takes the path as a runtime argument.

bash
cargo run -p settings-schema --bin settings-schema-checker -- /path/to/schema.toml
# Or
make check-schema SCHEMA=./demo/schema.toml

Exit codes:

CodeMeaning
0Validation succeeded
1Validation failed (the schema has a problem)
2Usage error (e.g. invalid arguments)