mirror of
https://github.com/arsvendg/Stirling-PDF.git
synced 2026-07-14 10:34:06 +02:00
125 lines
3.5 KiB
YAML
125 lines
3.5 KiB
YAML
version: '3'
|
|
|
|
vars:
|
|
JLINK_MODULES: "java.base,java.compiler,java.desktop,java.instrument,java.logging,java.management,java.naming,java.net.http,java.prefs,java.rmi,java.scripting,java.security.jgss,java.security.sasl,java.sql,java.transaction.xa,java.xml,java.xml.crypto,jdk.crypto.ec,jdk.crypto.cryptoki,jdk.unsupported"
|
|
|
|
tasks:
|
|
prepare:
|
|
desc: "Prepare desktop build dependencies"
|
|
deps:
|
|
- jlink
|
|
- task: ":frontend:prepare"
|
|
vars: { MODE: desktop }
|
|
- provisioner
|
|
|
|
provisioner:
|
|
desc: "Build installer provisioner"
|
|
platforms: [windows]
|
|
cmds:
|
|
- node scripts/build-provisioner.mjs
|
|
|
|
dev:
|
|
desc: "Start Tauri desktop dev mode"
|
|
deps: [prepare]
|
|
ignore_error: true
|
|
cmds:
|
|
- npx tauri dev --no-watch
|
|
|
|
build:
|
|
desc: "Build Tauri desktop app (production)"
|
|
deps: [prepare]
|
|
cmds:
|
|
- npx tauri build
|
|
|
|
build:dev:
|
|
desc: "Build Tauri desktop app (dev, no bundling)"
|
|
deps: [prepare]
|
|
cmds:
|
|
- npx tauri build --no-bundle
|
|
|
|
build:dev:mac:
|
|
desc: "Build Tauri desktop .app bundle (macOS)"
|
|
deps: [prepare]
|
|
cmds:
|
|
- npx tauri build --bundles app
|
|
|
|
build:dev:windows:
|
|
desc: "Build Tauri desktop NSIS installer (Windows)"
|
|
deps: [prepare]
|
|
cmds:
|
|
- npx tauri build --bundles nsis
|
|
|
|
build:dev:linux:
|
|
desc: "Build Tauri desktop AppImage (Linux)"
|
|
deps: [prepare]
|
|
cmds:
|
|
- npx tauri build --bundles appimage
|
|
|
|
clean:
|
|
desc: "Clean Tauri/Cargo build artifacts"
|
|
cmds:
|
|
- task: jlink:clean
|
|
- cd src-tauri && cargo clean
|
|
- rm -rf dist build
|
|
|
|
# ============================================================
|
|
# JLink — Build bundled Java runtime for Tauri
|
|
# ============================================================
|
|
|
|
jlink:
|
|
desc: "Build backend JAR and create JLink runtime for Tauri"
|
|
deps: [jlink:jar, jlink:runtime]
|
|
|
|
jlink:jar:
|
|
desc: "Build backend JAR for Tauri bundling"
|
|
run: once
|
|
dir: ..
|
|
env:
|
|
DISABLE_ADDITIONAL_FEATURES: "true"
|
|
cmds:
|
|
- cmd: cmd /c gradlew.bat bootJar --no-daemon
|
|
platforms: [windows]
|
|
- cmd: ./gradlew bootJar --no-daemon
|
|
platforms: [linux, darwin]
|
|
- mkdir -p frontend/src-tauri/libs
|
|
- cp app/core/build/libs/stirling-pdf-*.jar frontend/src-tauri/libs/
|
|
status:
|
|
- test -f frontend/src-tauri/libs/stirling-pdf-*.jar
|
|
|
|
jlink:runtime:
|
|
desc: "Create custom JRE with jlink"
|
|
deps: [jlink:jar]
|
|
cmds:
|
|
- rm -rf src-tauri/runtime/jre
|
|
- mkdir -p src-tauri/runtime
|
|
- >-
|
|
jlink
|
|
--add-modules {{.JLINK_MODULES}}
|
|
--strip-debug
|
|
--compress=zip-6
|
|
--no-header-files
|
|
--no-man-pages
|
|
--output src-tauri/runtime/jre
|
|
status:
|
|
- test -d src-tauri/runtime/jre
|
|
|
|
jlink:clean:
|
|
desc: "Remove JLink runtime and bundled JARs"
|
|
cmds:
|
|
- rm -rf src-tauri/libs src-tauri/runtime
|
|
|
|
# macOS-only. Replaces jlink:runtime's single-arch JRE with a universal
|
|
# (arm64 + x86_64) one for the universal Tauri shell. Runs the x86_64
|
|
# jlink under Rosetta on Apple Silicon, so it is opt-in and not part of
|
|
# the default desktop:build flow. Requires AARCH64_JAVA_HOME and
|
|
# X64_JAVA_HOME to point at matching JDK installations with jmods/.
|
|
jlink:universal-mac:
|
|
desc: "Create universal (arm64+x86_64) JRE for the macOS Tauri build"
|
|
deps: [jlink:jar]
|
|
platforms: [darwin]
|
|
env:
|
|
JLINK_MODULES: "{{.JLINK_MODULES}}"
|
|
OUTPUT_DIR: src-tauri/runtime/jre
|
|
cmds:
|
|
- scripts/build-universal-mac-jre.sh
|