From 4321db401c61625bc2627b91c59d499edc3cb146 Mon Sep 17 00:00:00 2001 From: Jeremy Apthorp Date: Tue, 15 May 2018 09:31:13 -0700 Subject: [PATCH] Build node by calling ./configure --- build/node/BUILD.gn | 43 ++++-- build/node/node.gypi | 282 ---------------------------------- build/node/node_override.gypi | 32 ++++ 3 files changed, 63 insertions(+), 294 deletions(-) delete mode 100644 build/node/node.gypi create mode 100644 build/node/node_override.gypi diff --git a/build/node/BUILD.gn b/build/node/BUILD.gn index c9ecc148550..cdc3f624720 100644 --- a/build/node/BUILD.gn +++ b/build/node/BUILD.gn @@ -1,10 +1,35 @@ +action("configure_node") { + script = "//third_party/electron_node/configure" + args = [ + "--enable-static", + "--openssl-no-asm", + "--release-urlbase=https://atom.io/download/electron", + "--shared", + "--without-npm", + "--without-bundled-v8", + "--without-dtrace", + "--without-etw", + "--without-perfctr", + "--without-v8-platform", + "--without-intl", + "--prefix=", + "--config-out-dir=" + rebase_path(target_gen_dir), + "--no-run-gyp", + ] + outputs = [ + "$target_gen_dir/config.gypi", + ] +} + action("gyp_node") { script = "//tools/gyp/gyp_main.py" + deps = [ ":configure_node" ] inputs = [ "//third_party/electron_node/common.gypi", "//third_party/electron_node/node.gyp", "//third_party/electron_node/node.gypi", - "node.gypi", + "$target_gen_dir/config.gypi", + "node_override.gypi", ] outputs = [ "$target_out_dir/Release/build.ninja", @@ -17,19 +42,13 @@ action("gyp_node") { shlib_suffix = "so" } args = [ - "-I", rebase_path("toolchain.gypi", root_build_dir), - "-I", rebase_path("node.gypi", root_build_dir), + "-I", rebase_path("$target_gen_dir/config.gypi", root_build_dir), + "-I", rebase_path("node_override.gypi", root_build_dir), "-I", rebase_path("//third_party/electron_node/common.gypi", root_build_dir), - # TODO(jeremy): make these paths relative instead of absolute, to help - # caches. - "-D", "chromium_root_out_dir=" + rebase_path(root_out_dir), - "-D", "chromium_src_dir=" + rebase_path("//"), "-D", "component=shared_library", - "-D", "buildtype=Custom", - "-D", "target_arch=x64", - "-D", "host_arch=x64", - "-D", "shlib_suffix=$shlib_suffix", - "-D", "is_component_build=$is_component_build", + "-D", "target_arch=$target_cpu", + "-D", "host_arch=$host_cpu", + "-D", "config_gypi=" + rebase_path("$target_gen_dir/config.gypi"), "-Goutput_dir=./$target_out_dir", # bizarrely, gyp generates from the build root instead of from cwd "-fninja", rebase_path("//third_party/electron_node/node.gyp", root_build_dir), diff --git a/build/node/node.gypi b/build/node/node.gypi deleted file mode 100644 index 75d1e3ab11f..00000000000 --- a/build/node/node.gypi +++ /dev/null @@ -1,282 +0,0 @@ -{ - #'includes': [ 'v8.gypi' ], - 'variables': { - 'openssl_fips': '', - 'openssl_no_asm': 1, - 'use_openssl_def': 0, - 'openssl_product': 'libopenssl.a', - 'clang': 1, - # XXX(alexeykuzmin): Must match the clang version we use. See `clang -v`. - 'llvm_version': '6.0', - 'node_release_urlbase': 'https://atom.io/download/electron', - 'node_byteorder': '