build-native.mjs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. #!/usr/bin/env node
  2. import { rebuild } from '@electron/rebuild'
  3. import * as path from 'path'
  4. import * as vars from './vars.mjs'
  5. import * as url from 'url'
  6. const __dirname = url.fileURLToPath(new URL('.', import.meta.url))
  7. if (process.platform === 'win32' || process.platform === 'linux') {
  8. process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
  9. } else {
  10. process.env.ARCH ??= process.arch
  11. }
  12. let lifecycles = []
  13. for (let dir of ['app', 'tabby-core', 'tabby-local', 'tabby-ssh', 'tabby-terminal']) {
  14. const build = rebuild({
  15. buildPath: path.resolve(__dirname, '../' + dir),
  16. electronVersion: vars.electronVersion,
  17. arch: process.env.ARCH,
  18. force: true,
  19. })
  20. build.catch(e => {
  21. console.error(e)
  22. process.exit(1)
  23. })
  24. lifecycles.push([build.lifecycle, dir])
  25. }
  26. console.info('Building against Electron', vars.electronVersion)
  27. for (let [lc, dir] of lifecycles) {
  28. lc.on('module-found', name => {
  29. console.info('Rebuilding', dir + '/' + name)
  30. })
  31. }