const path = require('path'); const redhatDependencies = require('electron-installer-redhat/src/dependencies'); const linuxIconSet = { '16x16': 'appicons/icons/png/16x16.png', '24x24': 'appicons/icons/png/24x24.png', '32x32': 'appicons/icons/png/32x32.png', '48x48': 'appicons/icons/png/48x48.png', '64x64': 'appicons/icons/png/64x64.png', '128x128': 'appicons/icons/png/128x128.png', '256x256': 'appicons/icons/png/256x256.png', '512x512': 'appicons/icons/png/512x512.png', }; const linuxDesktopTemplate = path.resolve(__dirname, 'packaging/linux/trimsp.desktop.ejs'); // The upstream RPM maker assumes Fedora-style package names. Mageia provides // GTK 3 under lib64gtk+3_0, so allow either name in the generated Requires. redhatDependencies.dependencyMap.gtk3 = '(gtk3 or lib64gtk+3_0)'; module.exports = { packagerConfig: { icon: 'appicons/icons/png/1024x1024.png', extraResource: ['resources/bin'], ignore: [ 'Readme.md', 'ToDo.txt', 'TrimSP.cfg', 'fortran/*', '\\.flatpak-builder($|/)', '\\.tmp-flatpak-manual($|/)', 'out-flatpak-test($|/)', ], }, makers: [ { name: '@electron-forge/maker-squirrel', config: { name: 'TrimSP', }, }, { name: '@electron-forge/maker-zip', platforms: ['darwin'], }, { name: '@electron-forge/maker-deb', config: { name: 'trimsp', productName: 'TrimSP', genericName: 'Ion implantation simulator', description: 'TRIM.SP simulation GUI for ion implantation studies.', categories: ['Science'], icon: linuxIconSet, desktopTemplate: linuxDesktopTemplate, }, }, { name: '@electron-forge/maker-rpm', config: { name: 'trimsp', productName: 'TrimSP', genericName: 'Ion implantation simulator', description: 'TRIM.SP simulation GUI for ion implantation studies.', categories: ['Science'], icon: linuxIconSet, desktopTemplate: linuxDesktopTemplate, }, }, { name: '@electron-forge/maker-flatpak', config: { options: { id: 'ch.psi.lem.TrimSP', productName: 'TrimSP', genericName: 'Ion implantation simulator', description: 'TRIM.SP simulation GUI for ion implantation studies.', baseVersion: '24.08', runtimeVersion: '24.08', extraFlatpakBuilderArgs: ['--state-dir=.flatpak-builder'], icon: linuxIconSet, modules: [], categories: ['Science'], finishArgs: [ '--share=ipc', '--share=network', '--socket=x11', '--socket=wayland', '--device=dri', '--filesystem=home', '--filesystem=/tmp', ], }, }, }, ], };