build-native.mjs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  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. const __dirname = path.dirname(new URL(import.meta.url).pathname)
  6. if (process.platform === 'win32' || process.platform === 'linux') {
  7. process.env.ARCH = ((process.env.ARCH || process.arch) === 'arm') ? 'armv7l' : process.env.ARCH || process.arch
  8. } else {
  9. process.env.ARCH ??= process.arch
  10. }
  11. let lifecycles = []
  12. for (let dir of ['app', 'tabby-core', 'tabby-local', 'tabby-ssh', 'tabby-terminal']) {
  13. const build = rebuild({
  14. buildPath: path.resolve(__dirname, '../' + dir),
  15. electronVersion: vars.electronVersion,
  16. arch: process.env.ARCH,
  17. force: true,
  18. })
  19. build.catch(e => {
  20. console.error(e)
  21. process.exit(1)
  22. })
  23. lifecycles.push([build.lifecycle, dir])
  24. }
  25. console.info('Building against Electron', vars.electronVersion)
  26. for (let [lc, dir] of lifecycles) {
  27. lc.on('module-found', name => {
  28. console.info('Rebuilding', dir + '/' + name)
  29. })
  30. }