appId: superProductivity
productName: Super Productivity
artifactName: ${name}-${arch}.${ext}

files:
  - electron/**/*
  - '!electron/**/*.ts'
  - '!electron/**/*.js.map'
  - .tmp/angular-dist/**/*
  - 'embedded.provisionprofile'
  # Exclude Nx binaries - they're build tools, not runtime dependencies
  - '!**/@nx/nx-darwin-*/**'
  - '!**/@nx/nx-linux-*/**'
  - '!**/@nx/nx-win32-*/**'
#afterSign: ./tools/notarizeMacApp.js

directories:
  output: './.tmp/app-builds'

win:
  target:
    - target: nsis
      arch:
        - arm64
        - x64
    - target: portable
      arch:
        - arm64
        - x64
  publish:
    - github
nsis:
  artifactName: ${productName} Setup-${arch}.${ext}
portable:
  artifactName: ${name}-${arch}.${ext}
appx:
  applicationId: SuperProductivity
  displayName: Super Productivity
  publisherDisplayName: johannesjo
  publisher: CN=___-___
  identityName: ___johannesjo.SuperProductivity

linux:
  # Fix for issue #5259: Set executable name without spaces for snap compatibility
  executableName: superproductivity
  category: Office;ProjectManagement
  target:
    - AppImage
    - deb
    - snap
    - rpm
  publish:
    - github

rpm:
  # Fix for issue #5368: Prevent /usr/lib/.build-id/ collisions with other Electron apps
  fpm: ['--rpm-rpmbuild-define=_build_id_links none']
# leads to Error: Please specify executable name as linux.executableName instead of linux.desktop.Exec
#  desktop:
#    Name: Super Productivity
#    Comment: A todo list and time tracking app
#    Exec: superProductivity
#    Terminal: false
#    Type: Application
#    Icon: build/icon.png
#    GenericName: ToDo List and Time Tracker

snap:
  grade: stable
  allowNativeWayland: true
  autoStart: true
  base: core22
  confinement: strict
  environment:
    # Fix for issue #4920: Isolate fontconfig cache to prevent GTK dialog rendering issues
    # https://github.com/super-productivity/super-productivity/issues/4920
    FC_CACHEDIR: $SNAP_USER_DATA/.cache/fontconfig
  plugs:
    - default # Includes: home, desktop, desktop-legacy, x11, wayland, etc.
    - password-manager-service
    - system-observe
    - login-session-observe
    # Fix for issue #6031: Add filesystem access for local file sync
    # https://github.com/super-productivity/super-productivity/issues/6031
    - removable-media # Allows sync to external drives/USB storage

flatpak:
  runtimeVersion: '23.08'
  finishArgs:
    - --share=network
    - --share=ipc
    - --socket=x11
    - --socket=wayland
    - --socket=fallback-x11
    - --socket=pulseaudio
    - --device=dri
    - --filesystem=home
    - --talk-name=org.gnome.Mutter.IdleMonitor
    - --system-talk-name=org.freedesktop.login1

mac:
  appId: com.super-productivity.app
  type: distribution
  category: public.app-category.productivity
  entitlements: build/entitlements.mac.plist
  entitlementsInherit: build/entitlements.mac.plist
  icon: build/icon-mac.icns
  hardenedRuntime: true
  gatekeeperAssess: false
  provisioningProfile: embedded.provisionprofile
  darkModeSupport: true
  notarize: true
  extendInfo:
    ITSAppUsesNonExemptEncryption: false
  publish:
    - github
  target:
    #    - zip
    - target: dmg
      arch:
        - arm64
        - x64
        - universal

dmg:
  sign: true
  publish:
    - github

pkg:
  publish: never
# HERE: electron-builder.mas.yaml
#mas:
#  type: distribution
#  category: public.app-category.productivity
#  entitlements: build/entitlements.mas.plist
#  entitlementsInherit: build/entitlements.mas.inherit.plist
#  provisioningProfile: prod.provisionprofile
#  icon: build/icon.icns
#  hardenedRuntime: true
#  publish: never
