{ 'variables': { 'asan%': 0, 'werror': '', # Turn off -Werror in V8 build. 'visibility%': 'hidden', # V8's visibility setting 'target_arch%': 'ia32', # set v8's target architecture 'host_arch%': 'ia32', # set v8's host architecture 'want_separate_host_toolset%': 0, # V8 should not build target and host 'library%': 'static_library', # allow override to 'shared_library' for DLL/.so builds 'component%': 'static_library', # NB. these names match with what V8 expects 'msvs_multi_core_compile': '0', # we do enable multicore compiles, but not using the V8 way 'enable_pgo_generate%': '0', 'enable_pgo_use%': '0', 'python%': 'python', 'node_shared%': 'false', 'force_dynamic_crt%': 0, 'node_use_v8_platform%': 'true', 'node_use_bundled_v8%': 'true', 'node_module_version%': '', 'node_with_ltcg%': '', 'node_use_pch%': 'false', 'node_shared_openssl%': 'false', 'node_tag%': '', 'uv_library%': 'static_library', 'clang%': 0, 'openssl_fips%': '', # Some STL containers (e.g. std::vector) do not preserve ABI compatibility # between debug and non-debug mode. 'disable_glibcxx_debug': 1, # Don't use ICU data file (icudtl.dat) from V8, we use our own. 'icu_use_data_file_flag%': 0, # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. 'v8_embedder_string': '-node.5', ##### V8 defaults for Node.js ##### # Old time default, now explicitly stated. 'v8_use_snapshot': 'true', # Refs: https://github.com/nodejs/node/issues/23122 # Refs: https://github.com/nodejs/node/issues/23167 # Enable compiler warnings when using V8_DEPRECATED apis. 'v8_deprecation_warnings': 1, # Enable compiler warnings when using V8_DEPRECATE_SOON apis. 'v8_imminent_deprecation_warnings': 1, # Enable disassembler for `--print-code` v8 options 'v8_enable_disassembler': 1, # Don't bake anything extra into the snapshot. 'v8_use_external_startup_data': 0, # https://github.com/nodejs/node/pull/22920/files#r222779926 'v8_enable_handle_zapping': 0, # Disable V8 untrusted code mitigations. # See https://github.com/v8/v8/wiki/Untrusted-code-mitigations 'v8_untrusted_code_mitigations': 'false', # Still WIP in V8 7.1 'v8_enable_pointer_compression': 'false', # New in V8 7.1 'v8_enable_embedded_builtins': 'true', # This is more of a V8 dev setting # https://github.com/nodejs/node/pull/22920/files#r222779926 'v8_enable_fast_mksnapshot': 0, ##### end V8 defaults ##### 'conditions': [ ['target_arch=="arm64"', { # Disabled pending https://github.com/nodejs/node/issues/23913. 'openssl_no_asm%': 1, }, { 'openssl_no_asm%': 0, }], ['GENERATOR=="ninja"', { 'obj_dir': '<(PRODUCT_DIR)/obj', 'conditions': [ [ 'build_v8_with_gn=="true"', { 'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/gypfiles/v8_monolith.gen/gn/obj/libv8_monolith.a', }, { 'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/gypfiles/libv8_base.a', }], ] }, { 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/obj.target/deps/v8/gypfiles/libv8_base.a', }], ['OS == "win"', { 'os_posix': 0, 'v8_postmortem_support%': 'false', 'obj_dir': '<(PRODUCT_DIR)/obj', 'v8_base': '<(PRODUCT_DIR)/lib/v8_libbase.lib', }, { 'os_posix': 1, 'v8_postmortem_support%': 'true', }], ['OS == "mac"', { 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/libv8_base.a', }], ['build_v8_with_gn == "true"', { 'conditions': [ ['GENERATOR == "ninja"', { 'v8_base': '<(PRODUCT_DIR)/obj/deps/v8/gypfiles/v8_monolith.gen/gn/obj/libv8_monolith.a', }, { 'v8_base': '<(PRODUCT_DIR)/obj.target/v8_monolith/geni/gn/obj/libv8_monolith.a', }], ], }], ['openssl_fips != ""', { 'openssl_product': '<(STATIC_LIB_PREFIX)crypto<(STATIC_LIB_SUFFIX)', }, { 'openssl_product': '<(STATIC_LIB_PREFIX)openssl<(STATIC_LIB_SUFFIX)', }], ['OS=="mac"', { 'clang%': 1, }], ], }, 'target_defaults': { 'default_configuration': 'Release', 'configurations': { 'Debug': { 'variables': { 'v8_enable_handle_zapping': 1, }, 'defines': [ 'DEBUG', '_DEBUG', 'V8_ENABLE_CHECKS' ], 'cflags': [ '-g', '-O0' ], 'conditions': [ ['target_arch=="x64"', { 'msvs_configuration_platform': 'x64', }], ['OS=="aix"', { 'variables': {'real_os_name': '