Skip to content

Latest commit

 

History

History
117 lines (88 loc) · 2.73 KB

File metadata and controls

117 lines (88 loc) · 2.73 KB

SBaGenX GUI Scaffold

This directory contains the third-generation SBaGenX GUI effort.

Architecture

This GUI is intended to be:

  • a desktop application,
  • built with Tauri 2,
  • using a Svelte frontend,
  • backed directly by sbagenxlib,
  • not a frontend for the sbagenx CLI.

Current Status

The current scaffold provides:

  • a Tauri desktop shell,
  • a Svelte/Vite frontend,
  • a desktop-oriented multi-tab workspace shell,
  • a direct Rust bridge into sbagenxlib,
  • real .sbg / .sbgf validation,
  • live .sbg playback through sbagenxlib,
  • .sbg export through sbagenxlib.

The current UI is still incomplete, but it is no longer just a shell. The next major work is packaging and broader runtime coverage.

Development Commands

Install dependencies:

npm install

Run the frontend only:

npm run dev

Run the desktop app in development:

npm run tauri:dev

Build the frontend:

npm run build

Typecheck the frontend:

npm run check

Build the desktop app:

npm run tauri:build

Build the Windows GUI bundle on a Windows host from the repo root:

bash windows-build-gui.sh

The Windows GUI build script now tries to bootstrap missing prerequisites:

  • on MSYS2 shells, it prefers pacman for:
    • node
    • rust
    • the MinGW compilers required by windows-build-sbagenx.sh
  • if node or rust are still missing, it falls back to winget where available
  • it intentionally installs the actual toolchain/runtime rather than trying to install nvm
  • on MSYS2 GNU shells such as UCRT64, it prefers a native Windows Node.js installation for Tauri packaging instead of the MSYS2 GNU node runtime

Stage the current platform runtime libraries without building:

npm run prepare:runtime

Notes

  • The dev server is pinned to port 1420 to align with the Tauri configuration.
  • npm run tauri:build now stages runtime libraries into src-tauri/runtime-bundle/ before bundle creation.
  • Runtime staging is platform-specific:
    • Linux stages the newest stable libsbagenx.so.X.Y.Z from dist/ as libsbagenx.so.3, plus the codec/runtime shared libraries used by export and encoded mix playback
    • Windows stages the current win32 / win64 sbagenxlib DLL plus the codec/runtime DLLs it depends on
  • windows-build-gui.sh is intentionally separate from windows-build-sbagenx.sh.
    • the CLI/library build remains its own path
    • the GUI build reuses the Windows sbagenxlib artifacts, then runs the Tauri bundle build
    • staged Windows GUI artifacts are copied into dist/gui/
  • The packaged GUI still needs a full Windows installer validation pass.