| 1 | appId: com.ohmyppt.app |
| 2 | productName: OhMyPPT |
| 3 | directories: |
| 4 | buildResources: build |
| 5 | files: |
| 6 | - '!**/.DS_Store' |
| 7 | - '!**/._*' |
| 8 | # ffmpeg is copied by build/after-pack.cjs per platform so unused binaries are not bundled. |
| 9 | # Linux currently has no bundled ffmpeg binary in resources/ffmpeg; MP4 export needs a Linux |
| 10 | # ffmpeg asset before Linux video export can be enabled in packaged apps. |
| 11 | - '!resources/ffmpeg/**' |
| 12 | - '!**/.vscode/*' |
| 13 | - '!**/.idea/**' |
| 14 | - '!**/.git/**' |
| 15 | - '!src/**' |
| 16 | - '!tools/**' |
| 17 | - '!scripts/**' |
| 18 | - '!assets/**' |
| 19 | - '!docs/**' |
| 20 | - '!doc/**' |
| 21 | - '!logs/**' |
| 22 | - '!patch/**' |
| 23 | - '!tpack/**' |
| 24 | - '!dist/**' |
| 25 | - '!.claude/**' |
| 26 | - '!.pnpm-store/**' |
| 27 | - '!electron.vite.config.{js,ts,mjs,cjs}' |
| 28 | - '!{.eslintcache,eslint.config.mjs,.prettierignore,.prettierrc.yaml,dev-app-update.yml,CHANGELOG.md,README.md}' |
| 29 | - '!README_*' |
| 30 | - '!{.env,.env.*,.npmrc,pnpm-lock.yaml}' |
| 31 | - '!{tsconfig.json,tsconfig.node.json,tsconfig.web.json}' |
| 32 | - '!**/*.map' |
| 33 | - '!**/*.tsbuildinfo' |
| 34 | - '!*.db' |
| 35 | - '!*.db-*' |
| 36 | - '!{ohmyppt.dev.db,ohmyppt.db}' |
| 37 | - '!thumb.png' |
| 38 | - '!tests/**' |
| 39 | - '!test/**' |
| 40 | asarUnpack: |
| 41 | - resources/** |
| 42 | - node_modules/@node-rs/**/*.node |
| 43 | afterPack: build/after-pack.cjs |
| 44 | extraResources: |
| 45 | - from: build/icons/icon.ico |
| 46 | to: icons/icon.ico |
| 47 | - from: build/icons/32x32.png |
| 48 | to: icons/32x32.png |
| 49 | - from: build/icons/16x16.png |
| 50 | to: icons/16x16.png |
| 51 | forceCodeSigning: false |
| 52 | win: |
| 53 | target: |
| 54 | - target: nsis |
| 55 | arch: |
| 56 | - x64 |
| 57 | executableName: ohmyppt |
| 58 | icon: build/icons/icon.ico |
| 59 | nsis: |
| 60 | artifactName: ${name}-${version}-setup.${ext} |
| 61 | shortcutName: ${productName} |
| 62 | uninstallDisplayName: ${productName} |
| 63 | createDesktopShortcut: always |
| 64 | installerIcon: build/icons/icon.ico |
| 65 | uninstallerIcon: build/icons/icon.ico |
| 66 | installerHeaderIcon: build/icons/icon.ico |
| 67 | unicode: true |
| 68 | warningsAsErrors: false |
| 69 | runAfterFinish: false |
| 70 | oneClick: false |
| 71 | perMachine: false |
| 72 | allowToChangeInstallationDirectory: true |
| 73 | allowElevation: true |
| 74 | createStartMenuShortcut: true |
| 75 | include: installer.nsh |
| 76 | mac: |
| 77 | target: |
| 78 | - target: dmg |
| 79 | arch: |
| 80 | - x64 |
| 81 | - arm64 |
| 82 | icon: build/icons/icon.icns |
| 83 | identity: null |
| 84 | extendInfo: |
| 85 | - NSCameraUsageDescription: Application requests access to the device's camera. |
| 86 | - NSMicrophoneUsageDescription: Application requests access to the device's microphone. |
| 87 | - NSDocumentsFolderUsageDescription: Application requests access to the user's Documents folder. |
| 88 | - NSDownloadsFolderUsageDescription: Application requests access to the user's Downloads folder. |
| 89 | notarize: false |
| 90 | dmg: |
| 91 | artifactName: ${name}-${version}-${arch}.${ext} |
| 92 | linux: |
| 93 | # Packaging metadata is ready for Linux, but resources/ffmpeg currently only contains |
| 94 | # macOS and Windows binaries. build/after-pack.cjs already looks for ffmpeg-linux-x64; |
| 95 | # add that binary before advertising MP4 export support for Linux packages. |
| 96 | executableName: ohmyppt |
| 97 | target: |
| 98 | - target: AppImage |
| 99 | arch: |
| 100 | - x64 |
| 101 | - target: deb |
| 102 | arch: |
| 103 | - x64 |
| 104 | icon: build/icons |
| 105 | maintainer: arcsin1 |
| 106 | vendor: arcsin1 |
| 107 | category: Office |
| 108 | synopsis: Local-first AI presentation workbench |
| 109 | description: Oh My PPT is a local-first AI presentation generator and editor. |
| 110 | appImage: |
| 111 | artifactName: ${name}-${version}-${arch}.${ext} |
| 112 | deb: |
| 113 | artifactName: ${name}-${version}-${arch}.${ext} |
| 114 | depends: |
| 115 | - libgtk-3-0 |
| 116 | - libnotify4 |
| 117 | - libnss3 |
| 118 | - libxss1 |
| 119 | - libxtst6 |
| 120 | - xdg-utils |
| 121 | npmRebuild: false |
| 122 | publish: |
| 123 | provider: generic |
| 124 | url: https://example.com/auto-updates |
| 125 | electronDownload: |
| 126 | mirror: https://npmmirror.com/mirrors/electron/ |
| 127 |