gn-check.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. /*
  2. Usage:
  3. $ node ./script/gn-check.js [--outDir=dirName]
  4. */
  5. const minimist = require('minimist');
  6. const cp = require('node:child_process');
  7. const path = require('node:path');
  8. const args = minimist(process.argv.slice(2), { string: ['outDir'] });
  9. const { getOutDir } = require('./lib/utils');
  10. const SOURCE_ROOT = path.normalize(path.dirname(__dirname));
  11. const DEPOT_TOOLS = path.resolve(SOURCE_ROOT, '..', 'third_party', 'depot_tools');
  12. const OUT_DIR = getOutDir({ outDir: args.outDir });
  13. if (!OUT_DIR) {
  14. throw new Error('No viable out dir: one of Debug, Testing, or Release must exist.');
  15. }
  16. const env = {
  17. CHROMIUM_BUILDTOOLS_PATH: path.resolve(SOURCE_ROOT, '..', 'buildtools'),
  18. DEPOT_TOOLS_WIN_TOOLCHAIN: '0',
  19. ...process.env
  20. };
  21. // Users may not have depot_tools in PATH.
  22. env.PATH = `${env.PATH}${path.delimiter}${DEPOT_TOOLS}`;
  23. const gnCheckDirs = [
  24. '//electron:electron_lib',
  25. '//electron:electron_app',
  26. '//electron/shell/common/api:mojo'
  27. ];
  28. for (const dir of gnCheckDirs) {
  29. const args = ['check', `../out/${OUT_DIR}`, dir];
  30. const result = cp.spawnSync('gn', args, { env, stdio: 'inherit' });
  31. if (result.status !== 0) process.exit(result.status);
  32. }
  33. process.exit(0);