Repository navigation
Expand file tree
/
Copy pathelectron-builder.yml
More file actions
114 lines (114 loc) · 3.95 KB
/
Copy pathelectron-builder.yml
File metadata and controls
114 lines (114 loc) · 3.95 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
appId: com.prism.viewer
productName: Prism
directories:
buildResources: build
output: dist
files:
- '!**/.vscode/*'
- '!src/*'
- '!native/**'
- '!electron.vite.config.{js,ts,mjs,cjs}'
- '!{.eslintcache,.prettierrc.yaml,.prettierignore,eslint.config.js,tsconfig*.json}'
- '!{.git,.claude,docs,test}/*'
# Recording and render working files. Hundreds of megabytes of takes that have
# no business inside the app, and one corrupt one that stopped the build.
- '!.demo/**'
- '!.e2e/**'
- '!test-results/**'
- '!playwright-report/**'
- '!videos/**'
- '!tools/**'
- '!build/**'
- '!dist/**'
# node-pty is the app's first native module. Its .node binaries, the conpty
# helper dir and winpty-agent.exe must live on the real file system - Windows
# cannot spawn an exe or load a DLL out of an asar archive.
asarUnpack:
- node_modules/node-pty/**
# ...and it needs NO rebuild: 1.1.0 ships N-API prebuilds that load under this
# Electron unchanged (proved by the Task-1 smoke probe). Left on, the default
# @electron/rebuild insists on recompiling from source and dies in node-gyp.
npmRebuild: false
# The packed app is checked before the installer is made (2026-10-14): every
# package `dependencies` reaches must be in app.asar, or the build fails naming
# it. A junctioned node_modules once packed 60 of 246 and the app could not start.
afterPack: tools/check-packed.mjs
extraResources:
- from: vendor/everything
to: everything
filter:
- '**/*'
- '!.source'
- from: vendor/win-e
to: win-e
filter:
- PrismShortcut.exe
# The window-border helper (#189): compiled at build time so launch never
# waits on a PowerShell's stdin pipe.
- from: vendor/dwm
to: dwm
filter:
- PrismDwm.exe
# The native sweep box (#338): Prism's own N-API addon, built by
# tools/build-sweep.mjs. Outside the asar, since Windows cannot load a .node
# out of one; main loads resources\sweep\prism_sweep.node.
- from: vendor/sweep
to: sweep
filter:
- prism_sweep.node
- from: build/icon.ico
to: icon.ico
# One icon per ProgID, so a .zip opened with Prism does not wear the
# video icon in Explorer. assoc.nsh points each DefaultIcon here.
- from: build/icons
to: icons
# ffmpeg, for the audio Chromium will not decode (AC-3/E-AC-3, DTS, TrueHD).
# Fetched by tools/fetch-ffmpeg.mjs, never committed. BtbN's LGPL SHARED
# build: the DLLs are replaceable, which is what LGPL asks for.
- from: vendor/ffmpeg
to: bin
filter:
- '**/*'
- '!.source'
# The speech engine for the terminal's dictation (#162): whisper.cpp's
# official CPU build with Microsoft's C++ runtime beside it, fetched by the
# CORE's own script (node_modules/prism-term-core/tools/fetch-whisper.mjs)
# against a pinned SHA-256, so both apps ship the same bytes. A folder of its
# own, not bin/: its ggml DLLs must not sit among ffmpeg's.
- from: vendor/whisper
to: bin/whisper
filter:
- '**/*'
- '!.source'
# 7-Zip, for the archives Prism reads but does not write (7z, rar, tar, gz).
# 7z.exe alone cannot read rar - the format handlers live in 7z.dll.
- from: vendor/7zip
to: bin
filter:
- '**/*'
- '!.source'
# FluidSynth and a General MIDI soundfont: a .mid is a score, and nothing
# else here can make a sound from one.
- from: vendor/fluidsynth
to: bin
filter:
- '**/*'
- '!.source'
win:
icon: build/icon.ico
target:
- nsis
artifactName: ${productName}-Setup-${arch}-${version}.${ext}
nsis:
oneClick: false
perMachine: false
# Setup draws its own directory page (build/installer/pages.nsh), so MUI's is
# off. allowElevation off keeps it per-user, which is the only mode Prism has.
allowToChangeInstallationDirectory: false
allowElevation: false
include: build/installer.nsh
installerIcon: build/icon.ico
uninstallerIcon: build/icon.ico
installerHeaderIcon: build/icon.ico
createDesktopShortcut: false
createStartMenuShortcut: true