mirror of
https://github.com/nodejs/node.git
synced 2024-11-21 21:19:50 +01:00
build: refactor configure.py to use argparse
Refs: https://github.com/nodejs/node/pull/26725 Fixes: https://github.com/nodejs/node/issues/29813 Refs: https://github.com/nodejs/node/pull/29814 PR-URL: https://github.com/nodejs/node/pull/35755 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Tobias Nießen <tniessen@tnie.de> Reviewed-By: Rich Trott <rtrott@gmail.com> Reviewed-By: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
e6e64f7a21
commit
f5a86b5e13
350
configure.py
350
configure.py
@ -3,7 +3,7 @@ from __future__ import print_function
|
||||
import json
|
||||
import sys
|
||||
import errno
|
||||
import optparse
|
||||
import argparse
|
||||
import os
|
||||
import pipes
|
||||
import pprint
|
||||
@ -41,7 +41,7 @@ import getnapibuildversion
|
||||
from gyp_node import run_gyp
|
||||
|
||||
# parse our options
|
||||
parser = optparse.OptionParser()
|
||||
parser = argparse.ArgumentParser()
|
||||
|
||||
valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux',
|
||||
'android', 'aix', 'cloudabi')
|
||||
@ -57,113 +57,125 @@ with open ('tools/icu/icu_versions.json') as f:
|
||||
icu_versions = json.load(f)
|
||||
|
||||
# create option groups
|
||||
shared_optgroup = optparse.OptionGroup(parser, "Shared libraries",
|
||||
shared_optgroup = parser.add_argument_group("Shared libraries",
|
||||
"Flags that allows you to control whether you want to build against "
|
||||
"built-in dependencies or its shared representations. If necessary, "
|
||||
"provide multiple libraries with comma.")
|
||||
intl_optgroup = optparse.OptionGroup(parser, "Internationalization",
|
||||
intl_optgroup = parser.add_argument_group("Internationalization",
|
||||
"Flags that lets you enable i18n features in Node.js as well as which "
|
||||
"library you want to build against.")
|
||||
http2_optgroup = optparse.OptionGroup(parser, "HTTP2",
|
||||
http2_optgroup = parser.add_argument_group("HTTP2",
|
||||
"Flags that allows you to control HTTP2 features in Node.js")
|
||||
|
||||
# Options should be in alphabetical order but keep --prefix at the top,
|
||||
# that's arguably the one people will be looking for most.
|
||||
parser.add_option('--prefix',
|
||||
parser.add_argument('--prefix',
|
||||
action='store',
|
||||
dest='prefix',
|
||||
default='/usr/local',
|
||||
help='select the install prefix [default: %default]')
|
||||
help='select the install prefix [default: %(default)s]')
|
||||
|
||||
parser.add_option('--coverage',
|
||||
parser.add_argument('--coverage',
|
||||
action='store_true',
|
||||
dest='coverage',
|
||||
default=None,
|
||||
help='Build node with code coverage enabled')
|
||||
|
||||
parser.add_option('--debug',
|
||||
parser.add_argument('--debug',
|
||||
action='store_true',
|
||||
dest='debug',
|
||||
default=None,
|
||||
help='also build debug build')
|
||||
|
||||
parser.add_option('--debug-node',
|
||||
parser.add_argument('--debug-node',
|
||||
action='store_true',
|
||||
dest='debug_node',
|
||||
default=None,
|
||||
help='build the Node.js part of the binary with debugging symbols')
|
||||
|
||||
parser.add_option('--dest-cpu',
|
||||
parser.add_argument('--dest-cpu',
|
||||
action='store',
|
||||
dest='dest_cpu',
|
||||
choices=valid_arch,
|
||||
help='CPU architecture to build for ({0})'.format(', '.join(valid_arch)))
|
||||
|
||||
parser.add_option('--cross-compiling',
|
||||
parser.add_argument('--cross-compiling',
|
||||
action='store_true',
|
||||
dest='cross_compiling',
|
||||
default=None,
|
||||
help='force build to be considered as cross compiled')
|
||||
parser.add_option('--no-cross-compiling',
|
||||
parser.add_argument('--no-cross-compiling',
|
||||
action='store_false',
|
||||
dest='cross_compiling',
|
||||
default=None,
|
||||
help='force build to be considered as NOT cross compiled')
|
||||
|
||||
parser.add_option('--dest-os',
|
||||
parser.add_argument('--dest-os',
|
||||
action='store',
|
||||
dest='dest_os',
|
||||
choices=valid_os,
|
||||
help='operating system to build for ({0})'.format(', '.join(valid_os)))
|
||||
|
||||
parser.add_option('--error-on-warn',
|
||||
parser.add_argument('--error-on-warn',
|
||||
action='store_true',
|
||||
dest='error_on_warn',
|
||||
default=None,
|
||||
help='Turn compiler warnings into errors for node core sources.')
|
||||
|
||||
parser.add_option('--experimental-quic',
|
||||
parser.add_argument('--experimental-quic',
|
||||
action='store_true',
|
||||
dest='experimental_quic',
|
||||
default=None,
|
||||
help='enable experimental quic support')
|
||||
|
||||
parser.add_option('--gdb',
|
||||
parser.add_argument('--gdb',
|
||||
action='store_true',
|
||||
dest='gdb',
|
||||
default=None,
|
||||
help='add gdb support')
|
||||
|
||||
parser.add_option('--no-ifaddrs',
|
||||
parser.add_argument('--no-ifaddrs',
|
||||
action='store_true',
|
||||
dest='no_ifaddrs',
|
||||
default=None,
|
||||
help='use on deprecated SunOS systems that do not support ifaddrs.h')
|
||||
|
||||
parser.add_option("--fully-static",
|
||||
parser.add_argument("--fully-static",
|
||||
action="store_true",
|
||||
dest="fully_static",
|
||||
default=None,
|
||||
help="Generate an executable without external dynamic libraries. This "
|
||||
"will not work on OSX when using the default compilation environment")
|
||||
|
||||
parser.add_option("--partly-static",
|
||||
parser.add_argument("--partly-static",
|
||||
action="store_true",
|
||||
dest="partly_static",
|
||||
default=None,
|
||||
help="Generate an executable with libgcc and libstdc++ libraries. This "
|
||||
"will not work on OSX when using the default compilation environment")
|
||||
|
||||
parser.add_option("--enable-pgo-generate",
|
||||
parser.add_argument("--enable-pgo-generate",
|
||||
action="store_true",
|
||||
dest="enable_pgo_generate",
|
||||
default=None,
|
||||
help="Enable profiling with pgo of a binary. This feature is only available "
|
||||
"on linux with gcc and g++ 5.4.1 or newer.")
|
||||
|
||||
parser.add_option("--enable-pgo-use",
|
||||
parser.add_argument("--enable-pgo-use",
|
||||
action="store_true",
|
||||
dest="enable_pgo_use",
|
||||
default=None,
|
||||
help="Enable use of the profile generated with --enable-pgo-generate. This "
|
||||
"feature is only available on linux with gcc and g++ 5.4.1 or newer.")
|
||||
|
||||
parser.add_option("--enable-lto",
|
||||
parser.add_argument("--enable-lto",
|
||||
action="store_true",
|
||||
dest="enable_lto",
|
||||
default=None,
|
||||
help="Enable compiling with lto of a binary. This feature is only available "
|
||||
"on linux with gcc and g++ 5.4.1 or newer.")
|
||||
|
||||
parser.add_option("--link-module",
|
||||
parser.add_argument("--link-module",
|
||||
action="append",
|
||||
dest="linked_module",
|
||||
help="Path to a JS file to be bundled in the binary as a builtin. "
|
||||
@ -171,334 +183,355 @@ parser.add_option("--link-module",
|
||||
"e.g. /root/x/y.js will be referenced via require('root/x/y'). "
|
||||
"Can be used multiple times")
|
||||
|
||||
parser.add_option('--openssl-default-cipher-list',
|
||||
parser.add_argument('--openssl-default-cipher-list',
|
||||
action='store',
|
||||
dest='openssl_default_cipher_list',
|
||||
help='Use the specified cipher list as the default cipher list')
|
||||
|
||||
parser.add_option("--openssl-no-asm",
|
||||
parser.add_argument("--openssl-no-asm",
|
||||
action="store_true",
|
||||
dest="openssl_no_asm",
|
||||
default=None,
|
||||
help="Do not build optimized assembly for OpenSSL")
|
||||
|
||||
parser.add_option('--openssl-fips',
|
||||
parser.add_argument('--openssl-fips',
|
||||
action='store',
|
||||
dest='openssl_fips',
|
||||
help='Build OpenSSL using FIPS canister .o file in supplied folder')
|
||||
|
||||
parser.add_option('--openssl-is-fips',
|
||||
parser.add_argument('--openssl-is-fips',
|
||||
action='store_true',
|
||||
dest='openssl_is_fips',
|
||||
default=None,
|
||||
help='specifies that the OpenSSL library is FIPS compatible')
|
||||
|
||||
parser.add_option('--openssl-use-def-ca-store',
|
||||
parser.add_argument('--openssl-use-def-ca-store',
|
||||
action='store_true',
|
||||
dest='use_openssl_ca_store',
|
||||
default=None,
|
||||
help='Use OpenSSL supplied CA store instead of compiled-in Mozilla CA copy.')
|
||||
|
||||
parser.add_option('--openssl-system-ca-path',
|
||||
parser.add_argument('--openssl-system-ca-path',
|
||||
action='store',
|
||||
dest='openssl_system_ca_path',
|
||||
help='Use the specified path to system CA (PEM format) in addition to '
|
||||
'the OpenSSL supplied CA store or compiled-in Mozilla CA copy.')
|
||||
|
||||
parser.add_option('--experimental-http-parser',
|
||||
parser.add_argument('--experimental-http-parser',
|
||||
action='store_true',
|
||||
dest='experimental_http_parser',
|
||||
default=None,
|
||||
help='(no-op)')
|
||||
|
||||
shared_optgroup.add_option('--shared-http-parser',
|
||||
shared_optgroup.add_argument('--shared-http-parser',
|
||||
action='store_true',
|
||||
dest='shared_http_parser',
|
||||
default=None,
|
||||
help='link to a shared http_parser DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-http-parser-includes',
|
||||
shared_optgroup.add_argument('--shared-http-parser-includes',
|
||||
action='store',
|
||||
dest='shared_http_parser_includes',
|
||||
help='directory containing http_parser header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-http-parser-libname',
|
||||
shared_optgroup.add_argument('--shared-http-parser-libname',
|
||||
action='store',
|
||||
dest='shared_http_parser_libname',
|
||||
default='http_parser',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-http-parser-libpath',
|
||||
shared_optgroup.add_argument('--shared-http-parser-libpath',
|
||||
action='store',
|
||||
dest='shared_http_parser_libpath',
|
||||
help='a directory to search for the shared http_parser DLL')
|
||||
|
||||
shared_optgroup.add_option('--shared-libuv',
|
||||
shared_optgroup.add_argument('--shared-libuv',
|
||||
action='store_true',
|
||||
dest='shared_libuv',
|
||||
default=None,
|
||||
help='link to a shared libuv DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-libuv-includes',
|
||||
shared_optgroup.add_argument('--shared-libuv-includes',
|
||||
action='store',
|
||||
dest='shared_libuv_includes',
|
||||
help='directory containing libuv header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-libuv-libname',
|
||||
shared_optgroup.add_argument('--shared-libuv-libname',
|
||||
action='store',
|
||||
dest='shared_libuv_libname',
|
||||
default='uv',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-libuv-libpath',
|
||||
shared_optgroup.add_argument('--shared-libuv-libpath',
|
||||
action='store',
|
||||
dest='shared_libuv_libpath',
|
||||
help='a directory to search for the shared libuv DLL')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp2',
|
||||
shared_optgroup.add_argument('--shared-nghttp2',
|
||||
action='store_true',
|
||||
dest='shared_nghttp2',
|
||||
default=None,
|
||||
help='link to a shared nghttp2 DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp2-includes',
|
||||
shared_optgroup.add_argument('--shared-nghttp2-includes',
|
||||
action='store',
|
||||
dest='shared_nghttp2_includes',
|
||||
help='directory containing nghttp2 header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp2-libname',
|
||||
shared_optgroup.add_argument('--shared-nghttp2-libname',
|
||||
action='store',
|
||||
dest='shared_nghttp2_libname',
|
||||
default='nghttp2',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp2-libpath',
|
||||
shared_optgroup.add_argument('--shared-nghttp2-libpath',
|
||||
action='store',
|
||||
dest='shared_nghttp2_libpath',
|
||||
help='a directory to search for the shared nghttp2 DLLs')
|
||||
|
||||
shared_optgroup.add_option('--shared-ngtcp2',
|
||||
shared_optgroup.add_argument('--shared-ngtcp2',
|
||||
action='store_true',
|
||||
dest='shared_ngtcp2',
|
||||
default=None,
|
||||
help='link to a shared ngtcp2 DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-ngtcp2-includes',
|
||||
shared_optgroup.add_argument('--shared-ngtcp2-includes',
|
||||
action='store',
|
||||
dest='shared_ngtcp2_includes',
|
||||
help='directory containing ngtcp2 header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-ngtcp2-libname',
|
||||
shared_optgroup.add_argument('--shared-ngtcp2-libname',
|
||||
action='store',
|
||||
dest='shared_ngtcp2_libname',
|
||||
default='ngtcp2',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-ngtcp2-libpath',
|
||||
shared_optgroup.add_argument('--shared-ngtcp2-libpath',
|
||||
action='store',
|
||||
dest='shared_ngtcp2_libpath',
|
||||
help='a directory to search for the shared ngtcp2 DLLs')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp3',
|
||||
shared_optgroup.add_argument('--shared-nghttp3',
|
||||
action='store_true',
|
||||
dest='shared_nghttp3',
|
||||
default=None,
|
||||
help='link to a shared nghttp3 DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp3-includes',
|
||||
shared_optgroup.add_argument('--shared-nghttp3-includes',
|
||||
action='store',
|
||||
dest='shared_nghttp3_includes',
|
||||
help='directory containing nghttp3 header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp3-libname',
|
||||
shared_optgroup.add_argument('--shared-nghttp3-libname',
|
||||
action='store',
|
||||
dest='shared_nghttp3_libname',
|
||||
default='nghttp3',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-nghttp3-libpath',
|
||||
shared_optgroup.add_argument('--shared-nghttp3-libpath',
|
||||
action='store',
|
||||
dest='shared_nghttp3_libpath',
|
||||
help='a directory to search for the shared nghttp3 DLLs')
|
||||
|
||||
shared_optgroup.add_option('--shared-openssl',
|
||||
shared_optgroup.add_argument('--shared-openssl',
|
||||
action='store_true',
|
||||
dest='shared_openssl',
|
||||
default=None,
|
||||
help='link to a shared OpenSSl DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-openssl-includes',
|
||||
shared_optgroup.add_argument('--shared-openssl-includes',
|
||||
action='store',
|
||||
dest='shared_openssl_includes',
|
||||
help='directory containing OpenSSL header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-openssl-libname',
|
||||
shared_optgroup.add_argument('--shared-openssl-libname',
|
||||
action='store',
|
||||
dest='shared_openssl_libname',
|
||||
default='crypto,ssl',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-openssl-libpath',
|
||||
shared_optgroup.add_argument('--shared-openssl-libpath',
|
||||
action='store',
|
||||
dest='shared_openssl_libpath',
|
||||
help='a directory to search for the shared OpenSSL DLLs')
|
||||
|
||||
shared_optgroup.add_option('--shared-zlib',
|
||||
shared_optgroup.add_argument('--shared-zlib',
|
||||
action='store_true',
|
||||
dest='shared_zlib',
|
||||
default=None,
|
||||
help='link to a shared zlib DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-zlib-includes',
|
||||
shared_optgroup.add_argument('--shared-zlib-includes',
|
||||
action='store',
|
||||
dest='shared_zlib_includes',
|
||||
help='directory containing zlib header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-zlib-libname',
|
||||
shared_optgroup.add_argument('--shared-zlib-libname',
|
||||
action='store',
|
||||
dest='shared_zlib_libname',
|
||||
default='z',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-zlib-libpath',
|
||||
shared_optgroup.add_argument('--shared-zlib-libpath',
|
||||
action='store',
|
||||
dest='shared_zlib_libpath',
|
||||
help='a directory to search for the shared zlib DLL')
|
||||
|
||||
shared_optgroup.add_option('--shared-brotli',
|
||||
shared_optgroup.add_argument('--shared-brotli',
|
||||
action='store_true',
|
||||
dest='shared_brotli',
|
||||
default=None,
|
||||
help='link to a shared brotli DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-brotli-includes',
|
||||
shared_optgroup.add_argument('--shared-brotli-includes',
|
||||
action='store',
|
||||
dest='shared_brotli_includes',
|
||||
help='directory containing brotli header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-brotli-libname',
|
||||
shared_optgroup.add_argument('--shared-brotli-libname',
|
||||
action='store',
|
||||
dest='shared_brotli_libname',
|
||||
default='brotlidec,brotlienc',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-brotli-libpath',
|
||||
shared_optgroup.add_argument('--shared-brotli-libpath',
|
||||
action='store',
|
||||
dest='shared_brotli_libpath',
|
||||
help='a directory to search for the shared brotli DLL')
|
||||
|
||||
shared_optgroup.add_option('--shared-cares',
|
||||
shared_optgroup.add_argument('--shared-cares',
|
||||
action='store_true',
|
||||
dest='shared_cares',
|
||||
default=None,
|
||||
help='link to a shared cares DLL instead of static linking')
|
||||
|
||||
shared_optgroup.add_option('--shared-cares-includes',
|
||||
shared_optgroup.add_argument('--shared-cares-includes',
|
||||
action='store',
|
||||
dest='shared_cares_includes',
|
||||
help='directory containing cares header files')
|
||||
|
||||
shared_optgroup.add_option('--shared-cares-libname',
|
||||
shared_optgroup.add_argument('--shared-cares-libname',
|
||||
action='store',
|
||||
dest='shared_cares_libname',
|
||||
default='cares',
|
||||
help='alternative lib name to link to [default: %default]')
|
||||
help='alternative lib name to link to [default: %(default)s]')
|
||||
|
||||
shared_optgroup.add_option('--shared-cares-libpath',
|
||||
shared_optgroup.add_argument('--shared-cares-libpath',
|
||||
action='store',
|
||||
dest='shared_cares_libpath',
|
||||
help='a directory to search for the shared cares DLL')
|
||||
|
||||
parser.add_option_group(shared_optgroup)
|
||||
parser.add_argument_group(shared_optgroup)
|
||||
|
||||
parser.add_option('--systemtap-includes',
|
||||
parser.add_argument('--systemtap-includes',
|
||||
action='store',
|
||||
dest='systemtap_includes',
|
||||
help='directory containing systemtap header files')
|
||||
|
||||
parser.add_option('--tag',
|
||||
parser.add_argument('--tag',
|
||||
action='store',
|
||||
dest='tag',
|
||||
help='custom build tag')
|
||||
|
||||
parser.add_option('--release-urlbase',
|
||||
parser.add_argument('--release-urlbase',
|
||||
action='store',
|
||||
dest='release_urlbase',
|
||||
help='Provide a custom URL prefix for the `process.release` properties '
|
||||
'`sourceUrl` and `headersUrl`. When compiling a release build, this '
|
||||
'will default to https://nodejs.org/download/release/')
|
||||
|
||||
parser.add_option('--enable-d8',
|
||||
parser.add_argument('--enable-d8',
|
||||
action='store_true',
|
||||
dest='enable_d8',
|
||||
help=optparse.SUPPRESS_HELP) # Unsupported, undocumented.
|
||||
default=None,
|
||||
help=argparse.SUPPRESS) # Unsupported, undocumented.
|
||||
|
||||
parser.add_option('--enable-trace-maps',
|
||||
parser.add_argument('--enable-trace-maps',
|
||||
action='store_true',
|
||||
dest='trace_maps',
|
||||
default=None,
|
||||
help='Enable the --trace-maps flag in V8 (use at your own risk)')
|
||||
|
||||
parser.add_option('--experimental-enable-pointer-compression',
|
||||
parser.add_argument('--experimental-enable-pointer-compression',
|
||||
action='store_true',
|
||||
dest='enable_pointer_compression',
|
||||
default=None,
|
||||
help='[Experimental] Enable V8 pointer compression (limits max heap to 4GB and breaks ABI compatibility)')
|
||||
|
||||
parser.add_option('--v8-options',
|
||||
parser.add_argument('--v8-options',
|
||||
action='store',
|
||||
dest='v8_options',
|
||||
help='v8 options to pass, see `node --v8-options` for examples.')
|
||||
|
||||
parser.add_option('--with-ossfuzz',
|
||||
parser.add_argument('--with-ossfuzz',
|
||||
action='store_true',
|
||||
dest='ossfuzz',
|
||||
default=None,
|
||||
help='Enables building of fuzzers. This command should be run in an OSS-Fuzz Docker image.')
|
||||
|
||||
parser.add_option('--with-arm-float-abi',
|
||||
parser.add_argument('--with-arm-float-abi',
|
||||
action='store',
|
||||
dest='arm_float_abi',
|
||||
choices=valid_arm_float_abi,
|
||||
help='specifies which floating-point ABI to use ({0}).'.format(
|
||||
', '.join(valid_arm_float_abi)))
|
||||
|
||||
parser.add_option('--with-arm-fpu',
|
||||
parser.add_argument('--with-arm-fpu',
|
||||
action='store',
|
||||
dest='arm_fpu',
|
||||
choices=valid_arm_fpu,
|
||||
help='ARM FPU mode ({0}) [default: %default]'.format(
|
||||
help='ARM FPU mode ({0}) [default: %(default)s]'.format(
|
||||
', '.join(valid_arm_fpu)))
|
||||
|
||||
parser.add_option('--with-mips-arch-variant',
|
||||
parser.add_argument('--with-mips-arch-variant',
|
||||
action='store',
|
||||
dest='mips_arch_variant',
|
||||
default='r2',
|
||||
choices=valid_mips_arch,
|
||||
help='MIPS arch variant ({0}) [default: %default]'.format(
|
||||
help='MIPS arch variant ({0}) [default: %(default)s]'.format(
|
||||
', '.join(valid_mips_arch)))
|
||||
|
||||
parser.add_option('--with-mips-fpu-mode',
|
||||
parser.add_argument('--with-mips-fpu-mode',
|
||||
action='store',
|
||||
dest='mips_fpu_mode',
|
||||
default='fp32',
|
||||
choices=valid_mips_fpu,
|
||||
help='MIPS FPU mode ({0}) [default: %default]'.format(
|
||||
help='MIPS FPU mode ({0}) [default: %(default)s]'.format(
|
||||
', '.join(valid_mips_fpu)))
|
||||
|
||||
parser.add_option('--with-mips-float-abi',
|
||||
parser.add_argument('--with-mips-float-abi',
|
||||
action='store',
|
||||
dest='mips_float_abi',
|
||||
default='hard',
|
||||
choices=valid_mips_float_abi,
|
||||
help='MIPS floating-point ABI ({0}) [default: %default]'.format(
|
||||
help='MIPS floating-point ABI ({0}) [default: %(default)s]'.format(
|
||||
', '.join(valid_mips_float_abi)))
|
||||
|
||||
parser.add_option('--with-dtrace',
|
||||
parser.add_argument('--with-dtrace',
|
||||
action='store_true',
|
||||
dest='with_dtrace',
|
||||
default=None,
|
||||
help='build with DTrace (default is true on sunos and darwin)')
|
||||
|
||||
parser.add_option('--with-etw',
|
||||
parser.add_argument('--with-etw',
|
||||
action='store_true',
|
||||
dest='with_etw',
|
||||
default=None,
|
||||
help='build with ETW (default is true on Windows)')
|
||||
|
||||
parser.add_option('--use-largepages',
|
||||
parser.add_argument('--use-largepages',
|
||||
action='store_true',
|
||||
dest='node_use_large_pages',
|
||||
default=None,
|
||||
help='This option has no effect. --use-largepages is now a runtime option.')
|
||||
|
||||
parser.add_option('--use-largepages-script-lld',
|
||||
parser.add_argument('--use-largepages-script-lld',
|
||||
action='store_true',
|
||||
dest='node_use_large_pages_script_lld',
|
||||
default=None,
|
||||
help='This option has no effect. --use-largepages is now a runtime option.')
|
||||
|
||||
parser.add_option('--use-section-ordering-file',
|
||||
parser.add_argument('--use-section-ordering-file',
|
||||
action='store',
|
||||
dest='node_section_ordering_info',
|
||||
default='',
|
||||
@ -506,42 +539,42 @@ parser.add_option('--use-section-ordering-file',
|
||||
'Node.js be linked using the gold linker. The gold linker must have ' +
|
||||
'version 1.2 or greater.')
|
||||
|
||||
intl_optgroup.add_option('--with-intl',
|
||||
intl_optgroup.add_argument('--with-intl',
|
||||
action='store',
|
||||
dest='with_intl',
|
||||
default='full-icu',
|
||||
choices=valid_intl_modes,
|
||||
help='Intl mode (valid choices: {0}) [default: %default]'.format(
|
||||
help='Intl mode (valid choices: {0}) [default: %(default)s]'.format(
|
||||
', '.join(valid_intl_modes)))
|
||||
|
||||
intl_optgroup.add_option('--without-intl',
|
||||
intl_optgroup.add_argument('--without-intl',
|
||||
action='store_const',
|
||||
dest='with_intl',
|
||||
const='none',
|
||||
help='Disable Intl, same as --with-intl=none (disables inspector)')
|
||||
|
||||
intl_optgroup.add_option('--with-icu-path',
|
||||
intl_optgroup.add_argument('--with-icu-path',
|
||||
action='store',
|
||||
dest='with_icu_path',
|
||||
help='Path to icu.gyp (ICU i18n, Chromium version only.)')
|
||||
|
||||
icu_default_locales='root,en'
|
||||
|
||||
intl_optgroup.add_option('--with-icu-locales',
|
||||
intl_optgroup.add_argument('--with-icu-locales',
|
||||
action='store',
|
||||
dest='with_icu_locales',
|
||||
default=icu_default_locales,
|
||||
help='Comma-separated list of locales for "small-icu". "root" is assumed. '
|
||||
'[default: %default]')
|
||||
'[default: %(default)s]')
|
||||
|
||||
intl_optgroup.add_option('--with-icu-source',
|
||||
intl_optgroup.add_argument('--with-icu-source',
|
||||
action='store',
|
||||
dest='with_icu_source',
|
||||
help='Intl mode: optional local path to icu/ dir, or path/URL of '
|
||||
'the icu4c source archive. '
|
||||
'v%d.x or later recommended.' % icu_versions['minimum_icu'])
|
||||
|
||||
intl_optgroup.add_option('--with-icu-default-data-dir',
|
||||
intl_optgroup.add_argument('--with-icu-default-data-dir',
|
||||
action='store',
|
||||
dest='with_icu_default_data_dir',
|
||||
help='Path to the icuXXdt{lb}.dat file. If unspecified, ICU data will '
|
||||
@ -549,159 +582,179 @@ intl_optgroup.add_option('--with-icu-default-data-dir',
|
||||
'--icu-data-dir runtime argument is used. This option has effect '
|
||||
'only when Node.js is built with --with-intl=small-icu.')
|
||||
|
||||
parser.add_option('--with-ltcg',
|
||||
parser.add_argument('--with-ltcg',
|
||||
action='store_true',
|
||||
dest='with_ltcg',
|
||||
default=None,
|
||||
help='Use Link Time Code Generation. This feature is only available on Windows.')
|
||||
|
||||
parser.add_option('--without-node-snapshot',
|
||||
parser.add_argument('--without-node-snapshot',
|
||||
action='store_true',
|
||||
dest='without_node_snapshot',
|
||||
default=None,
|
||||
help='Turn off V8 snapshot integration. Currently experimental.')
|
||||
|
||||
parser.add_option('--without-node-code-cache',
|
||||
parser.add_argument('--without-node-code-cache',
|
||||
action='store_true',
|
||||
dest='without_node_code_cache',
|
||||
default=None,
|
||||
help='Turn off V8 Code cache integration.')
|
||||
|
||||
intl_optgroup.add_option('--download',
|
||||
intl_optgroup.add_argument('--download',
|
||||
action='store',
|
||||
dest='download_list',
|
||||
help=nodedownload.help())
|
||||
|
||||
intl_optgroup.add_option('--download-path',
|
||||
intl_optgroup.add_argument('--download-path',
|
||||
action='store',
|
||||
dest='download_path',
|
||||
default='deps',
|
||||
help='Download directory [default: %default]')
|
||||
help='Download directory [default: %(default)s]')
|
||||
|
||||
parser.add_option_group(intl_optgroup)
|
||||
parser.add_argument_group(intl_optgroup)
|
||||
|
||||
parser.add_option('--debug-lib',
|
||||
parser.add_argument('--debug-lib',
|
||||
action='store_true',
|
||||
dest='node_debug_lib',
|
||||
default=None,
|
||||
help='build lib with DCHECK macros')
|
||||
|
||||
http2_optgroup.add_option('--debug-nghttp2',
|
||||
http2_optgroup.add_argument('--debug-nghttp2',
|
||||
action='store_true',
|
||||
dest='debug_nghttp2',
|
||||
default=None,
|
||||
help='build nghttp2 with DEBUGBUILD (default is false)')
|
||||
|
||||
parser.add_option_group(http2_optgroup)
|
||||
parser.add_argument_group(http2_optgroup)
|
||||
|
||||
parser.add_option('--without-dtrace',
|
||||
parser.add_argument('--without-dtrace',
|
||||
action='store_true',
|
||||
dest='without_dtrace',
|
||||
default=None,
|
||||
help='build without DTrace')
|
||||
|
||||
parser.add_option('--without-etw',
|
||||
parser.add_argument('--without-etw',
|
||||
action='store_true',
|
||||
dest='without_etw',
|
||||
default=None,
|
||||
help='build without ETW')
|
||||
|
||||
parser.add_option('--without-npm',
|
||||
parser.add_argument('--without-npm',
|
||||
action='store_true',
|
||||
dest='without_npm',
|
||||
default=None,
|
||||
help='do not install the bundled npm (package manager)')
|
||||
|
||||
# Dummy option for backwards compatibility
|
||||
parser.add_option('--without-report',
|
||||
parser.add_argument('--without-report',
|
||||
action='store_true',
|
||||
dest='unused_without_report',
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
default=None,
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
parser.add_option('--with-snapshot',
|
||||
parser.add_argument('--with-snapshot',
|
||||
action='store_true',
|
||||
dest='unused_with_snapshot',
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
default=None,
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
parser.add_option('--without-snapshot',
|
||||
parser.add_argument('--without-snapshot',
|
||||
action='store_true',
|
||||
dest='unused_without_snapshot',
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
default=None,
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
parser.add_option('--without-siphash',
|
||||
parser.add_argument('--without-siphash',
|
||||
action='store_true',
|
||||
dest='without_siphash',
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
default=None,
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
# End dummy list.
|
||||
|
||||
parser.add_option('--without-ssl',
|
||||
parser.add_argument('--without-ssl',
|
||||
action='store_true',
|
||||
dest='without_ssl',
|
||||
default=None,
|
||||
help='build without SSL (disables crypto, https, inspector, etc.)')
|
||||
|
||||
parser.add_option('--without-node-options',
|
||||
parser.add_argument('--without-node-options',
|
||||
action='store_true',
|
||||
dest='without_node_options',
|
||||
default=None,
|
||||
help='build without NODE_OPTIONS support')
|
||||
|
||||
parser.add_option('--ninja',
|
||||
parser.add_argument('--ninja',
|
||||
action='store_true',
|
||||
dest='use_ninja',
|
||||
default=None,
|
||||
help='generate build files for use with Ninja')
|
||||
|
||||
parser.add_option('--enable-asan',
|
||||
parser.add_argument('--enable-asan',
|
||||
action='store_true',
|
||||
dest='enable_asan',
|
||||
default=None,
|
||||
help='compile for Address Sanitizer to find memory bugs')
|
||||
|
||||
parser.add_option('--enable-static',
|
||||
parser.add_argument('--enable-static',
|
||||
action='store_true',
|
||||
dest='enable_static',
|
||||
default=None,
|
||||
help='build as static library')
|
||||
|
||||
parser.add_option('--no-browser-globals',
|
||||
parser.add_argument('--no-browser-globals',
|
||||
action='store_true',
|
||||
dest='no_browser_globals',
|
||||
default=None,
|
||||
help='do not export browser globals like setTimeout, console, etc. ' +
|
||||
'(This mode is not officially supported for regular applications)')
|
||||
|
||||
parser.add_option('--without-inspector',
|
||||
parser.add_argument('--without-inspector',
|
||||
action='store_true',
|
||||
dest='without_inspector',
|
||||
default=None,
|
||||
help='disable the V8 inspector protocol')
|
||||
|
||||
parser.add_option('--shared',
|
||||
parser.add_argument('--shared',
|
||||
action='store_true',
|
||||
dest='shared',
|
||||
default=None,
|
||||
help='compile shared library for embedding node in another project. ' +
|
||||
'(This mode is not officially supported for regular applications)')
|
||||
|
||||
parser.add_option('--without-v8-platform',
|
||||
parser.add_argument('--without-v8-platform',
|
||||
action='store_true',
|
||||
dest='without_v8_platform',
|
||||
default=False,
|
||||
help='do not initialize v8 platform during node.js startup. ' +
|
||||
'(This mode is not officially supported for regular applications)')
|
||||
|
||||
parser.add_option('--without-bundled-v8',
|
||||
parser.add_argument('--without-bundled-v8',
|
||||
action='store_true',
|
||||
dest='without_bundled_v8',
|
||||
default=False,
|
||||
help='do not use V8 includes from the bundled deps folder. ' +
|
||||
'(This mode is not officially supported for regular applications)')
|
||||
|
||||
parser.add_option('--verbose',
|
||||
parser.add_argument('--verbose',
|
||||
action='store_true',
|
||||
dest='verbose',
|
||||
default=False,
|
||||
help='get more output from this script')
|
||||
|
||||
parser.add_option('--v8-non-optimized-debug',
|
||||
parser.add_argument('--v8-non-optimized-debug',
|
||||
action='store_true',
|
||||
dest='v8_non_optimized_debug',
|
||||
default=False,
|
||||
help='compile V8 with minimal optimizations and with runtime checks')
|
||||
|
||||
parser.add_option('--v8-with-dchecks',
|
||||
parser.add_argument('--v8-with-dchecks',
|
||||
action='store_true',
|
||||
dest='v8_with_dchecks',
|
||||
default=False,
|
||||
help='compile V8 with debug checks and runtime debugging features enabled')
|
||||
|
||||
parser.add_option('--v8-lite-mode',
|
||||
parser.add_argument('--v8-lite-mode',
|
||||
action='store_true',
|
||||
dest='v8_lite_mode',
|
||||
default=False,
|
||||
@ -709,25 +762,26 @@ parser.add_option('--v8-lite-mode',
|
||||
'memory footprint, but also implies no just-in-time compilation ' +
|
||||
'support, thus much slower execution)')
|
||||
|
||||
parser.add_option('--v8-enable-object-print',
|
||||
parser.add_argument('--v8-enable-object-print',
|
||||
action='store_true',
|
||||
dest='v8_enable_object_print',
|
||||
default=True,
|
||||
help='compile V8 with auxiliar functions for native debuggers')
|
||||
|
||||
parser.add_option('--node-builtin-modules-path',
|
||||
parser.add_argument('--node-builtin-modules-path',
|
||||
action='store',
|
||||
dest='node_builtin_modules_path',
|
||||
default=False,
|
||||
help='node will load builtin modules from disk instead of from binary')
|
||||
|
||||
# Create compile_commands.json in out/Debug and out/Release.
|
||||
parser.add_option('-C',
|
||||
parser.add_argument('-C',
|
||||
action='store_true',
|
||||
dest='compile_commands_json',
|
||||
help=optparse.SUPPRESS_HELP)
|
||||
default=None,
|
||||
help=argparse.SUPPRESS)
|
||||
|
||||
(options, args) = parser.parse_args()
|
||||
(options, args) = parser.parse_known_args()
|
||||
|
||||
# Expand ~ in the install prefix now, it gets written to multiple files.
|
||||
options.prefix = os.path.expanduser(options.prefix or '')
|
||||
|
Loading…
Reference in New Issue
Block a user