diff --git a/README.md b/README.md index 98f12f4..eaff0e0 100644 --- a/README.md +++ b/README.md @@ -321,9 +321,25 @@ scripts/gen_icons.py Regenerates src-tauri/icons/ from the real logo mark ## Building Prerequisites: Rust (stable) + Cargo, Node.js 18+, and Tauri's platform prerequisites -(see https://v2.tauri.app/start/prerequisites/ — on Linux this means -`libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev librsvg2-dev` and a C -toolchain; macOS/Windows need Xcode / the VS Build Tools + WebView2 respectively). +(see https://v2.tauri.app/start/prerequisites/ for the full, up-to-date list). + +**Linux:** `libwebkit2gtk-4.1-dev libgtk-3-dev libayatana-appindicator3-dev +librsvg2-dev` plus a C toolchain (`build-essential` on Debian/Ubuntu). Bundling the +installers additionally needs `patchelf` (for the `.deb`/`.rpm`) — `npm run tauri build` +will also download a few small `linuxdeploy` helper tools from GitHub the first time it +builds an `.AppImage`, so a network connection is needed for that step. + +**macOS:** Xcode (or at least the Xcode Command Line Tools — `xcode-select --install`). +No other system packages are needed. + +**Windows:** Rust via [rustup](https://rustup.rs/), using the default MSVC toolchain +(not the GNU one). [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio) +(or full Visual Studio) with the **"Desktop development with C++"** workload, which +provides the linker Rust's MSVC toolchain needs. The **WebView2 Runtime** — this is +already preinstalled on any up-to-date Windows 10/11 machine, so you usually don't need +to do anything; if you hit a WebView2-related error, grab the Evergreen bootstrapper from +Microsoft. You do **not** need to separately install NSIS or WiX — Tauri's bundler +downloads NSIS automatically the first time it builds the `.exe` installer. ```sh # Rust core (no UI deps needed): @@ -337,14 +353,20 @@ npm run tauri dev npm run tauri build ``` -Verified in the environment this was built in: `cargo test --workspace` (all 160 -passing, including the TMDB, TVmaze, OMDb, and OpenSubtitles client tests — those run -against a local mock HTTP server via `mockito`, no live network or API key needed to -build/test), `cargo -check -p aurora-curator` (compiles clean against real Tauri + GTK/WebKit system -libraries), and `npm run build` (TypeScript type-checks, Vite bundles). The actual GUI -window has **not** been visually verified anywhere yet — that sandbox has no display. -Run `npm run tauri dev` on your machine to see and click through it for the first time. +`npm run tauri build` produces a native installer for whichever OS you run it on — there +is no cross-compilation; build on Windows to get a `.exe`/`.msi`, on Linux for +`.deb`/`.rpm`/`.AppImage`, on macOS for a `.app`/`.dmg`. + +Verified so far: `cargo test --workspace` (199 tests passing, including the TMDB, +TVmaze, OMDb, and OpenSubtitles client tests — those run against a local mock HTTP +server via `mockito`, no live network or API key needed to build/test), `cargo check -p +aurora-curator` (compiles clean against real Tauri + GTK/WebKit system libraries), and +`npm run build` (TypeScript type-checks, Vite bundles). The production build +(`npm run tauri build`) has been run end-to-end and the resulting app **launches and +runs correctly outside of dev mode** on both macOS (`.app`, confirmed by hand) and Linux +(`.deb`/`.rpm`/`.AppImage`, built and smoke-tested in a real Ubuntu environment). Windows +is the one platform not yet built/verified — if you hit anything building there, please +open an issue. ### Setting up metadata sources (for "Fetch Data")