Settingsのビルド
ビルドはリポジトリのJustfileと,デモ用のdemo/Justfileで行います。初めて画面を作る場合は,使い始めるの最小例から進めてください。
ビルドホスト
Rust/Cargoとjustを用意します。Windowsではレシピ用のshをGit for Windowsから使います。
| ホスト | 主な用途 |
|---|---|
| macOS | macOS向けビルド。mingw-w64とGNUターゲットを用意したWindows向けクロスビルド |
| Linux | Linuxネイティブビルド。Windows向けGNUクロスビルドのレシピも用意 |
| Windows | MSVCツールチェーンによるWindowsネイティブビルド |
Windows向けGNUクロスビルドはx86_64-pc-windows-gnuターゲットを使います。Linux GUIはLinuxホスト上でビルドする構成です。アイコン生成にはImageMagick,配布パッケージの生成には対象に応じてdmgbuild・nfpmなども必要になります。日常の同梱用ビルドと,署名・配布パッケージ作成は別の作業です。
スキーマを指定する
| 優先順位 | just経由での指定 |
|---|---|
| 1 | 環境変数SETTINGS_SCHEMA |
| 2 | 環境変数SCHEMA |
| 3 | 既定の../schema.toml(リポジトリルートの1階層上) |
macOS・Linuxのシェルでの例です。パスに空白がある場合は引用符で囲みます。
just init
SETTINGS_SCHEMA="/path/with spaces/schema.toml" just binary
SCHEMA="/path/to/schema.toml" just check-schemaWindows PowerShellでは,環境変数を設定してから実行します。
$env:SETTINGS_SCHEMA = "C:\work\schema.toml"
just binaryjustを使わずcargo buildだけを実行し,SETTINGS_SCHEMAも指定しない場合のフォールバックはdemo/schema.tomlです。just経由の既定値とは異なります。環境変数の指定は,実行するシェルやビルド環境へ引き継がれます。
本番ビルド(Justfile)
以下はリポジトリルートで実行します。
| レシピ | 出力・役割 |
|---|---|
just init | アイコンフォントなどの派生アセットを準備・更新 |
just binary | ホスト向けの同梱用バイナリー。target/release/settings,Windowsではsettings.exe |
just check-schema | 指定したスキーマの静的検証。GUIのビルドは不要 |
just settings-darwin-build-arm64 | dist/settings/darwin-arm64/Settings.app |
just settings-darwin-build-x86_64 | dist/settings/darwin-x86_64/Settings.app |
just settings-win-build | dist/settings/windows-x86_64/Settings.exe |
just settings-linux-build | dist/settings/linux-x86_64/settings |
just checker-darwin-build-arm64 | dist/settings-schema-checker/darwin-arm64/ |
just checker-win-build | dist/settings-schema-checker/windows-x86_64/ |
just checker-linux-build | dist/settings-schema-checker/linux-x86_64/ |
just initは初回やアイコン変更後に使います。通常のビルドにも必要アセットを補う処理があります。アイコンの種類はICON_STYLE=outlinedなどで指定できます。
just binaryのスキーマはビルド時に埋め込まれます。起動時に渡すのは編集対象の設定ファイルであり,スキーマのパスではありません。
旧Makefileは移行用に残っていますが,新しい手順ではjustを使用します。
デモGUIのビルド(demo/Justfile)
demo/へ移動して実行します。デモのschema.tomlを埋め込み,編集用のconfig.tomlも同梱します。checkerはデモのビルド対象には含まれません。
| レシピ | 出力・役割 |
|---|---|
just init | デモ用アセットを準備。macOSではアイコンのICNSも更新 |
just dev | 現在のプラットフォーム向け開発ビルド |
just darwin-build-arm64 | demo/dist/darwin-arm64/Settings.app |
just darwin-build-x86_64 | demo/dist/darwin-x86_64/Settings.app |
just win-build | demo/dist/windows-x86_64/に実行ファイルと設定を配置 |
just linux-build | demo/dist/linux-x86_64/に実行ファイルと設定を配置 |
cd demo
just init
just devmacOSのデモでは設定がContents/Resources/config.tomlに入り,Windows・Linuxでは実行ファイルの隣に置かれます。OSごとの起動時のパス解決は組み込みを参照してください。
settings-schema-checker
スキーマ作者やCI向けの検証CLIです。GUIと異なりスキーマを埋め込まず,実行時にパスを受け取ります。TOML構文,制約の参照,CEL式,選択肢の制御,マイグレーション定義などを検査します。
settings-schema-checker "/path/to/schema.toml"ソースから検証だけを実行することもできます。
cargo run -p settings-schema --bin settings-schema-checker -- "/path/to/schema.toml"| 終了コード | 意味 |
|---|---|
0 | 検証成功 |
1 | 検証失敗,またはファイル読み込みなどのエラー |
2 | 必須のパス引数がない |
配布物を確認する
GitHub Releasesでは,checkerとデモGUIを配布します。独自スキーマを組み込んだ本番GUIは,親アプリ側でビルドするのが基本です。
公開済みv0.2.6には,macOSのDMGとchecker ZIP,WindowsのZIP,LinuxのZIP・debがあります。macOSはarm64とx86_64,Windows・Linuxはx86_64のファイルを確認しています。デモのLinux AppImage作成レシピもありますが,この版の公開アセットには含まれていません。レシピが存在することと,配布済みであることは区別してください。