From c0cfb15f7ff1a7642d9b7cde0d34a98aeef5cb0c Mon Sep 17 00:00:00 2001 From: bridiver Date: Mon, 16 Jan 2017 08:14:51 -0700 Subject: [PATCH] build chromedriver without muon_build auditors: @bbondy --- lib/util.js | 43 ++++++++++++++++++++++++++++++++++++++++++ scripts/build.js | 44 +++++++------------------------------------ scripts/createDist.js | 3 ++- 3 files changed, 52 insertions(+), 38 deletions(-) diff --git a/lib/util.js b/lib/util.js index 73c7260e7..293f65c6c 100644 --- a/lib/util.js +++ b/lib/util.js @@ -47,6 +47,49 @@ const util = { fs.writeFileSync(config.defaultGClientFile, out) }, + updateBranding: () => { + console.log('update branding...') + const braveThemeDir = path.join(config.srcDir, 'chrome', 'app', 'theme', 'brave') + fs.ensureDirSync(braveThemeDir) + fs.copySync(path.join(config.resourcesDir, 'BRANDING'), path.join(braveThemeDir, 'BRANDING')) + }, + + buildNode: (options = config.defaultOptions) => { + console.log('building node...') + fs.copySync(path.join(config.resourcesDir, 'node_config.gypi'), path.join(config.projects.node.dir, 'config.gypi')) + + options.env.GYP_INCLUDE_LAST = 'electron/build/node/node.gypi' + options.env.GYP_CHROMIUM_NO_ACTION = 0 + options.env = config.addPathToEnv(options.env, config.buildToolsDir) + util.run('python', [path.join(config.buildToolsDir, 'gyp_chromium.py'), + '-D', 'target_arch=' + config.gypTargetArch, + '-D', 'host_arch=x64', + '-D', 'buildtype=Custom', // don't apply Dev or Official configs + '-D', 'component=' + config.component, + '-Goutput_dir=' + config.outputDir.split(path.sep).slice(0, -1).join(path.sep), + path.join(config.projects.node.dir, 'node.gyp')], options) + util.run('ninja', ['-C', config.outputDir, 'node'], options) + }, + + buildChromedriver: (options = config.defaultOptions) => { + console.log('building chromedriver...') + let buildArgs = config.buildArgs() + buildArgs.muon_build = false + let outputDir = path.join(config.outputDir.split(path.sep).slice(0, -1).join(path.sep), 'Chromedriver') + + const args = util.buildArgsToString(buildArgs) + util.run('gn', ['gen', outputDir, '--args="' + args + '"'], options) + util.run('ninja', ['-C', outputDir, 'build_chromedriver'], options) + }, + + buildMuon: (options = config.defaultOptions) => { + console.log('building muon...') + + const args = util.buildArgsToString(config.buildArgs()) + util.run('gn', ['gen', config.outputDir, '--args="' + args + '"'], options) + util.run('ninja', ['-C', config.outputDir, 'electron'], options) + }, + submoduleSync: (options = { cwd: config.rootDir }) => { options = mergeWithDefault(options) util.run('git', ['submodule', 'sync'], options) diff --git a/scripts/build.js b/scripts/build.js index 4166304d2..509c3a57c 100644 --- a/scripts/build.js +++ b/scripts/build.js @@ -9,6 +9,7 @@ program .option('-C ', 'build config (out/Debug, out/Release') .option('--muon', 'build muon') .option('--node', 'build node') + .option('--chromedriver', 'build chromedriver') .option('--target_arch ', 'target architecture', 'x64') .option('--electron_google_api_key ') .option('--electron_google_api_endpoint ') @@ -21,50 +22,19 @@ program config.update(program) -const updateBranding = () => { - console.log('update branding...') - const braveThemeDir = path.join(config.srcDir, 'chrome', 'app', 'theme', 'brave') - fs.ensureDirSync(braveThemeDir) - fs.copySync(path.join(config.resourcesDir, 'BRANDING'), path.join(braveThemeDir, 'BRANDING')) -} - -const buildNode = (options = config.defaultOptions) => { - console.log('building node...') - fs.copySync(path.join(config.resourcesDir, 'node_config.gypi'), path.join(config.projects.node.dir, 'config.gypi')) - - options.env.GYP_INCLUDE_LAST = 'electron/build/node/node.gypi' - options.env.GYP_CHROMIUM_NO_ACTION = 0 - options.env = config.addPathToEnv(options.env, config.buildToolsDir) - util.run('python', [path.join(config.buildToolsDir, 'gyp_chromium.py'), - '-D', 'target_arch=' + config.gypTargetArch, - '-D', 'host_arch=x64', - '-D', 'buildtype=Custom', // don't apply Dev or Official configs - '-D', 'component=' + config.component, - '-Goutput_dir=' + config.outputDir.split(path.sep).slice(0, -1).join(path.sep), - path.join(config.projects.node.dir, 'node.gyp')], options) - util.run('ninja', ['-C', config.outputDir, 'node'], options) -} - -const buildMuon = (options = config.defaultOptions) => { - console.log('building muon...') - - const args = util.buildArgsToString(config.buildArgs()) - util.run('gn', ['gen', config.outputDir, '--args="' + args + '"'], options) - util.run('ninja', ['-C', config.outputDir, 'electron'], options) +if (program.chromedriver) { + util.buildChromedriver() + return } if (!program.no_branding_update) { - updateBranding() + util.updateBranding() } if (!program.muon) { - buildNode() + util.buildNode() } if (!program.node) { - buildMuon() + util.buildMuon() } - - - - diff --git a/scripts/createDist.js b/scripts/createDist.js index a459587f7..515fa243f 100644 --- a/scripts/createDist.js +++ b/scripts/createDist.js @@ -13,5 +13,6 @@ config.buildConfig = 'Release' let options = config.defaultOptions const args = util.buildArgsToString(config.buildArgs()) +util.buildChromedriver() util.run('gn', ['gen', config.outputDir, '--args="' + args + '"'], options) -util.run('ninja', ['-C', config.outputDir, 'create_dist'], options) \ No newline at end of file +util.run('ninja', ['-C', config.outputDir, 'create_dist'], options)