Building
Settings (v0.2.2)
Build hosts
| Host | Use |
|---|---|
| macOS | Development, macOS builds, and cross-compiling for Windows |
| Ubuntu Desktop, etc. | Native Linux builds |
| Windows | Not 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)
| Target | Output |
|---|---|
make binary | target/release/settings (for bundling into the parent app) |
make check-schema | Static schema validation only |
make settings-arm64 / settings-x86_64 | dist/settings/darwin-*/Settings.app |
make settings-win | dist/settings/windows-x86_64/Settings.exe |
make settings-linux | dist/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.tomlHow to specify the schema path (via the Makefile)
| Priority | Method |
|---|---|
| 1 | SETTINGS_SCHEMA environment variable |
| 2 | make SCHEMA=… |
| 3 | Default ../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.
| Target | Output |
|---|---|
make demo-arm64 / demo-x86_64 | demo/dist/darwin-*/Settings.app + Resources/config.toml |
make demo-win | demo/dist/windows-x86_64/ + config.toml |
make demo-linux | demo/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.tomlExit codes:
| Code | Meaning |
|---|---|
0 | Validation succeeded |
1 | Validation failed (the schema has a problem) |
2 | Usage error (e.g. invalid arguments) |