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