From efc0f64c179fc2dc8e1bff823f2f38daedbbaca9 Mon Sep 17 00:00:00 2001 From: Refael Ackermann Date: Tue, 25 Apr 2017 17:36:50 -0400 Subject: [PATCH] build: reduce one level of spawning in node_gyp `configure` will now call `node_gyp` as a module instead of forking makes it easier to debug PR-URL: https://github.com/nodejs/node/pull/12653 Reviewed-By: Ben Noordhuis Reviewed-By: Gibson Fahnestock --- configure | 5 +++-- tools/gyp_node.py | 18 ++++++++---------- 2 files changed, 11 insertions(+), 12 deletions(-) diff --git a/configure b/configure index 3948f18bcac7f4..1c2ee81cdafb4c 100755 --- a/configure +++ b/configure @@ -40,6 +40,7 @@ import nodedownload # imports in tools/ sys.path.insert(0, os.path.join(root_dir, 'tools')) import getmoduleversion +from gyp_node import run_gyp # parse our options parser = optparse.OptionParser() @@ -1370,7 +1371,7 @@ config = '\n'.join(map('='.join, config.iteritems())) + '\n' write('config.mk', do_not_edit + config) -gyp_args = [sys.executable, 'tools/gyp_node.py', '--no-parallel'] +gyp_args = ['--no-parallel'] if options.use_xcode: gyp_args += ['-f', 'xcode'] @@ -1389,4 +1390,4 @@ gyp_args += args if warn.warned: warn('warnings were emitted in the configure phase') -sys.exit(subprocess.call(gyp_args)) +run_gyp(gyp_args) diff --git a/tools/gyp_node.py b/tools/gyp_node.py index 1f0b2eaebe2c22..043053c3daa9d9 100755 --- a/tools/gyp_node.py +++ b/tools/gyp_node.py @@ -13,14 +13,6 @@ output_dir = os.path.join(os.path.abspath(node_root), 'out') def run_gyp(args): - rc = gyp.main(args) - if rc != 0: - print 'Error running GYP' - sys.exit(rc) - -if __name__ == '__main__': - args = sys.argv[1:] - # GYP bug. # On msvs it will crash if it gets an absolute path. # On Mac/make it will crash if it doesn't get an absolute path. @@ -58,5 +50,11 @@ def run_gyp(args): args.append('-Dlinux_use_bundled_gold=0') args.append('-Dlinux_use_gold_flags=0') - gyp_args = list(args) - run_gyp(gyp_args) + rc = gyp.main(args) + if rc != 0: + print 'Error running GYP' + sys.exit(rc) + + +if __name__ == '__main__': + run_gyp(sys.argv[1:])