Browse Source

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 <info@bnoordhuis.nl>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
v6
Refael Ackermann 8 years ago
parent
commit
4aff0563aa
  1. 5
      configure
  2. 18
      tools/gyp_node.py

5
configure

@ -40,6 +40,7 @@ import nodedownload
# imports in tools/ # imports in tools/
sys.path.insert(0, os.path.join(root_dir, 'tools')) sys.path.insert(0, os.path.join(root_dir, 'tools'))
import getmoduleversion import getmoduleversion
from gyp_node import run_gyp
# parse our options # parse our options
parser = optparse.OptionParser() parser = optparse.OptionParser()
@ -1380,7 +1381,7 @@ config = '\n'.join(map('='.join, config.iteritems())) + '\n'
write('config.mk', do_not_edit + config) 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: if options.use_xcode:
gyp_args += ['-f', 'xcode'] gyp_args += ['-f', 'xcode']
@ -1399,4 +1400,4 @@ gyp_args += args
if warn.warned: if warn.warned:
warn('warnings were emitted in the configure phase') warn('warnings were emitted in the configure phase')
sys.exit(subprocess.call(gyp_args)) run_gyp(gyp_args)

18
tools/gyp_node.py

@ -13,14 +13,6 @@ import gyp
output_dir = os.path.join(os.path.abspath(node_root), 'out') output_dir = os.path.join(os.path.abspath(node_root), 'out')
def run_gyp(args): 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. # GYP bug.
# On msvs it will crash if it gets an absolute path. # 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. # On Mac/make it will crash if it doesn't get an absolute path.
@ -63,5 +55,11 @@ if __name__ == '__main__':
args.append('-Dlinux_use_bundled_gold=0') args.append('-Dlinux_use_bundled_gold=0')
args.append('-Dlinux_use_gold_flags=0') args.append('-Dlinux_use_gold_flags=0')
gyp_args = list(args) rc = gyp.main(args)
run_gyp(gyp_args) if rc != 0:
print 'Error running GYP'
sys.exit(rc)
if __name__ == '__main__':
run_gyp(sys.argv[1:])

Loading…
Cancel
Save