diff options
author | Refael Ackermann <refack@gmail.com> | 2019-03-24 22:58:29 -0400 |
---|---|---|
committer | Refael Ackermann <refack@gmail.com> | 2019-03-28 16:39:16 -0400 |
commit | 3b5773fee389c52077bd9f2dd324739af27fb6b5 (patch) | |
tree | a3967e13f38c431ab1ab9ca3dbfcb102e0bd0526 /tools | |
parent | 3d8b844112bf6526ce126ecaec85f83b31a0a9aa (diff) | |
download | android-node-v8-3b5773fee389c52077bd9f2dd324739af27fb6b5.tar.gz android-node-v8-3b5773fee389c52077bd9f2dd324739af27fb6b5.tar.bz2 android-node-v8-3b5773fee389c52077bd9f2dd324739af27fb6b5.zip |
build,deps: move gypfiles out 2/2 - moving
* move all used files to `tools/v8_gypfiles` directory
* fix references in node configuration
PR-URL: https://github.com/nodejs/node/pull/26685
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Michaƫl Zasso <targos@protonmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
Diffstat (limited to 'tools')
24 files changed, 7225 insertions, 0 deletions
diff --git a/tools/v8_gypfiles/ForEachFormat.py b/tools/v8_gypfiles/ForEachFormat.py new file mode 100644 index 0000000000..3015cb8b82 --- /dev/null +++ b/tools/v8_gypfiles/ForEachFormat.py @@ -0,0 +1,5 @@ +# Copyright (c) 2019 Refael Ackeramnn<refack@gmail.com>. All rights reserved. +# Use of this source code is governed by an MIT-style license. +def DoMain(args): + format_str = args.pop(0) + return ' '.join(format_str % a for a in args) diff --git a/tools/v8_gypfiles/broken/all.gyp b/tools/v8_gypfiles/broken/all.gyp new file mode 100644 index 0000000000..99248205b6 --- /dev/null +++ b/tools/v8_gypfiles/broken/all.gyp @@ -0,0 +1,29 @@ +# Copyright 2011 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'All', + 'type': 'none', + 'dependencies': [ + 'd8.gyp:d8', + 'mkgrokdump.gyp:*', + ], + 'conditions': [ + ['component!="shared_library"', { + 'dependencies': [ + 'parser-shell.gyp:parser-shell', + ], + }], + # These items don't compile for Android on Mac. + ['host_os!="mac" or OS!="android"', { + 'dependencies': [ + 'samples.gyp:*', + ], + }], + ] + } + ] +} diff --git a/tools/v8_gypfiles/broken/coverage_wrapper.py b/tools/v8_gypfiles/broken/coverage_wrapper.py new file mode 100644 index 0000000000..d5fdee43cf --- /dev/null +++ b/tools/v8_gypfiles/broken/coverage_wrapper.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# Copyright 2016 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# CC/CXX wrapper script that excludes certain file patterns from coverage +# instrumentation. + +import re +import subprocess +import sys + +exclusions = [ + 'buildtools', + 'src/third_party', + 'third_party', + 'test', + 'testing', +] + +def remove_if_exists(string_list, item): + if item in string_list: + string_list.remove(item) + +args = sys.argv[1:] +text = ' '.join(sys.argv[2:]) +for exclusion in exclusions: + if re.search(r'\-o obj/%s[^ ]*\.o' % exclusion, text): + remove_if_exists(args, '-fprofile-arcs') + remove_if_exists(args, '-ftest-coverage') + remove_if_exists(args, '-fsanitize-coverage=func') + remove_if_exists(args, '-fsanitize-coverage=bb') + remove_if_exists(args, '-fsanitize-coverage=edge') + remove_if_exists(args, '-fsanitize-coverage=trace-pc-guard') + remove_if_exists(args, '-fsanitize-coverage=bb,trace-pc-guard') + break + +sys.exit(subprocess.check_call(args)) diff --git a/tools/v8_gypfiles/broken/gyp_environment.py b/tools/v8_gypfiles/broken/gyp_environment.py new file mode 100644 index 0000000000..fe6b51f28a --- /dev/null +++ b/tools/v8_gypfiles/broken/gyp_environment.py @@ -0,0 +1,57 @@ +# Copyright 2015 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Sets up various automatic gyp environment variables. These are used by +gyp_v8 and landmines.py which run at different stages of runhooks. To +make sure settings are consistent between them, all setup should happen here. +""" + +import os +import sys + +SCRIPT_DIR = os.path.dirname(os.path.realpath(__file__)) +V8_ROOT = os.path.abspath(os.path.join(SCRIPT_DIR, os.pardir)) + + +def apply_gyp_environment(file_path=None): + """ + Reads in a *.gyp_env file and applies the valid keys to os.environ. + """ + if not file_path or not os.path.exists(file_path): + return + file_contents = open(file_path).read() + try: + file_data = eval(file_contents, {'__builtins__': None}, None) + except SyntaxError, e: + e.filename = os.path.abspath(file_path) + raise + supported_vars = ( 'V8_GYP_FILE', + 'V8_GYP_SYNTAX_CHECK', + 'GYP_DEFINES', + 'GYP_GENERATORS', + 'GYP_GENERATOR_FLAGS', + 'GYP_GENERATOR_OUTPUT', ) + for var in supported_vars: + val = file_data.get(var) + if val: + if var in os.environ: + print 'INFO: Environment value for "%s" overrides value in %s.' % ( + var, os.path.abspath(file_path) + ) + else: + os.environ[var] = val + + +def set_environment(): + """Sets defaults for GYP_* variables.""" + + if 'SKIP_V8_GYP_ENV' not in os.environ: + # Update the environment based on v8.gyp_env + gyp_env_path = os.path.join(os.path.dirname(V8_ROOT), 'v8.gyp_env') + apply_gyp_environment(gyp_env_path) + + if not os.environ.get('GYP_GENERATORS'): + # Default to ninja on all platforms. + os.environ['GYP_GENERATORS'] = 'ninja' diff --git a/tools/v8_gypfiles/broken/gyp_v8 b/tools/v8_gypfiles/broken/gyp_v8 new file mode 100644 index 0000000000..a0971cce36 --- /dev/null +++ b/tools/v8_gypfiles/broken/gyp_v8 @@ -0,0 +1,189 @@ +#!/usr/bin/env python +# +# Copyright 2012 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This script is wrapper for V8 that adds some support for how GYP +# is invoked by V8 beyond what can be done in the gclient hooks. + +import argparse +import glob +import os +import platform +import shlex +import sys + +script_dir = os.path.dirname(os.path.realpath(__file__)) +sys.path.insert(0, script_dir) +import gyp_environment + +v8_root = os.path.abspath(os.path.join(script_dir, os.pardir)) + +sys.path.insert(0, os.path.join(v8_root, 'tools', 'gyp', 'pylib')) +import gyp + +# Add paths so that pymod_do_main(...) can import files. +sys.path.insert( + 1, os.path.abspath(os.path.join(v8_root, 'tools', 'generate_shim_headers'))) +sys.path.append( + os.path.abspath(os.path.join(v8_root, 'third_party', 'binutils'))) + +def GetOutputDirectory(): + """Returns the output directory that GYP will use.""" + + # Handle command line generator flags. + parser = argparse.ArgumentParser() + parser.add_argument('-G', dest='genflags', default=[], action='append') + genflags = parser.parse_known_args()[0].genflags + + # Handle generator flags from the environment. + genflags += shlex.split(os.environ.get('GYP_GENERATOR_FLAGS', '')) + + needle = 'output_dir=' + for item in genflags: + if item.startswith(needle): + return item[len(needle):] + + return 'out' + + +def additional_include_files(args=[]): + """ + Returns a list of additional (.gypi) files to include, without + duplicating ones that are already specified on the command line. + """ + # Determine the include files specified on the command line. + # This doesn't cover all the different option formats you can use, + # but it's mainly intended to avoid duplicating flags on the automatic + # makefile regeneration which only uses this format. + specified_includes = set() + for arg in args: + if arg.startswith('-I') and len(arg) > 2: + specified_includes.add(os.path.realpath(arg[2:])) + + result = [] + def AddInclude(path): + if os.path.realpath(path) not in specified_includes: + result.append(path) + + # Always include standalone.gypi + AddInclude(os.path.join(v8_root, 'gypfiles', 'standalone.gypi')) + + # Optionally add supplemental .gypi files if present. + supplements = glob.glob(os.path.join(v8_root, '*', 'supplement.gypi')) + for supplement in supplements: + AddInclude(supplement) + + return result + + +def run_gyp(args): + if gyp.main(args) != 0: + print 'Error running GYP' + sys.exit(rc) + + +if __name__ == '__main__': + args = sys.argv[1:] + + gyp_chromium_no_action = os.environ.get('GYP_CHROMIUM_NO_ACTION') + if gyp_chromium_no_action == '1': + print 'Skipping gyp_v8 due to GYP_CHROMIUM_NO_ACTION env var.' + sys.exit(0) + + running_as_hook = '--running-as-hook' + if running_as_hook in args and gyp_chromium_no_action != '0': + print 'GYP is now disabled by default in runhooks.\n' + print 'If you really want to run this, either run ' + print '`python gypfiles/gyp_v8` explicitly by hand ' + print 'or set the environment variable GYP_CHROMIUM_NO_ACTION=0.' + sys.exit(0) + + if running_as_hook in args: + args.remove(running_as_hook) + + gyp_environment.set_environment() + + # This could give false positives since it doesn't actually do real option + # parsing. Oh well. + gyp_file_specified = False + for arg in args: + if arg.endswith('.gyp'): + gyp_file_specified = True + break + + # If we didn't get a file, check an env var, and then fall back to + # assuming 'all.gyp' from the same directory as the script. + if not gyp_file_specified: + gyp_file = os.environ.get('V8_GYP_FILE') + if gyp_file: + # Note that V8_GYP_FILE values can't have backslashes as + # path separators even on Windows due to the use of shlex.split(). + args.extend(shlex.split(gyp_file)) + else: + args.append(os.path.join(script_dir, 'all.gyp')) + + args.extend(['-I' + i for i in additional_include_files(args)]) + + # There shouldn't be a circular dependency relationship between .gyp files + args.append('--no-circular-check') + + # Set the GYP DEPTH variable to the root of the V8 project. + args.append('--depth=' + os.path.relpath(v8_root)) + + # If V8_GYP_SYNTAX_CHECK is set to 1, it will invoke gyp with --check + # to enfore syntax checking. + syntax_check = os.environ.get('V8_GYP_SYNTAX_CHECK') + if syntax_check and int(syntax_check): + args.append('--check') + + print 'Updating projects from gyp files...' + sys.stdout.flush() + + # Generate for the architectures supported on the given platform. + gyp_args = list(args) + gyp_args.extend(['-D', 'gyp_output_dir=' + GetOutputDirectory()]) + gyp_generators = os.environ.get('GYP_GENERATORS', '') + if platform.system() == 'Linux' and gyp_generators != 'ninja': + # Work around for crbug.com/331475. + for f in glob.glob(os.path.join(v8_root, 'out', 'Makefile.*')): + os.unlink(f) + # --generator-output defines where the Makefile goes. + gyp_args.append('--generator-output=out') + # -Goutput_dir defines where the build output goes, relative to the + # Makefile. Set it to . so that the build output doesn't end up in out/out. + gyp_args.append('-Goutput_dir=.') + + gyp_defines = os.environ.get('GYP_DEFINES', '') + + # Automatically turn on crosscompile support for platforms that need it. + if all(('ninja' in gyp_generators, + 'OS=android' in gyp_defines, + 'GYP_CROSSCOMPILE' not in os.environ)): + os.environ['GYP_CROSSCOMPILE'] = '1' + + run_gyp(gyp_args) diff --git a/tools/v8_gypfiles/broken/gyp_v8.py b/tools/v8_gypfiles/broken/gyp_v8.py new file mode 100644 index 0000000000..462ee674ac --- /dev/null +++ b/tools/v8_gypfiles/broken/gyp_v8.py @@ -0,0 +1,41 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This file is (possibly, depending on python version) imported by +# gyp_v8 when GYP_PARALLEL=1 and it creates sub-processes through the +# multiprocessing library. + +# Importing in Python 2.6 (fixed in 2.7) on Windows doesn't search for imports +# that don't end in .py (and aren't directories with an __init__.py). This +# wrapper makes "import gyp_v8" work with those old versions and makes it +# possible to execute gyp_v8.py directly on Windows where the extension is +# useful. + +import os + +path = os.path.abspath(os.path.split(__file__)[0]) +execfile(os.path.join(path, 'gyp_v8')) diff --git a/tools/v8_gypfiles/broken/mac/asan.gyp b/tools/v8_gypfiles/broken/mac/asan.gyp new file mode 100644 index 0000000000..3fc7f58d43 --- /dev/null +++ b/tools/v8_gypfiles/broken/mac/asan.gyp @@ -0,0 +1,31 @@ +# Copyright 2015 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'targets': [ + { + 'target_name': 'asan_dynamic_runtime', + 'toolsets': ['target', 'host'], + 'type': 'none', + 'variables': { + # Every target is going to depend on asan_dynamic_runtime, so allow + # this one to depend on itself. + 'prune_self_dependency': 1, + # Path is relative to this GYP file. + 'asan_rtl_mask_path': + '../../third_party/llvm-build/Release+Asserts/lib/clang/*/lib/darwin', + 'asan_osx_dynamic': + '<(asan_rtl_mask_path)/libclang_rt.asan_osx_dynamic.dylib', + }, + 'copies': [ + { + 'destination': '<(PRODUCT_DIR)', + 'files': [ + '<!(/bin/ls <(asan_osx_dynamic))', + ], + }, + ], + }, + ], +} diff --git a/tools/v8_gypfiles/broken/mkgrokdump.gyp b/tools/v8_gypfiles/broken/mkgrokdump.gyp new file mode 100644 index 0000000000..75e8fc75cd --- /dev/null +++ b/tools/v8_gypfiles/broken/mkgrokdump.gyp @@ -0,0 +1,27 @@ +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'v8_code': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'mkgrokdump', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs': [ + '..', + ], + 'sources': [ + '../test/mkgrokdump/mkgrokdump.cc', + ], + }, + ], +} diff --git a/tools/v8_gypfiles/broken/parser-shell.gyp b/tools/v8_gypfiles/broken/parser-shell.gyp new file mode 100644 index 0000000000..464e2676ac --- /dev/null +++ b/tools/v8_gypfiles/broken/parser-shell.gyp @@ -0,0 +1,60 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +{ + 'variables': { + 'v8_code': 1, + 'v8_enable_i18n_support%': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'parser-shell', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ], + 'include_dirs+': [ + '..', + ], + 'sources': [ + '../tools/parser-shell.cc', + '../tools/shell-utils.h', + ], + }, + ], +} diff --git a/tools/v8_gypfiles/broken/samples.gyp b/tools/v8_gypfiles/broken/samples.gyp new file mode 100644 index 0000000000..9080c0d445 --- /dev/null +++ b/tools/v8_gypfiles/broken/samples.gyp @@ -0,0 +1,61 @@ +# Copyright 2012 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'v8_code': 1, + 'v8_enable_i18n_support%': 1, + 'v8_toolset_for_shell%': 'target', + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'target_defaults': { + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + 'include_dirs': [ + '..', + ], + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ['OS=="win" and v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icudata', + ], + }], + ], + }, + 'targets': [ + { + 'target_name': 'v8_shell', + 'sources': [ + '../samples/shell.cc', + ], + 'conditions': [ + [ 'want_separate_host_toolset==1', { + 'toolsets': [ '<(v8_toolset_for_shell)', ], + }], + ], + }, + { + 'target_name': 'hello-world', + 'sources': [ + '../samples/hello-world.cc', + ], + }, + { + 'target_name': 'process', + 'sources': [ + '../samples/process.cc', + ], + }, + ], +} diff --git a/tools/v8_gypfiles/broken/set_clang_warning_flags.gypi b/tools/v8_gypfiles/broken/set_clang_warning_flags.gypi new file mode 100644 index 0000000000..63d5f1435c --- /dev/null +++ b/tools/v8_gypfiles/broken/set_clang_warning_flags.gypi @@ -0,0 +1,59 @@ +# Copyright 2016 the V8 project authors. All rights reserved. +# Copyright (c) 2014 The Chromium Authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This file is meant to be included to set clang-specific compiler flags. +# To use this the following variable can be defined: +# clang_warning_flags: list: Compiler flags to pass to clang. +# clang_warning_flags_unset: list: Compiler flags to not pass to clang. +# +# Only use this in third-party code. In chromium_code, fix your code to not +# warn instead! +# +# Note that the gypi file is included in target_defaults, so it does not need +# to be explicitly included. +# +# Warning flags set by this will be used on all platforms. If you want to set +# warning flags on only some platforms, you have to do so manually. +# +# To use this, create a gyp target with the following form: +# { +# 'target_name': 'my_target', +# 'variables': { +# 'clang_warning_flags': ['-Wno-awesome-warning'], +# 'clang_warning_flags_unset': ['-Wpreviously-set-flag'], +# } +# } + +{ + 'variables': { + 'clang_warning_flags_unset%': [], # Provide a default value. + }, + 'conditions': [ + ['clang==1', { + # This uses >@ instead of @< to also see clang_warning_flags set in + # targets directly, not just the clang_warning_flags in target_defaults. + 'cflags': [ '>@(clang_warning_flags)' ], + 'cflags!': [ '>@(clang_warning_flags_unset)' ], + 'xcode_settings': { + 'WARNING_CFLAGS': ['>@(clang_warning_flags)'], + 'WARNING_CFLAGS!': ['>@(clang_warning_flags_unset)'], + }, + 'msvs_settings': { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ '>@(clang_warning_flags)' ], + 'AdditionalOptions!': [ '>@(clang_warning_flags_unset)' ], + }, + }, + }], + ['clang==0 and host_clang==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'cflags': [ '>@(clang_warning_flags)' ], + 'cflags!': [ '>@(clang_warning_flags_unset)' ], + }], + ], + }], + ], +} diff --git a/tools/v8_gypfiles/broken/shim_headers.gypi b/tools/v8_gypfiles/broken/shim_headers.gypi new file mode 100644 index 0000000000..940211c240 --- /dev/null +++ b/tools/v8_gypfiles/broken/shim_headers.gypi @@ -0,0 +1,73 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# This file is meant to be included into a target to handle shim headers +# in a consistent manner. To use this the following variables need to be +# defined: +# headers_root_path: string: path to directory containing headers +# header_filenames: list: list of header file names + +{ + 'variables': { + 'shim_headers_path': '<(SHARED_INTERMEDIATE_DIR)/shim_headers/<(_target_name)/<(_toolset)', + 'shim_generator_additional_args%': [], + }, + 'include_dirs++': [ + '<(shim_headers_path)', + ], + 'all_dependent_settings': { + 'include_dirs+++': [ + '<(shim_headers_path)', + ], + }, + 'actions': [ + { + 'variables': { + 'generator_path': '<(DEPTH)/tools/generate_shim_headers/generate_shim_headers.py', + 'generator_args': [ + '--headers-root', '<(headers_root_path)', + '--output-directory', '<(shim_headers_path)', + '<@(shim_generator_additional_args)', + '<@(header_filenames)', + ], + }, + 'action_name': 'generate_<(_target_name)_shim_headers', + 'inputs': [ + '<(generator_path)', + ], + 'outputs': [ + '<!@pymod_do_main(generate_shim_headers <@(generator_args) --outputs)', + ], + 'action': ['python', + '<(generator_path)', + '<@(generator_args)', + '--generate', + ], + 'message': 'Generating <(_target_name) shim headers.', + }, + ], +} diff --git a/tools/v8_gypfiles/broken/standalone.gypi b/tools/v8_gypfiles/broken/standalone.gypi new file mode 100644 index 0000000000..2a41237a60 --- /dev/null +++ b/tools/v8_gypfiles/broken/standalone.gypi @@ -0,0 +1,1409 @@ +# Copyright 2012 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Definitions to be used when building stand-alone V8 binaries. + +{ + # We need to include toolchain.gypi here for third-party sources that don't + # directly include it themselves. + 'includes': ['toolchain.gypi'], + 'variables': { + 'component%': 'static_library', + 'clang_xcode%': 0, + # Track where uninitialized memory originates from. From fastest to + # slowest: 0 - no tracking, 1 - track only the initial allocation site, 2 + # - track the chain of stores leading from allocation site to use site. + 'msan_track_origins%': 2, + 'visibility%': 'hidden', + 'v8_enable_backtrace%': 0, + 'v8_enable_i18n_support%': 1, + 'v8_deprecation_warnings': 1, + 'v8_imminent_deprecation_warnings': 1, + 'v8_check_microtasks_scopes_consistency': 1, + 'msvs_multi_core_compile%': '1', + 'mac_deployment_target%': '10.7', + 'release_extra_cflags%': '', + 'variables': { + 'variables': { + 'variables': { + 'variables': { + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or \ + OS=="netbsd" or OS=="mac" or OS=="qnx" or OS=="aix"', { + # This handles the Unix platforms we generally deal with. + # Anything else gets passed through, which probably won't work + # very well; such hosts should pass an explicit target_arch + # to gyp. + 'host_arch%': '<!pymod_do_main(detect_v8_host_arch)', + }, { + # OS!="linux" and OS!="freebsd" and OS!="openbsd" and + # OS!="netbsd" and OS!="mac" and OS!="aix" + 'host_arch%': 'ia32', + }], + ], + }, + 'host_arch%': '<(host_arch)', + 'target_arch%': '<(host_arch)', + + # By default we build against a stable sysroot image to avoid + # depending on the packages installed on the local machine. Set this + # to 0 to build against locally installed headers and libraries (e.g. + # if packaging for a linux distro) + 'use_sysroot%': 1, + }, + 'host_arch%': '<(host_arch)', + 'target_arch%': '<(target_arch)', + 'use_sysroot%': '<(use_sysroot)', + 'base_dir%': '<!(cd <(DEPTH) && python -c "import os; print os.getcwd()")', + + # Instrument for code coverage and use coverage wrapper to exclude some + # files. Uses gcov if clang=0 is set explicitly. Otherwise, + # sanitizer_coverage must be set too. + 'coverage%': 0, + + # Default sysroot if no sysroot can be provided. + 'sysroot%': '', + + 'conditions': [ + # The system root for linux builds. + ['OS=="linux" and use_sysroot==1', { + 'conditions': [ + ['target_arch=="arm"', { + 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_sid_arm-sysroot', + }], + ['target_arch=="x64"', { + 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_sid_amd64-sysroot', + }], + ['target_arch=="ia32"', { + 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_sid_i386-sysroot', + }], + ['target_arch=="mipsel"', { + 'sysroot%': '<!(cd <(DEPTH) && pwd -P)/build/linux/debian_sid_mips-sysroot', + }], + ], + }], # OS=="linux" and use_sysroot==1 + ], + }, + 'base_dir%': '<(base_dir)', + 'host_arch%': '<(host_arch)', + 'target_arch%': '<(target_arch)', + 'v8_target_arch%': '<(target_arch)', + 'coverage%': '<(coverage)', + 'sysroot%': '<(sysroot)', + 'asan%': 0, + 'lsan%': 0, + 'msan%': 0, + 'tsan%': 0, + # Enable coverage gathering instrumentation in sanitizer tools. This flag + # also controls coverage granularity (1 for function-level, 2 for + # block-level, 3 for edge-level). + 'sanitizer_coverage%': 0, + + # Use dynamic libraries instrumented by one of the sanitizers + # instead of the standard system libraries. Set this flag to download + # prebuilt binaries from GCS. + 'use_prebuilt_instrumented_libraries%': 0, + + # Use libc++ (buildtools/third_party/libc++ and + # buildtools/third_party/libc++abi) instead of stdlibc++ as standard + # library. This is intended to be used for instrumented builds. + 'use_custom_libcxx%': 0, + + 'clang_dir%': '<(base_dir)/third_party/llvm-build/Release+Asserts', + 'make_clang_dir%': '<(base_dir)/third_party/llvm-build/Release+Asserts', + + # Control Flow Integrity for virtual calls and casts. + # See http://clang.llvm.org/docs/ControlFlowIntegrity.html + 'cfi_vptr%': 0, + 'cfi_diag%': 0, + + 'cfi_blacklist%': '<(base_dir)/tools/cfi/blacklist.txt', + + # Set to 1 to enable fast builds. + # TODO(machenbach): Only configured for windows. + 'fastbuild%': 0, + + # goma settings. + # 1 to use goma. + # If no gomadir is set, it uses the default gomadir. + 'use_goma%': 0, + 'gomadir%': '', + + 'test_isolation_mode%': 'noop', + + # By default, use ICU data file (icudtl.dat). + 'icu_use_data_file_flag%': 1, + + 'conditions': [ + # Set default gomadir. + ['OS=="win"', { + 'gomadir': 'c:\\goma\\goma-win', + }, { + 'gomadir': '<!(/bin/echo -n ${HOME}/goma)', + }], + ['host_arch!="ppc" and host_arch!="ppc64" and host_arch!="ppc64le" and host_arch!="s390" and host_arch!="s390x"', { + 'host_clang%': 1, + }, { + 'host_clang%': 0, + }], + # linux_use_bundled_gold: whether to use the gold linker binary checked + # into third_party/binutils. Force this off via GYP_DEFINES when you + # are using a custom toolchain and need to control -B in ldflags. + # Do not use 32-bit gold on 32-bit hosts as it runs out address space + # for component=static_library builds. + ['((OS=="linux" or OS=="android") and (target_arch=="x64" or target_arch=="arm" or (target_arch=="ia32" and host_arch=="x64"))) or (OS=="linux" and target_arch=="mipsel")', { + 'linux_use_bundled_gold%': 1, + }, { + 'linux_use_bundled_gold%': 0, + }], + ], + }, + 'base_dir%': '<(base_dir)', + 'clang_dir%': '<(clang_dir)', + 'make_clang_dir%': '<(make_clang_dir)', + 'host_arch%': '<(host_arch)', + 'host_clang%': '<(host_clang)', + 'target_arch%': '<(target_arch)', + 'v8_target_arch%': '<(v8_target_arch)', + 'werror%': '-Werror', + 'use_goma%': '<(use_goma)', + 'gomadir%': '<(gomadir)', + 'asan%': '<(asan)', + 'lsan%': '<(lsan)', + 'msan%': '<(msan)', + 'tsan%': '<(tsan)', + 'sanitizer_coverage%': '<(sanitizer_coverage)', + 'use_prebuilt_instrumented_libraries%': '<(use_prebuilt_instrumented_libraries)', + 'use_custom_libcxx%': '<(use_custom_libcxx)', + 'linux_use_bundled_gold%': '<(linux_use_bundled_gold)', + 'cfi_vptr%': '<(cfi_vptr)', + 'cfi_diag%': '<(cfi_diag)', + 'cfi_blacklist%': '<(cfi_blacklist)', + 'test_isolation_mode%': '<(test_isolation_mode)', + 'fastbuild%': '<(fastbuild)', + 'coverage%': '<(coverage)', + 'sysroot%': '<(sysroot)', + 'icu_use_data_file_flag%': '<(icu_use_data_file_flag)', + + # .gyp files or targets should set v8_code to 1 if they build V8 specific + # code, as opposed to external code. This variable is used to control such + # things as the set of warnings to enable, and whether warnings are treated + # as errors. + 'v8_code%': 0, + + # Speeds up Debug builds: + # 0 - Compiler optimizations off (debuggable) (default). This may + # be 5x slower than Release (or worse). + # 1 - Turn on optimizations and disable slow DCHECKs, but leave + # V8_ENABLE_CHECKS and most other assertions enabled. This may cause + # some v8 tests to fail in the Debug configuration. This roughly + # matches the performance of a Release build and can be used by + # embedders that need to build their own code as debug but don't want + # or need a debug version of V8. This should produce near-release + # speeds. + 'v8_optimized_debug%': 0, + + # Use external files for startup data blobs: + # the JS builtins sources and the start snapshot. + # Embedders that don't use standalone.gypi will need to add + # their own default value. + 'v8_use_external_startup_data%': 1, + + # Relative path to icu.gyp from this file. + 'icu_gyp_path': '../third_party/icu/icu.gyp', + + 'conditions': [ + ['(v8_target_arch=="arm" and host_arch!="arm") or \ + (v8_target_arch=="arm64" and host_arch!="arm64") or \ + (v8_target_arch=="mipsel" and host_arch!="mipsel") or \ + (v8_target_arch=="mips64el" and host_arch!="mips64el") or \ + (v8_target_arch=="x64" and host_arch!="x64") or \ + (OS=="android" or OS=="qnx")', { + 'want_separate_host_toolset': 1, + }, { + 'want_separate_host_toolset': 0, + }], + ['OS == "win"', { + 'os_posix%': 0, + }, { + 'os_posix%': 1, + }], + ['OS=="win" and use_goma==1', { + # goma doesn't support pch yet. + 'chromium_win_pch': 0, + # goma doesn't support PDB yet. + 'fastbuild%': 1, + }], + ['((v8_target_arch=="ia32" or v8_target_arch=="x64") and \ + (OS=="linux" or OS=="mac")) or (v8_target_arch=="ppc64" and OS=="linux")', { + 'v8_enable_gdbjit%': 1, + }, { + 'v8_enable_gdbjit%': 0, + }], + ['(OS=="linux" or OS=="mac") and (target_arch=="ia32" or target_arch=="x64") and \ + v8_target_arch!="x32"', { + 'clang%': 1, + }, { + 'clang%': 0, + }], + ['asan==1 or lsan==1 or msan==1 or tsan==1', { + 'clang%': 1, + 'use_allocator%': 'none', + }], + ['asan==1 and OS=="linux"', { + 'use_custom_libcxx%': 1, + }], + ['tsan==1', { + 'use_custom_libcxx%': 1, + }], + ['msan==1', { + # Use a just-built, MSan-instrumented libc++ instead of the system-wide + # libstdc++. This is required to avoid false positive reports whenever + # the C++ standard library is used. + 'use_custom_libcxx%': 1, + }], + ['OS=="android"', { + # Location of Android NDK. + 'variables': { + 'variables': { + # The Android toolchain needs to use the absolute path to the NDK + # because it is used at different levels in the GYP files. + 'android_ndk_root%': '<(base_dir)/third_party/android_ndk/', + 'android_host_arch%': "<!(uname -m | sed -e 's/i[3456]86/x86/')", + # Version of the NDK. Used to ensure full rebuilds on NDK rolls. + 'android_ndk_version%': 'r12b', + 'host_os%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/mac/')", + 'os_folder_name%': "<!(uname -s | sed -e 's/Linux/linux/;s/Darwin/darwin/')", + }, + + # Copy conditionally-set variables out one scope. + 'android_ndk_root%': '<(android_ndk_root)', + 'android_ndk_version%': '<(android_ndk_version)', + 'host_os%': '<(host_os)', + 'os_folder_name%': '<(os_folder_name)', + + 'conditions': [ + ['target_arch == "ia32"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/x86-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'x86', + 'android_target_platform%': '16', + 'arm_version%': 'default', + }], + ['target_arch == "x64"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/x86_64-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'x86_64', + 'android_target_platform%': '21', + 'arm_version%': 'default', + }], + ['target_arch=="arm"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/arm-linux-androideabi-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'arm', + 'android_target_platform%': '16', + 'arm_version%': 7, + }], + ['target_arch == "arm64"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/aarch64-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'arm64', + 'android_target_platform%': '21', + 'arm_version%': 'default', + }], + ['target_arch == "mipsel"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/mipsel-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'mips', + 'android_target_platform%': '16', + 'arm_version%': 'default', + }], + ['target_arch == "mips64el"', { + 'android_toolchain%': '<(android_ndk_root)/toolchains/mips64el-linux-android-4.9/prebuilt/<(os_folder_name)-<(android_host_arch)/bin', + 'android_target_arch%': 'mips64', + 'android_target_platform%': '21', + 'arm_version%': 'default', + }], + ], + }, + + # Copy conditionally-set variables out one scope. + 'android_ndk_version%': '<(android_ndk_version)', + 'android_target_arch%': '<(android_target_arch)', + 'android_target_platform%': '<(android_target_platform)', + 'android_toolchain%': '<(android_toolchain)', + 'arm_version%': '<(arm_version)', + 'host_os%': '<(host_os)', + + # Print to stdout on Android. + 'v8_android_log_stdout%': 1, + + 'conditions': [ + ['android_ndk_root==""', { + 'variables': { + 'android_sysroot': '<(android_toolchain)/sysroot/', + 'android_stl': '<(android_toolchain)/sources/cxx-stl/', + }, + 'conditions': [ + ['target_arch=="x64"', { + 'android_lib': '<(android_sysroot)/usr/lib64', + }, { + 'android_lib': '<(android_sysroot)/usr/lib', + }], + ], + 'android_libcpp_include': '<(android_stl)/llvm-libc++/libcxx/include', + 'android_libcpp_abi_include': '<(android_stl)/llvm-libc++abi/libcxxabi/include', + 'android_libcpp_libs': '<(android_stl)/llvm-libc++/libs', + 'android_support_include': '<(android_toolchain)/sources/android/support/include', + 'android_sysroot': '<(android_sysroot)', + }, { + 'variables': { + 'android_sysroot': '<(android_ndk_root)/platforms/android-<(android_target_platform)/arch-<(android_target_arch)', + 'android_stl': '<(android_ndk_root)/sources/cxx-stl/', + }, + 'conditions': [ + ['target_arch=="x64"', { + 'android_lib': '<(android_sysroot)/usr/lib64', + }, { + 'android_lib': '<(android_sysroot)/usr/lib', + }], + ], + 'android_libcpp_include': '<(android_stl)/llvm-libc++/libcxx/include', + 'android_libcpp_abi_include': '<(android_stl)/llvm-libc++abi/libcxxabi/include', + 'android_libcpp_libs': '<(android_stl)/llvm-libc++/libs', + 'android_support_include': '<(android_ndk_root)/sources/android/support/include', + 'android_sysroot': '<(android_sysroot)', + }], + ], + 'android_libcpp_library': 'c++_static', + }], # OS=="android" + ['host_clang==1', { + 'conditions':[ + ['OS=="android"', { + 'host_ld': '<!(which ld)', + 'host_ranlib': '<!(which ranlib)', + }], + ], + 'host_cc': '<(clang_dir)/bin/clang', + 'host_cxx': '<(clang_dir)/bin/clang++', + }, { + 'host_cc': '<!(which gcc)', + 'host_cxx': '<!(which g++)', + }], + ], + # Default ARM variable settings. + 'arm_version%': 'default', + 'arm_fpu%': 'vfpv3', + 'arm_float_abi%': 'default', + 'arm_thumb': 'default', + + # Default MIPS variable settings. + 'mips_arch_variant%': 'r2', + # Possible values fp32, fp64, fpxx. + # fp32 - 32 32-bit FPU registers are available, doubles are placed in + # register pairs. + # fp64 - 32 64-bit FPU registers are available. + # fpxx - compatibility mode, it chooses fp32 or fp64 depending on runtime + # detection + 'mips_fpu_mode%': 'fp32', + }, + 'target_defaults': { + 'variables': { + 'v8_code%': '<(v8_code)', + 'clang_warning_flags': [ + '-Wsign-compare', + # TODO(thakis): https://crbug.com/604888 + '-Wno-undefined-var-template', + # TODO(yangguo): issue 5258 + '-Wno-nonportable-include-path', + '-Wno-tautological-constant-compare', + ], + 'conditions':[ + ['OS=="android"', { + 'host_os%': '<(host_os)', + }], + ], + }, + 'includes': [ 'set_clang_warning_flags.gypi', ], + 'default_configuration': 'Debug', + 'configurations': { + 'DebugBaseCommon': { + 'conditions': [ + ['OS=="aix"', { + 'cflags': [ '-g', '-Og', '-gxcoff' ], + }, { + 'cflags': [ '-g', '-O0' ], + }], + ], + }, + 'Optdebug': { + 'inherit_from': [ 'DebugBaseCommon', 'DebugBase1' ], + }, + 'Debug': { + # Xcode insists on this empty entry. + }, + 'Release': { + 'cflags+': ['<@(release_extra_cflags)'], + }, + 'conditions': [ + ['OS=="win"', { + 'Optdebug_x64': { + 'inherit_from': ['Optdebug'], + }, + 'Debug_x64': { + 'inherit_from': ['Debug'], + }, + 'Release_x64': { + 'inherit_from': ['Release'], + }, + }], + ], + }, + 'conditions':[ + ['clang==0', { + 'cflags+': [ + '-Wno-uninitialized', + ], + }], + ['clang==1 or host_clang==1', { + # This is here so that all files get recompiled after a clang roll and + # when turning clang on or off. + # (defines are passed via the command line, and build systems rebuild + # things when their commandline changes). Nothing should ever read this + # define. + 'defines': ['CR_CLANG_REVISION=<!(python <(DEPTH)/tools/clang/scripts/update.py --print-revision)'], + }], + ['clang==1 and target_arch=="ia32"', { + 'cflags': ['-mstack-alignment=16', '-mstackrealign'], + }], + ['fastbuild!=0', { + 'conditions': [ + ['OS=="win" and fastbuild==1', { + 'msvs_settings': { + 'VCLinkerTool': { + # This tells the linker to generate .pdbs, so that + # we can get meaningful stack traces. + 'GenerateDebugInformation': 'true', + }, + 'VCCLCompilerTool': { + # No debug info to be generated by compiler. + 'DebugInformationFormat': '0', + }, + }, + }], + ], + }], # fastbuild!=0 + ], + 'target_conditions': [ + ['v8_code == 0', { + 'defines!': [ + 'DEBUG', + ], + 'conditions': [ + ['os_posix == 1 and OS != "mac"', { + # We don't want to get warnings from third-party code, + # so remove any existing warning-enabling flags like -Wall. + 'cflags!': [ + '-pedantic', + '-Wall', + '-Werror', + '-Wextra', + '-Wshorten-64-to-32', + ], + 'cflags+': [ + # Clang considers the `register` keyword as deprecated, but + # ICU uses it all over the place. + '-Wno-deprecated-register', + # ICU uses its own deprecated functions. + '-Wno-deprecated-declarations', + # ICU prefers `a && b || c` over `(a && b) || c`. + '-Wno-logical-op-parentheses', + # ICU has some `unsigned < 0` checks. + '-Wno-tautological-compare', + # uresdata.c has switch(RES_GET_TYPE(x)) code. The + # RES_GET_TYPE macro returns an UResType enum, but some switch + # statement contains case values that aren't part of that + # enum (e.g. URES_TABLE32 which is in UResInternalType). This + # is on purpose. + '-Wno-switch', + ], + 'cflags_cc!': [ + '-Wnon-virtual-dtor', + ], + }], + ['OS == "mac"', { + 'xcode_settings': { + 'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO', # -Werror + }, + }], + ['OS == "win"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'WarnAsError': 'false', + }, + }, + }], + ], + }], + ], + }, + 'conditions': [ + ['os_posix==1 and OS!="mac"', { + 'target_defaults': { + 'conditions': [ + # Common options for AddressSanitizer, LeakSanitizer, + # ThreadSanitizer, MemorySanitizer and CFI builds. + ['asan==1 or lsan==1 or tsan==1 or msan==1 or cfi_vptr==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fno-omit-frame-pointer', + '-gline-tables-only', + ], + 'cflags!': [ + '-fomit-frame-pointer', + ], + }], + ], + }], + ['asan==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize=address', + ], + 'ldflags': [ + '-fsanitize=address', + ], + 'defines': [ + 'ADDRESS_SANITIZER', + ], + }], + ], + }], + ['lsan==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize=leak', + ], + 'ldflags': [ + '-fsanitize=leak', + ], + 'defines': [ + 'LEAK_SANITIZER', + ], + }], + ], + }], + ['tsan==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize=thread', + ], + 'ldflags': [ + '-fsanitize=thread', + ], + 'defines': [ + 'THREAD_SANITIZER', + ], + }], + ], + }], + ['msan==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize=memory', + '-fsanitize-memory-track-origins=<(msan_track_origins)', + '-fPIC', + ], + 'ldflags': [ + '-fsanitize=memory', + '-pie', + ], + 'defines': [ + 'MEMORY_SANITIZER', + ], + }], + ], + }], + ['use_prebuilt_instrumented_libraries==1', { + 'dependencies': [ + '<(DEPTH)/third_party/instrumented_libraries/instrumented_libraries.gyp:prebuilt_instrumented_libraries', + ], + }], + ['use_custom_libcxx==1', { + 'dependencies': [ + '<(DEPTH)/buildtools/third_party/libc++/libc++.gyp:libcxx_proxy', + ], + }], + ['sanitizer_coverage!=0', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize-coverage=<(sanitizer_coverage)', + ], + 'defines': [ + 'SANITIZER_COVERAGE', + ], + }], + ], + }], + ['linux_use_bundled_gold==1', { + # Put our binutils, which contains gold in the search path. We pass + # the path to gold to the compiler. gyp leaves unspecified what the + # cwd is when running the compiler, so the normal gyp path-munging + # fails us. This hack gets the right path. + 'ldflags': [ + # Note, Chromium allows ia32 host arch as well, we limit this to + # x64 in v8. + '-B<(base_dir)/third_party/binutils/Linux_x64/Release/bin', + ], + }], + ['sysroot!="" and clang==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'variables': { + 'ld_paths': ['<!(<(DEPTH)/build/linux/sysroot_ld_path.sh <(sysroot))'], + }, + 'cflags': [ + '--sysroot=<(sysroot)', + ], + 'ldflags': [ + '--sysroot=<(sysroot)', + '<!(<(base_dir)/gypfiles/sysroot_ld_flags.sh <@(ld_paths))', + ], + }]] + }], + ], + }, + }], + ['OS=="mac"', { + 'target_defaults': { + 'conditions': [ + ['asan==1', { + 'xcode_settings': { + # FIXME(machenbach): This is outdated compared to common.gypi. + 'OTHER_CFLAGS+': [ + '-fno-omit-frame-pointer', + '-gline-tables-only', + '-fsanitize=address', + '-w', # http://crbug.com/162783 + ], + 'OTHER_CFLAGS!': [ + '-fomit-frame-pointer', + ], + 'defines': [ + 'ADDRESS_SANITIZER', + ], + }, + 'dependencies': [ + '<(DEPTH)/gypfiles/mac/asan.gyp:asan_dynamic_runtime', + ], + 'target_conditions': [ + ['_type!="static_library"', { + 'xcode_settings': {'OTHER_LDFLAGS': ['-fsanitize=address']}, + }], + ], + }], + ['sanitizer_coverage!=0', { + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags': [ + '-fsanitize-coverage=<(sanitizer_coverage)', + ], + 'defines': [ + 'SANITIZER_COVERAGE', + ], + }], + ], + }], + ], + }, # target_defaults + }], # OS=="mac" + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ + or OS=="netbsd" or OS=="aix"', { + 'target_defaults': { + 'cflags': [ + '-Wall', + '<(werror)', + '-Wno-unused-parameter', + '-pthread', + '-pedantic', + '-Wno-missing-field-initializers', + '-Wno-gnu-zero-variadic-macro-arguments', + ], + 'cflags_cc': [ + '-Wnon-virtual-dtor', + '-fno-exceptions', + '-fno-rtti', + '-std=gnu++11', + ], + 'ldflags': [ '-pthread', ], + 'conditions': [ + # Don't warn about TRACE_EVENT_* macros with zero arguments passed to + # ##__VA_ARGS__. C99 strict mode prohibits having zero variadic macro + # arguments in gcc. + [ 'clang==0', { + 'cflags!' : [ + '-pedantic' , + # Don't warn about unrecognized command line option. + '-Wno-gnu-zero-variadic-macro-arguments', + ], + 'cflags' : [ + # Disable gcc warnings for optimizations based on the assumption + # that signed overflow does not occur. Generates false positives + # (see http://crbug.com/v8/6341). + "-Wno-strict-overflow", + # Don't rely on strict aliasing; v8 does weird pointer casts all + # over the place. + '-fno-strict-aliasing', + ], + }, { + 'cflags' : [ + # TODO(hans): https://crbug.com/767059 + '-Wno-tautological-constant-compare', + ], + }], + [ 'clang==1 and (v8_target_arch=="x64" or v8_target_arch=="arm64" \ + or v8_target_arch=="mips64el")', { + 'cflags': [ '-Wshorten-64-to-32' ], + }], + [ 'host_arch=="ppc64" and OS!="aix"', { + 'cflags': [ '-mminimal-toc' ], + }], + [ 'visibility=="hidden" and v8_enable_backtrace==0', { + 'cflags': [ '-fvisibility=hidden' ], + }], + [ 'component=="shared_library"', { + 'cflags': [ '-fPIC', ], + }], + [ 'clang==0 and coverage==1', { + 'cflags': [ '-fprofile-arcs', '-ftest-coverage'], + 'ldflags': [ '-fprofile-arcs'], + }], + ], + }, + }], + # 'OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" + # or OS=="netbsd"' + ['OS=="qnx"', { + 'target_defaults': { + 'cflags': [ + '-Wall', + '<(werror)', + '-Wno-unused-parameter', + # Don't warn about the "struct foo f = {0};" initialization pattern. + '-Wno-missing-field-initializers', + '-Wno-gnu-zero-variadic-macro-arguments', + ], + 'cflags_cc': [ + '-Wnon-virtual-dtor', + '-fno-exceptions', + '-fno-rtti', + '-std=gnu++11', + ], + 'conditions': [ + [ 'visibility=="hidden"', { + 'cflags': [ '-fvisibility=hidden' ], + }], + [ 'component=="shared_library"', { + 'cflags': [ '-fPIC' ], + }], + ], + 'target_conditions': [ + [ '_toolset=="host" and host_os=="linux"', { + 'cflags': [ '-pthread' ], + 'ldflags': [ '-pthread' ], + 'libraries': [ '-lrt' ], + }], + [ '_toolset=="target"', { + 'cflags': [ '-Wno-psabi' ], + 'libraries': [ '-lbacktrace', '-lsocket', '-lm' ], + }], + ], + }, + }], # OS=="qnx" + ['OS=="win"', { + 'target_defaults': { + 'defines': [ + '_CRT_SECURE_NO_DEPRECATE', + '_CRT_NONSTDC_NO_DEPRECATE', + '_USING_V110_SDK71_', + ], + 'conditions': [ + ['component=="static_library"', { + 'defines': [ + '_HAS_EXCEPTIONS=0', + ], + }], + ], + 'msvs_cygwin_shell': 0, + 'msvs_disabled_warnings': [ + # C4091: 'typedef ': ignored on left of 'X' when no variable is + # declared. + # This happens in a number of Windows headers. Dumb. + 4091, + + # C4127: conditional expression is constant + # This warning can in theory catch dead code and other problems, but + # triggers in far too many desirable cases where the conditional + # expression is either set by macros or corresponds some legitimate + # compile-time constant expression (due to constant template args, + # conditionals comparing the sizes of different types, etc.). Some of + # these can be worked around, but it's not worth it. + 4127, + + # C4351: new behavior: elements of array 'array' will be default + # initialized + # This is a silly "warning" that basically just alerts you that the + # compiler is going to actually follow the language spec like it's + # supposed to, instead of not following it like old buggy versions + # did. There's absolutely no reason to turn this on. + 4351, + + # C4355: 'this': used in base member initializer list + # It's commonly useful to pass |this| to objects in a class' + # initializer list. While this warning can catch real bugs, most of + # the time the constructors in question don't attempt to call methods + # on the passed-in pointer (until later), and annotating every legit + # usage of this is simply more hassle than the warning is worth. + 4355, + + # C4503: 'identifier': decorated name length exceeded, name was + # truncated + # This only means that some long error messages might have truncated + # identifiers in the presence of lots of templates. It has no effect + # on program correctness and there's no real reason to waste time + # trying to prevent it. + 4503, + + # Warning C4589 says: "Constructor of abstract class ignores + # initializer for virtual base class." Disable this warning because it + # is flaky in VS 2015 RTM. It triggers on compiler generated + # copy-constructors in some cases. + 4589, + + # C4611: interaction between 'function' and C++ object destruction is + # non-portable + # This warning is unavoidable when using e.g. setjmp/longjmp. MSDN + # suggests using exceptions instead of setjmp/longjmp for C++, but + # Chromium code compiles without exception support. We therefore have + # to use setjmp/longjmp for e.g. JPEG decode error handling, which + # means we have to turn off this warning (and be careful about how + # object destruction happens in such cases). + 4611, + + # TODO(jochen): These warnings are level 4. They will be slowly + # removed as code is fixed. + 4100, # Unreferenced formal parameter + 4121, # Alignment of a member was sensitive to packing + 4244, # Conversion from 'type1' to 'type2', possible loss of data + 4302, # Truncation from 'type 1' to 'type 2' + 4309, # Truncation of constant value + 4311, # Pointer truncation from 'type' to 'type' + 4312, # Conversion from 'type1' to 'type2' of greater size + 4505, # Unreferenced local function has been removed + 4510, # Default constructor could not be generated + 4512, # Assignment operator could not be generated + 4610, # Object can never be instantiated + 4800, # Forcing value to bool. + 4838, # Narrowing conversion. Doesn't seem to be very useful. + 4995, # 'X': name was marked as #pragma deprecated + 4996, # 'X': was declared deprecated (for GetVersionEx). + + # These are variable shadowing warnings that are new in VS2015. We + # should work through these at some point -- they may be removed from + # the RTM release in the /W4 set. + 4456, 4457, 4458, 4459, + ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'MinimalRebuild': 'false', + 'BufferSecurityCheck': 'true', + 'EnableFunctionLevelLinking': 'true', + 'RuntimeTypeInfo': 'false', + 'WarningLevel': '3', + 'WarnAsError': 'true', + 'DebugInformationFormat': '3', + 'Detect64BitPortabilityProblems': 'false', + 'conditions': [ + [ 'msvs_multi_core_compile', { + 'AdditionalOptions': ['/MP'], + }], + ['component=="shared_library"', { + 'ExceptionHandling': '1', # /EHsc + }, { + 'ExceptionHandling': '0', + }], + ], + }, + 'VCLibrarianTool': { + 'AdditionalOptions': ['/ignore:4221'], + 'conditions': [ + ['v8_target_arch=="x64"', { + 'TargetMachine': '17', # x64 + }, { + 'TargetMachine': '1', # ia32 + }], + ], + }, + 'VCLinkerTool': { + 'AdditionalDependencies': [ + 'ws2_32.lib', + ], + 'GenerateDebugInformation': 'true', + 'MapFileName': '$(OutDir)\\$(TargetName).map', + 'ImportLibrary': '$(OutDir)\\lib\\$(TargetName).lib', + 'FixedBaseAddress': '1', + # LinkIncremental values: + # 0 == default + # 1 == /INCREMENTAL:NO + # 2 == /INCREMENTAL + 'LinkIncremental': '1', + # SubSystem values: + # 0 == not set + # 1 == /SUBSYSTEM:CONSOLE + # 2 == /SUBSYSTEM:WINDOWS + 'SubSystem': '1', + + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'AdditionalDependencies': [ + 'advapi32.lib', + ], + }], + ['v8_target_arch=="x64"', { + 'MinimumRequiredVersion': '5.02', # Server 2003. + 'TargetMachine': '17', # x64 + }, { + 'MinimumRequiredVersion': '5.01', # XP. + 'TargetMachine': '1', # ia32 + }], + ], + }, + 'conditions': [ + ['clang==1', { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ + # Don't warn about unused function parameters. + # (This is also used on other platforms.) + '-Wno-unused-parameter', + # Don't warn about the "struct foo f = {0};" initialization + # pattern. + '-Wno-missing-field-initializers', + + # TODO(hans): Make this list shorter eventually, http://crbug.com/504657 + '-Qunused-arguments', # http://crbug.com/504658 + '-Wno-microsoft-enum-value', # http://crbug.com/505296 + '-Wno-unknown-pragmas', # http://crbug.com/505314 + '-Wno-microsoft-cast', # http://crbug.com/550065 + ], + }, + }], + ['clang==1 and MSVS_VERSION == "2013"', { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ + '-fmsc-version=1800', + ], + }, + }], + ['clang==1 and MSVS_VERSION == "2015"', { + 'VCCLCompilerTool': { + 'AdditionalOptions': [ + '-fmsc-version=1900', + ], + }, + }], + ], + }, + }, + }], # OS=="win" + ['OS=="mac"', { + 'xcode_settings': { + 'SDKROOT': 'macosx', + 'SYMROOT': '<(DEPTH)/xcodebuild', + }, + 'target_defaults': { + 'xcode_settings': { + 'ALWAYS_SEARCH_USER_PATHS': 'NO', + 'GCC_C_LANGUAGE_STANDARD': 'c99', # -std=c99 + 'GCC_CW_ASM_SYNTAX': 'NO', # No -fasm-blocks + 'GCC_DYNAMIC_NO_PIC': 'NO', # No -mdynamic-no-pic + # (Equivalent to -fPIC) + 'GCC_ENABLE_CPP_EXCEPTIONS': 'NO', # -fno-exceptions + 'GCC_ENABLE_CPP_RTTI': 'NO', # -fno-rtti + 'GCC_ENABLE_PASCAL_STRINGS': 'NO', # No -mpascal-strings + # GCC_INLINES_ARE_PRIVATE_EXTERN maps to -fvisibility-inlines-hidden + 'GCC_INLINES_ARE_PRIVATE_EXTERN': 'YES', + 'GCC_SYMBOLS_PRIVATE_EXTERN': 'YES', # -fvisibility=hidden + 'GCC_THREADSAFE_STATICS': 'NO', # -fno-threadsafe-statics + 'GCC_WARN_NON_VIRTUAL_DESTRUCTOR': 'YES', # -Wnon-virtual-dtor + # MACOSX_DEPLOYMENT_TARGET maps to -mmacosx-version-min + 'MACOSX_DEPLOYMENT_TARGET': '<(mac_deployment_target)', + 'PREBINDING': 'NO', # No -Wl,-prebind + 'SYMROOT': '<(DEPTH)/xcodebuild', + 'USE_HEADERMAP': 'NO', + 'OTHER_CFLAGS': [ + '-fno-strict-aliasing', + ], + 'WARNING_CFLAGS': [ + '-Wall', + '-Wendif-labels', + '-Wno-unused-parameter', + # Don't warn about the "struct foo f = {0};" initialization pattern. + '-Wno-missing-field-initializers', + '-Wno-gnu-zero-variadic-macro-arguments', + ], + }, + 'conditions': [ + ['werror==""', { + 'xcode_settings': {'GCC_TREAT_WARNINGS_AS_ERRORS': 'NO'}, + }, { + 'xcode_settings': {'GCC_TREAT_WARNINGS_AS_ERRORS': 'YES'}, + }], + ['clang==1', { + 'xcode_settings': { + 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0', + 'CLANG_CXX_LANGUAGE_STANDARD': 'c++11', # -std=c++11 + }, + 'conditions': [ + ['clang_xcode==0', { + 'xcode_settings': { + 'CC': '<(clang_dir)/bin/clang', + 'LDPLUSPLUS': '<(clang_dir)/bin/clang++', + 'CLANG_CXX_LIBRARY': 'libc++' + }, + }], + ['v8_target_arch=="x64" or v8_target_arch=="arm64" \ + or v8_target_arch=="mips64el"', { + 'xcode_settings': {'WARNING_CFLAGS': ['-Wshorten-64-to-32']}, + }], + ], + }], + ], + 'target_conditions': [ + ['_type!="static_library"', { + 'xcode_settings': {'OTHER_LDFLAGS': ['-Wl,-search_paths_first']}, + }], + ], # target_conditions + }, # target_defaults + }], # OS=="mac" + ['OS=="android"', { + 'target_defaults': { + 'defines': [ + 'ANDROID', + ], + 'configurations': { + 'Release': { + 'cflags': [ + '-fomit-frame-pointer', + ], + }, # Release + }, # configurations + 'cflags': [ '-Wno-abi', '-Wall', '-W', '-Wno-unused-parameter'], + 'cflags_cc': [ '-Wnon-virtual-dtor', '-fno-rtti', '-fno-exceptions', + '-std=gnu++11' ], + 'target_conditions': [ + ['_toolset=="target"', { + 'cflags!': [ + '-pthread', # Not supported by Android toolchain. + ], + 'cflags': [ + '-ffunction-sections', + '-funwind-tables', + '-fstack-protector', + '-fno-short-enums', + '-finline-limit=64', + '-Wa,--noexecstack', + '--sysroot=<(android_sysroot)', + ], + 'cflags_cc': [ + '-isystem<(android_libcpp_include)', + '-isystem<(android_libcpp_abi_include)', + '-isystem<(android_support_include)', + ], + 'defines': [ + 'ANDROID', + #'__GNU_SOURCE=1', # Necessary for clone() + 'HAVE_OFF64_T', + 'HAVE_SYS_UIO_H', + 'ANDROID_BINSIZE_HACK', # Enable temporary hacks to reduce binsize. + 'ANDROID_NDK_VERSION=<(android_ndk_version)', + ], + 'ldflags!': [ + '-pthread', # Not supported by Android toolchain. + ], + 'ldflags': [ + '-Wl,--no-undefined', + '--sysroot=<(android_sysroot)', + '-nostdlib', + ], + 'libraries!': [ + '-lrt', # librt is built into Bionic. + # Not supported by Android toolchain. + # Where do these come from? Can't find references in + # any Chromium gyp or gypi file. Maybe they come from + # gyp itself? + '-lpthread', '-lnss3', '-lnssutil3', '-lsmime3', '-lplds4', '-lplc4', '-lnspr4', + ], + 'libraries': [ + '-l<(android_libcpp_library)', + '-latomic', + # Manually link the libgcc.a that the cross compiler uses. + '<!(<(android_toolchain)/*-gcc -print-libgcc-file-name)', + '-lc', + '-ldl', + '-lm', + ], + 'conditions': [ + ['target_arch == "arm"', { + 'ldflags': [ + # Enable identical code folding to reduce size. + '-Wl,--icf=safe', + ], + }], + ['target_arch=="arm" and arm_version==7', { + 'cflags': [ + '-march=armv7-a', + '-mtune=cortex-a8', + '-mfpu=vfp3', + ], + 'ldflags': [ + '-L<(android_libcpp_libs)/armeabi-v7a', + ], + }], + ['target_arch=="arm" and arm_version < 7', { + 'ldflags': [ + '-L<(android_libcpp_libs)/armeabi', + ], + }], + ['target_arch=="x64"', { + 'ldflags': [ + '-L<(android_libcpp_libs)/x86_64', + ], + }], + ['target_arch=="arm64"', { + 'ldflags': [ + '-L<(android_libcpp_libs)/arm64-v8a', + ], + }], + ['target_arch=="ia32"', { + # The x86 toolchain currently has problems with stack-protector. + 'cflags!': [ + '-fstack-protector', + ], + 'cflags': [ + '-fno-stack-protector', + ], + 'ldflags': [ + '-L<(android_libcpp_libs)/x86', + ], + }], + ['target_arch=="mipsel"', { + # The mips toolchain currently has problems with stack-protector. + 'cflags!': [ + '-fstack-protector', + '-U__linux__' + ], + 'cflags': [ + '-fno-stack-protector', + ], + 'ldflags': [ + '-L<(android_libcpp_libs)/mips', + ], + }], + ['(target_arch=="arm" or target_arch=="arm64" or target_arch=="x64" or target_arch=="ia32") and component!="shared_library"', { + 'cflags': [ + '-fPIE', + ], + 'ldflags': [ + '-pie', + ], + }], + ], + 'target_conditions': [ + ['_type=="executable"', { + 'conditions': [ + ['target_arch=="arm64" or target_arch=="x64"', { + 'ldflags': [ + '-Wl,-dynamic-linker,/system/bin/linker64', + ], + }, { + 'ldflags': [ + '-Wl,-dynamic-linker,/system/bin/linker', + ], + }] + ], + 'ldflags': [ + '-Bdynamic', + '-Wl,-z,nocopyreloc', + # crtbegin_dynamic.o should be the last item in ldflags. + '<(android_lib)/crtbegin_dynamic.o', + ], + 'libraries': [ + # crtend_android.o needs to be the last item in libraries. + # Do not add any libraries after this! + '<(android_lib)/crtend_android.o', + ], + }], + ['_type=="shared_library"', { + 'ldflags': [ + '-Wl,-shared,-Bsymbolic', + '<(android_lib)/crtbegin_so.o', + ], + }], + ['_type=="static_library"', { + 'ldflags': [ + # Don't export symbols from statically linked libraries. + '-Wl,--exclude-libs=ALL', + ], + }], + ], + }], # _toolset=="target" + # Settings for building host targets using the system toolchain. + ['_toolset=="host"', { + 'cflags': [ '-pthread' ], + 'ldflags': [ '-pthread' ], + 'ldflags!': [ + '-Wl,-z,noexecstack', + '-Wl,--gc-sections', + '-Wl,-O1', + '-Wl,--as-needed', + ], + }], + ], # target_conditions + }, # target_defaults + }], # OS=="android" + ['OS=="android" and clang==0', { + # Hardcode the compiler names in the Makefile so that + # it won't depend on the environment at make time. + 'make_global_settings': [ + ['LD', '<!(/bin/echo -n <(android_toolchain)/../*/bin/ld)'], + ['RANLIB', '<!(/bin/echo -n <(android_toolchain)/../*/bin/ranlib)'], + ['CC', '<!(/bin/echo -n <(android_toolchain)/*-gcc)'], + ['CXX', '<!(/bin/echo -n <(android_toolchain)/*-g++)'], + ['LD.host', '<(host_ld)'], + ['RANLIB.host', '<(host_ranlib)'], + ['CC.host', '<(host_cc)'], + ['CXX.host', '<(host_cxx)'], + ], + }], + ['clang!=1 and host_clang==1 and target_arch!="ia32" and target_arch!="x64"', { + 'make_global_settings': [ + ['CC.host', '<(clang_dir)/bin/clang'], + ['CXX.host', '<(clang_dir)/bin/clang++'], + ], + }], + ['clang==0 and host_clang==1 and target_arch!="ia32" and target_arch!="x64"', { + 'target_conditions': [ + ['_toolset=="host"', { + 'cflags_cc': [ '-std=gnu++11', ], + }], + ], + 'target_defaults': { + 'target_conditions': [ + ['_toolset=="host"', { 'cflags!': [ '-Wno-unused-local-typedefs' ]}], + ], + }, + }], + ['clang==1 and "<(GENERATOR)"=="ninja"', { + # See http://crbug.com/110262 + 'target_defaults': { + 'cflags': [ '-fcolor-diagnostics' ], + 'xcode_settings': { 'OTHER_CFLAGS': [ '-fcolor-diagnostics' ] }, + }, + }], + ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) ' + 'and OS!="win" and "<(GENERATOR)"=="make"', { + 'make_global_settings': [ + ['CC', '<(clang_dir)/bin/clang'], + ['CXX', '<(clang_dir)/bin/clang++'], + ['CC.host', '$(CC)'], + ['CXX.host', '$(CXX)'], + ], + }], + ['clang==1 and ((OS!="mac" and OS!="ios") or clang_xcode==0) ' + 'and OS!="win" and "<(GENERATOR)"=="ninja"', { + 'make_global_settings': [ + ['CC', '<(clang_dir)/bin/clang'], + ['CXX', '<(clang_dir)/bin/clang++'], + ['CC.host', '$(CC)'], + ['CXX.host', '$(CXX)'], + ], + }], + ['clang==1 and OS=="win"', { + 'make_global_settings': [ + # On Windows, gyp's ninja generator only looks at CC. + ['CC', '<(clang_dir)/bin/clang-cl'], + ], + }], + ['OS=="linux" and target_arch=="arm" and host_arch!="arm" and clang==0 and "<(GENERATOR)"=="ninja"', { + # Set default ARM cross tools on linux. These can be overridden + # using CC,CXX,CC.host and CXX.host environment variables. + 'make_global_settings': [ + ['CC', '<!(which arm-linux-gnueabihf-gcc)'], + ['CXX', '<!(which arm-linux-gnueabihf-g++)'], + ['CC.host', '<(host_cc)'], + ['CXX.host', '<(host_cxx)'], + ], + }], + # TODO(yyanagisawa): supports GENERATOR==make + # make generator doesn't support CC_wrapper without CC + # in make_global_settings yet. + ['use_goma==1 and ("<(GENERATOR)"=="ninja" or clang==1)', { + 'conditions': [ + ['coverage==1', { + # Wrap goma with coverage wrapper. + 'make_global_settings': [ + ['CC_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'], + ['CXX_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'], + ['CC.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'], + ['CXX.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py <(gomadir)/gomacc'], + ], + }, { + # Use only goma wrapper. + 'make_global_settings': [ + ['CC_wrapper', '<(gomadir)/gomacc'], + ['CXX_wrapper', '<(gomadir)/gomacc'], + ['CC.host_wrapper', '<(gomadir)/gomacc'], + ['CXX.host_wrapper', '<(gomadir)/gomacc'], + ], + }], + ], + }, { + 'conditions': [ + ['coverage==1', { + # Use only coverage wrapper. + 'make_global_settings': [ + ['CC_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'], + ['CXX_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'], + ['CC.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'], + ['CXX.host_wrapper', '<(base_dir)/gypfiles/coverage_wrapper.py'], + ], + }], + ], + }], + ], +} diff --git a/tools/v8_gypfiles/broken/sysroot_ld_flags.sh b/tools/v8_gypfiles/broken/sysroot_ld_flags.sh new file mode 100644 index 0000000000..5cc8011b32 --- /dev/null +++ b/tools/v8_gypfiles/broken/sysroot_ld_flags.sh @@ -0,0 +1,12 @@ +#!/bin/sh +# Copyright 2017 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +# This is for backwards-compatibility after: +# https://codereview.chromium.org/2900193003 + +for entry in $@; do + echo -L$entry + echo -Wl,-rpath-link=$entry +done | xargs echo diff --git a/tools/v8_gypfiles/broken/v8-monolithic.gyp b/tools/v8_gypfiles/broken/v8-monolithic.gyp new file mode 100644 index 0000000000..4ca6b7f193 --- /dev/null +++ b/tools/v8_gypfiles/broken/v8-monolithic.gyp @@ -0,0 +1,55 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'v8_code': 1, + 'v8_random_seed%': 314159265, + 'v8_vector_stores%': 0, + 'v8_embed_script%': "", + 'v8_extra_library_files%': [], + 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', + 'v8_os_page_size%': 0, + }, + 'includes': ['toolchain.gypi', 'features.gypi', 'inspector.gypi'], + 'targets': [ + { + 'target_name': 'v8_monolith', + 'type': 'none', + 'direct_dependent_settings': { + 'include_dirs': [ + '../include/', + ], + }, + 'actions': [ + { + 'action_name': 'build_with_gn', + 'inputs': [ + '../tools//node/build_gn.py', + ], + 'outputs': [ + '<(INTERMEDIATE_DIR)/gn/obj/libv8_monolith.a', + '<(INTERMEDIATE_DIR)/gn/args.gn', + ], + 'action': [ + '../tools//node/build_gn.py', + '--mode', '<(CONFIGURATION_NAME)', + '--v8_path', '../', + '--build_path', '<(INTERMEDIATE_DIR)/gn', + '--host_os', '<(host_os)', + '--flag', 'v8_promise_internal_field_count=<(v8_promise_internal_field_count)', + '--flag', 'target_cpu="<(target_arch)"', + '--flag', 'target_os="<(OS)"', + '--flag', 'v8_target_cpu="<(v8_target_arch)"', + '--flag', 'v8_embedder_string="<(v8_embedder_string)"', + '--flag', 'v8_use_snapshot=<(v8_use_snapshot)', + '--flag', 'v8_optimized_debug=<(v8_optimized_debug)', + '--flag', 'v8_enable_disassembler=<(v8_enable_disassembler)', + '--flag', 'v8_postmortem_support=<(v8_postmortem_support)', + ], + }, + ], + }, + ], +} diff --git a/tools/v8_gypfiles/broken/v8vtune.gyp b/tools/v8_gypfiles/broken/v8vtune.gyp new file mode 100644 index 0000000000..2a756d4b80 --- /dev/null +++ b/tools/v8_gypfiles/broken/v8vtune.gyp @@ -0,0 +1,36 @@ +# Copyright 2012 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'v8_code': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'v8_vtune', + 'type': 'static_library', + 'dependencies': [ + 'v8.gyp:v8', + ], + 'sources': [ + '../src/third_party/vtune/ittnotify_config.h', + '../src/third_party/vtune/ittnotify_types.h', + '../src/third_party/vtune/jitprofiling.cc', + '../src/third_party/vtune/jitprofiling.h', + '../src/third_party/vtune/v8-vtune.h', + '../src/third_party/vtune/vtune-jit.cc', + '../src/third_party/vtune/vtune-jit.h', + ], + 'direct_dependent_settings': { + 'defines': ['ENABLE_VTUNE_JIT_INTERFACE',], + 'conditions': [ + ['OS != "win"', { + 'libraries': ['-ldl',], + }], + ], + }, + }, + ], +} diff --git a/tools/v8_gypfiles/broken/verify_source_deps.py b/tools/v8_gypfiles/broken/verify_source_deps.py new file mode 100644 index 0000000000..396b19e901 --- /dev/null +++ b/tools/v8_gypfiles/broken/verify_source_deps.py @@ -0,0 +1,172 @@ +#!/usr/bin/env python +# Copyright 2015 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +""" +Script to print potentially missing source dependencies based on the actual +.h and .cc files in the source tree and which files are included in the gyp +and gn files. The latter inclusion is overapproximated. + +TODO(machenbach): If two source files with the same name exist, but only one +is referenced from a gyp/gn file, we won't necessarily detect it. +""" + +import itertools +import re +import os +import subprocess +import sys + + +V8_BASE = os.path.dirname(os.path.dirname(os.path.realpath(__file__))) + +GYP_FILES = [ + os.path.join(V8_BASE, 'gypfiles', 'd8.gyp'), + os.path.join(V8_BASE, 'gypfiles', 'v8.gyp'), + os.path.join(V8_BASE, 'gypfiles', 'inspector.gypi'), + os.path.join(V8_BASE, 'gypfiles', 'v8vtune.gyp'), + os.path.join(V8_BASE, 'gypfiles', 'samples.gyp'), + os.path.join(V8_BASE, 'gypfiles', 'mkgrokdump.gyp'), + os.path.join(V8_BASE, 'gypfiles', 'parser-shell.gyp'), +] + +ALL_GYP_PREFIXES = [ + '..', + 'common', + os.path.join('src', 'third_party', 'vtune'), + 'src', + 'samples', + 'testing', + 'tools', + os.path.join('test', 'common'), + os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), +] + +GYP_UNSUPPORTED_FEATURES = [ + 'gcmole', + 'setup-isolate-deserialize.cc', + 'v8-version.h' +] + +GN_FILES = [ + os.path.join(V8_BASE, 'BUILD.gn'), + os.path.join(V8_BASE, 'src', 'inspector', 'BUILD.gn'), + os.path.join(V8_BASE, 'test', 'inspector', 'BUILD.gn'), + os.path.join(V8_BASE, 'test', 'mkgrokdump', 'BUILD.gn'), + os.path.join(V8_BASE, 'tools', 'BUILD.gn'), +] + +GN_UNSUPPORTED_FEATURES = [ + 'aix', + 'cygwin', + 'freebsd', + 'gcmole', + 'openbsd', + 'ppc', + 'qnx', + 'solaris', + 'vtune', + 'v8-version.h', +] + +ALL_GN_PREFIXES = [ + '..', + os.path.join('src', 'inspector'), + 'src', + 'testing', + os.path.join('test', 'inspector'), + os.path.join('test', 'mkgrokdump'), +] + +def pathsplit(path): + return re.split('[/\\\\]', path) + +def path_no_prefix(path, prefixes): + for prefix in prefixes: + if path.startswith(prefix + os.sep): + return path_no_prefix(path[len(prefix) + 1:], prefixes) + return path + + +def isources(prefixes): + cmd = ['git', 'ls-tree', '-r', 'HEAD', '--full-name', '--name-only'] + for f in subprocess.check_output(cmd, universal_newlines=True).split('\n'): + if not (f.endswith('.h') or f.endswith('.cc')): + continue + yield path_no_prefix(os.path.join(*pathsplit(f)), prefixes) + + +def iflatten(obj): + if isinstance(obj, dict): + for value in obj.values(): + for i in iflatten(value): + yield i + elif isinstance(obj, list): + for value in obj: + for i in iflatten(value): + yield i + elif isinstance(obj, basestring): + yield path_no_prefix(os.path.join(*pathsplit(obj)), ALL_GYP_PREFIXES) + + +def iflatten_gyp_file(gyp_file): + """Overaproximates all values in the gyp file. + + Iterates over all string values recursively. Removes '../' path prefixes. + """ + with open(gyp_file) as f: + return iflatten(eval(f.read())) + + +def iflatten_gn_file(gn_file): + """Overaproximates all values in the gn file. + + Iterates over all double quoted strings. + """ + with open(gn_file) as f: + for line in f.read().splitlines(): + match = re.match(r'.*"([^"]*)".*', line) + if match: + yield path_no_prefix( + os.path.join(*pathsplit(match.group(1))), ALL_GN_PREFIXES) + + +def icheck_values(values, prefixes): + for source_file in isources(prefixes): + if source_file not in values: + yield source_file + + +def missing_gyp_files(): + gyp_values = set(itertools.chain( + *[iflatten_gyp_file(gyp_file) for gyp_file in GYP_FILES] + )) + gyp_files = sorted(icheck_values(gyp_values, ALL_GYP_PREFIXES)) + return filter( + lambda x: not any(i in x for i in GYP_UNSUPPORTED_FEATURES), gyp_files) + + +def missing_gn_files(): + gn_values = set(itertools.chain( + *[iflatten_gn_file(gn_file) for gn_file in GN_FILES] + )) + + gn_files = sorted(icheck_values(gn_values, ALL_GN_PREFIXES)) + return filter( + lambda x: not any(i in x for i in GN_UNSUPPORTED_FEATURES), gn_files) + + +def main(): + print "----------- Files not in gyp: ------------" + for i in missing_gyp_files(): + print i + + print "\n----------- Files not in gn: -------------" + for i in missing_gn_files(): + print i + return 0 + +if '__main__' == __name__: + sys.exit(main()) diff --git a/tools/v8_gypfiles/d8.gyp b/tools/v8_gypfiles/d8.gyp new file mode 100644 index 0000000000..a5fc10113f --- /dev/null +++ b/tools/v8_gypfiles/d8.gyp @@ -0,0 +1,84 @@ +# Copyright 2018 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'variables': { + 'v8_code': 1, + # Enable support for Intel VTune. Supported on ia32/x64 only + 'v8_enable_vtunejit%': 0, + 'v8_enable_i18n_support%': 1, + }, + 'includes': ['toolchain.gypi', 'features.gypi'], + 'targets': [ + { + 'target_name': 'd8', + 'type': 'executable', + 'dependencies': [ + 'v8.gyp:v8', + 'v8.gyp:v8_libbase', + 'v8.gyp:v8_libplatform', + ], + # Generated source files need this explicitly: + 'include_dirs+': [ + '..', + '<(DEPTH)', + '<(SHARED_INTERMEDIATE_DIR)', + ], + 'sources': [ + '../src/async-hooks-wrapper.cc', + '../src/async-hooks-wrapper.h', + '../src/d8-console.cc', + '../src/d8-console.h', + '../src/d8-js.cc', + '../src/d8-platforms.cc', + '../src/d8-platforms.h', + '../src/d8.cc', + '../src/d8.h', + ], + 'conditions': [ + [ 'want_separate_host_toolset==1', { + 'toolsets': [ 'target', ], + 'dependencies': [ + 'd8_js2c#host', + ], + }], + ['(OS=="linux" or OS=="mac" or OS=="freebsd" or OS=="netbsd" \ + or OS=="openbsd" or OS=="solaris" or OS=="android" \ + or OS=="qnx" or OS=="aix")', { + 'sources': [ '../src/d8-posix.cc', ] + }], + [ 'OS=="win"', { + 'sources': [ '../src/d8-windows.cc', ] + }], + [ 'component!="shared_library"', { + 'conditions': [ + [ 'v8_postmortem_support==1', { + 'xcode_settings': { + 'OTHER_LDFLAGS': [ + '-Wl,-force_load,<(PRODUCT_DIR)/libv8_base.a' + ], + }, + }], + ], + }], + ['v8_enable_vtunejit==1', { + 'dependencies': [ + 'v8vtune.gyp:v8_vtune', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ['OS=="win" and v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icudata', + ], + }], + ], + }, + ], +} diff --git a/tools/v8_gypfiles/extras-libraries.cc b/tools/v8_gypfiles/extras-libraries.cc new file mode 100644 index 0000000000..b23aa403b9 --- /dev/null +++ b/tools/v8_gypfiles/extras-libraries.cc @@ -0,0 +1,44 @@ +// Copyright 2011 Google Inc. All Rights Reserved. + +// This file was generated from .js source files by GYP. If you +// want to make changes to this file you should either change the +// javascript source files or the GYP script. + +#include "src/v8.h" +#include "src/snapshot/natives.h" +#include "src/utils.h" + +namespace v8 { +namespace internal { + + static const char sources[] = { 40, 102, 117, 110, 99, 116, 105, 111, 110, 40, 41, 32, 123, 125, 41 }; + + template <> + int NativesCollection<EXTRAS>::GetBuiltinsCount() { + return 1; + } + + template <> + int NativesCollection<EXTRAS>::GetIndex(const char* name) { + if (strcmp(name, "dummy") == 0) return 0; + return -1; + } + + template <> + Vector<const char> NativesCollection<EXTRAS>::GetScriptSource(int index) { + if (index == 0) return Vector<const char>(sources + 0, 15); + return Vector<const char>("", 0); + } + + template <> + Vector<const char> NativesCollection<EXTRAS>::GetScriptName(int index) { + if (index == 0) return Vector<const char>("native dummy.js", 15); + return Vector<const char>("", 0); + } + + template <> + Vector<const char> NativesCollection<EXTRAS>::GetScriptsSource() { + return Vector<const char>(sources, 15); + } +} // internal +} // v8 diff --git a/tools/v8_gypfiles/features.gypi b/tools/v8_gypfiles/features.gypi new file mode 100644 index 0000000000..8968629dda --- /dev/null +++ b/tools/v8_gypfiles/features.gypi @@ -0,0 +1,274 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Compile time controlled V8 features. + +{ + 'variables': { + 'v8_target_arch%': '<(target_arch)', + + 'v8_current_cpu%': '<(target_arch)', + + # Emulate GN variables + 'conditions': [ + ['OS=="android"', { # GYP reverts OS to linux so use `-D OS=android` + 'is_android': 1, + }, { + 'is_android': 0, + }], + ], + + # Variables from BUILD.gn + + # Set to 1 to enable DCHECKs in release builds. + 'dcheck_always_on%': 0, + + # Sets -DV8_ENABLE_FUTURE. + 'v8_enable_future%': 0, + + # Lite mode disables a number of performance optimizations to reduce memory + # at the cost of performance. + # Sets --DV8_LITE_MODE. + 'v8_enable_lite_mode%': 0, + + # Sets -DVERIFY_HEAP. + 'v8_enable_verify_heap%': 0, + + # Sets -DVERIFY_PREDICTABLE + 'v8_enable_verify_predictable%': 0, + + # Enable compiler warnings when using V8_DEPRECATED apis. + 'v8_deprecation_warnings%': 0, + + # Enable compiler warnings when using V8_DEPRECATE_SOON apis. + 'v8_imminent_deprecation_warnings%': 0, + + # Allows the embedder to add a custom suffix to the version string. + 'v8_embedder_string%': '', + + # Sets -dENABLE_DISASSEMBLER. + 'v8_enable_disassembler%': 0, + + # Sets the number of internal fields on promise objects. + 'v8_promise_internal_field_count%': 0, + + # Sets -dENABLE_GDB_JIT_INTERFACE. + 'v8_enable_gdbjit%': 0, + + # Sets -dENABLE_VTUNE_JIT_INTERFACE. + 'v8_enable_vtunejit%': 0, + + # Currently set for node by common.gypi, avoiding default because of gyp file bug. + # Should be turned on only for debugging. + #'v8_enable_handle_zapping%': 0, + + # Enable fast mksnapshot runs. + 'v8_enable_fast_mksnapshot%': 0, + + # Enable embedded builtins. + 'v8_enable_embedded_builtins%': 1, + + # Enable code comments for builtins in the snapshot (impacts performance). + 'v8_enable_snapshot_code_comments%': 0, + + # Enable code-generation-time checking of types in the CodeStubAssembler. + 'v8_enable_verify_csa%': 0, + + # Enable pointer compression (sets -dV8_COMPRESS_POINTERS). + 'v8_enable_pointer_compression%': 0, + 'v8_enable_31bit_smis_on_64bit_arch%': 0, + + # Sets -dOBJECT_PRINT. + 'v8_enable_object_print%': 0, + + # Sets -dV8_TRACE_MAPS. + 'v8_enable_trace_maps%': 0, + + # Sets -dV8_ENABLE_CHECKS. + 'v8_enable_v8_checks%': 0, + + # Sets -dV8_TRACE_IGNITION. + 'v8_enable_trace_ignition%': 0, + + # Sets -dV8_TRACE_FEEDBACK_UPDATES. + 'v8_enable_trace_feedback_updates%': 0, + + # Sets -dV8_CONCURRENT_MARKING + 'v8_enable_concurrent_marking%': 1, + + # Enables various testing features. + 'v8_enable_test_features%': 0, + + # With post mortem support enabled, metadata is embedded into libv8 that + # describes various parameters of the VM for use by debuggers. See + # tools/gen-postmortem-metadata.py for details. + 'v8_postmortem_support%': 0, + + # Use Siphash as added protection against hash flooding attacks. + 'v8_use_siphash%': 0, + + # Controls the threshold for on-heap/off-heap Typed Arrays. + 'v8_typed_array_max_size_in_heap%': 64, + + # Temporary flag to allow embedders to update their microtasks scopes + # while rolling in a new version of V8. + 'v8_check_microtasks_scopes_consistency%': 0, + + # Enable mitigations for executing untrusted code. + 'v8_untrusted_code_mitigations%': 1, + + # Enable minor mark compact. + 'v8_enable_minor_mc%': 1, + + # Variables from v8.gni + + # Enable the snapshot feature, for fast context creation. + # http://v8project.blogspot.com/2015/09/custom-startup-snapshots.html + 'v8_use_snapshot%': 1, + + # Use external files for startup data blobs: + # the JS builtins sources and the start snapshot. + 'v8_use_external_startup_data%': 0, + + # Enable ECMAScript Internationalization API. Enabling this feature will + # add a dependency on the ICU library. + 'v8_enable_i18n_support%': 1, + }, + + 'target_defaults': { + 'conditions': [ + ['v8_embedder_string!=""', { + 'defines': ['V8_EMBEDDER_STRING="<(v8_embedder_string)"',], + }], + ['v8_enable_disassembler==1', { + 'defines': ['ENABLE_DISASSEMBLER',], + }], + ['v8_promise_internal_field_count!=0', { + 'defines': ['V8_PROMISE_INTERNAL_FIELD_COUNT=<(v8_promise_internal_field_count)'], + }], + ['v8_enable_future==1', { + 'defines': ['V8_ENABLE_FUTURE',], + }], + ['v8_enable_lite_mode==1', { + 'defines': [ + 'V8_LITE_MODE', + 'V8_JITLESS_MODE', + ], + }], + ['v8_enable_gdbjit==1', { + 'defines': ['ENABLE_GDB_JIT_INTERFACE',], + }], + ['v8_enable_vtunejit==1', { + 'defines': ['ENABLE_VTUNE_JIT_INTERFACE',], + }], + ['v8_enable_minor_mc==1', { + 'defines': ['ENABLE_MINOR_MC',], + }], + ['v8_enable_pointer_compression==1', { + 'defines': ['V8_COMPRESS_POINTERS',], + }], + ['v8_enable_pointer_compression==1 or v8_enable_31bit_smis_on_64bit_arch==1', { + 'defines': ['V8_31BIT_SMIS_ON_64BIT_ARCH',], + }], + ['v8_enable_object_print==1', { + 'defines': ['OBJECT_PRINT',], + }], + ['v8_enable_verify_heap==1', { + 'defines': ['VERIFY_HEAP',], + }], + ['v8_enable_verify_predictable==1', { + 'defines': ['VERIFY_PREDICTABLE',], + }], + ['v8_enable_trace_maps==1', { + 'defines': ['V8_TRACE_MAPS',], + }], + ['v8_enable_trace_ignition==1', { + 'defines': ['V8_TRACE_IGNITION',], + }], + ['v8_enable_trace_feedback_updates==1', { + 'defines': ['V8_TRACE_FEEDBACK_UPDATES',], + }], + ['v8_enable_test_features==1', { + 'defines': [ + 'V8_ENABLE_ALLOCATION_TIMEOUT', + 'V8_ENABLE_FORCE_SLOW_PATH', + ], + }], + ['v8_enable_v8_checks==1', { + 'defines': ['V8_ENABLE_CHECKS',], + }], + ['v8_deprecation_warnings==1', { + 'defines': ['V8_DEPRECATION_WARNINGS',], + },{ + 'defines!': ['V8_DEPRECATION_WARNINGS',], + }], + ['v8_imminent_deprecation_warnings==1', { + 'defines': ['V8_IMMINENT_DEPRECATION_WARNINGS',], + },{ + 'defines!': ['V8_IMMINENT_DEPRECATION_WARNINGS',], + }], + ['v8_enable_i18n_support==1', { + 'defines': ['V8_INTL_SUPPORT',], + }], + # Refs: https://github.com/nodejs/node/pull/23801 + # ['v8_enable_handle_zapping==1', { + # 'defines': ['ENABLE_HANDLE_ZAPPING',], + # }], + ['v8_use_snapshot==1', { + 'defines': ['V8_USE_SNAPSHOT',], + }], + ['v8_use_external_startup_data==1', { + 'defines': ['V8_USE_EXTERNAL_STARTUP_DATA',], + }], + ['v8_enable_concurrent_marking==1', { + 'defines': ['V8_CONCURRENT_MARKING',], + }], + ['v8_check_microtasks_scopes_consistency==1', { + 'defines': ['V8_CHECK_MICROTASKS_SCOPES_CONSISTENCY',], + }], + ['v8_enable_embedded_builtins==1', { + 'defines': ['V8_EMBEDDED_BUILTINS',], + }], + ['v8_use_siphash==1', { + 'defines': ['V8_USE_SIPHASH',], + }], + ['dcheck_always_on!=0', { + 'defines': ['DEBUG',], + }], + ['v8_enable_verify_csa==1', { + 'defines': ['ENABLE_VERIFY_CSA',], + }], + ['v8_untrusted_code_mitigations==0', { + 'defines': ['DISABLE_UNTRUSTED_CODE_MITIGATIONS',], + }], + ], # conditions + 'defines': [ + 'V8_GYP_BUILD', + 'V8_TYPED_ARRAY_MAX_SIZE_IN_HEAP=<(v8_typed_array_max_size_in_heap)', + ], # defines + }, # target_defaults +} diff --git a/tools/v8_gypfiles/inspector.gypi b/tools/v8_gypfiles/inspector.gypi new file mode 100644 index 0000000000..79e582cea9 --- /dev/null +++ b/tools/v8_gypfiles/inspector.gypi @@ -0,0 +1,130 @@ +# Copyright 2016 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +{ + 'includes': [ + '../../deps/v8/third_party/inspector_protocol/inspector_protocol.gypi', + ], + 'variables': { + 'inspector_protocol_path': '<(V8_ROOT)/third_party/inspector_protocol', + 'inspector_path': '<(V8_ROOT)/src/inspector', + 'inspector_generated_output_root': '<(SHARED_INTERMEDIATE_DIR)/inspector-generated-output-root', + 'inspector_generated_sources': [ + '<(inspector_generated_output_root)/src/inspector/protocol/Forward.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Protocol.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Protocol.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Console.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Console.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Debugger.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Debugger.h', + '<(inspector_generated_output_root)/src/inspector/protocol/HeapProfiler.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/HeapProfiler.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Profiler.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Profiler.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Runtime.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Runtime.h', + '<(inspector_generated_output_root)/src/inspector/protocol/Schema.cpp', + '<(inspector_generated_output_root)/src/inspector/protocol/Schema.h', + '<(inspector_generated_output_root)/include/inspector/Debugger.h', + '<(inspector_generated_output_root)/include/inspector/Runtime.h', + '<(inspector_generated_output_root)/include/inspector/Schema.h', + ], + + 'inspector_all_sources': [ + '<(V8_ROOT)/include/v8-inspector.h', + '<(V8_ROOT)/include/v8-inspector-protocol.h', + '<(V8_ROOT)/src/inspector/custom-preview.cc', + '<(V8_ROOT)/src/inspector/custom-preview.h', + '<(V8_ROOT)/src/inspector/injected-script.cc', + '<(V8_ROOT)/src/inspector/injected-script.h', + '<(V8_ROOT)/src/inspector/inspected-context.cc', + '<(V8_ROOT)/src/inspector/inspected-context.h', + '<(V8_ROOT)/src/inspector/remote-object-id.cc', + '<(V8_ROOT)/src/inspector/remote-object-id.h', + '<(V8_ROOT)/src/inspector/search-util.cc', + '<(V8_ROOT)/src/inspector/search-util.h', + '<(V8_ROOT)/src/inspector/string-16.cc', + '<(V8_ROOT)/src/inspector/string-16.h', + '<(V8_ROOT)/src/inspector/string-util.cc', + '<(V8_ROOT)/src/inspector/string-util.h', + '<(V8_ROOT)/src/inspector/test-interface.cc', + '<(V8_ROOT)/src/inspector/test-interface.h', + '<(V8_ROOT)/src/inspector/v8-console.cc', + '<(V8_ROOT)/src/inspector/v8-console.h', + '<(V8_ROOT)/src/inspector/v8-console-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-console-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-console-message.cc', + '<(V8_ROOT)/src/inspector/v8-console-message.h', + '<(V8_ROOT)/src/inspector/v8-debugger.cc', + '<(V8_ROOT)/src/inspector/v8-debugger.h', + '<(V8_ROOT)/src/inspector/v8-debugger-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-debugger-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-debugger-script.cc', + '<(V8_ROOT)/src/inspector/v8-debugger-script.h', + '<(V8_ROOT)/src/inspector/v8-heap-profiler-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-heap-profiler-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-inspector-impl.cc', + '<(V8_ROOT)/src/inspector/v8-inspector-impl.h', + '<(V8_ROOT)/src/inspector/v8-inspector-session-impl.cc', + '<(V8_ROOT)/src/inspector/v8-inspector-session-impl.h', + '<(V8_ROOT)/src/inspector/v8-profiler-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-profiler-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-regex.cc', + '<(V8_ROOT)/src/inspector/v8-regex.h', + '<(V8_ROOT)/src/inspector/v8-runtime-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-runtime-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-schema-agent-impl.cc', + '<(V8_ROOT)/src/inspector/v8-schema-agent-impl.h', + '<(V8_ROOT)/src/inspector/v8-stack-trace-impl.cc', + '<(V8_ROOT)/src/inspector/v8-stack-trace-impl.h', + '<(V8_ROOT)/src/inspector/v8-value-utils.cc', + '<(V8_ROOT)/src/inspector/v8-value-utils.h', + '<(V8_ROOT)/src/inspector/value-mirror.cc', + '<(V8_ROOT)/src/inspector/value-mirror.h', + '<(V8_ROOT)/src/inspector/wasm-translation.cc', + '<(V8_ROOT)/src/inspector/wasm-translation.h', + ] + }, + 'include_dirs': [ + '<(inspector_generated_output_root)', + ], + 'actions': [ + { + 'action_name': 'protocol_compatibility', + 'inputs': [ + '<(inspector_path)/js_protocol.pdl', + ], + 'outputs': [ + '<@(inspector_generated_output_root)/src/js_protocol.stamp', + ], + 'action': [ + 'python', + '<(inspector_protocol_path)/check_protocol_compatibility.py', + '--stamp', '<@(_outputs)', + '<@(_inputs)', + ], + 'message': 'Checking inspector protocol compatibility', + }, + { + 'action_name': 'protocol_generated_sources', + 'inputs': [ + '<(inspector_path)/js_protocol.pdl', + '<(inspector_path)/inspector_protocol_config.json', + '<@(inspector_protocol_files)', + ], + 'outputs': [ + '<@(inspector_generated_sources)', + ], + 'process_outputs_as_sources': 1, + 'action': [ + 'python', + '<(inspector_protocol_path)/code_generator.py', + '--jinja_dir', '<(V8_ROOT)/third_party', + '--output_base', '<(inspector_generated_output_root)/src/inspector', + '--config', '<(inspector_path)/inspector_protocol_config.json', + ], + 'message': 'Generating inspector protocol sources from protocol json', + }, + ], +} diff --git a/tools/v8_gypfiles/toolchain.gypi b/tools/v8_gypfiles/toolchain.gypi new file mode 100644 index 0000000000..909dfa7970 --- /dev/null +++ b/tools/v8_gypfiles/toolchain.gypi @@ -0,0 +1,1424 @@ +# Copyright 2013 the V8 project authors. All rights reserved. +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above +# copyright notice, this list of conditions and the following +# disclaimer in the documentation and/or other materials provided +# with the distribution. +# * Neither the name of Google Inc. nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +# Shared definitions for all V8-related targets. + +{ + 'variables': { + 'msvs_use_common_release': 0, + 'clang%': 0, + 'asan%': 0, + 'cfi_vptr%': 0, + 'lsan%': 0, + 'msan%': 0, + 'tsan%': 0, + 'ubsan%': 0, + 'ubsan_vptr%': 0, + 'has_valgrind%': 0, + 'coverage%': 0, + 'v8_target_arch%': '<(target_arch)', + 'v8_host_byteorder%': '<!(python -c "import sys; print(sys.byteorder)")', + 'force_dynamic_crt%': 0, + + # Setting 'v8_can_use_vfp32dregs' to 'true' will cause V8 to use the VFP + # registers d16-d31 in the generated code, both in the snapshot and for the + # ARM target. Leaving the default value of 'false' will avoid the use of + # these registers in the snapshot and use CPU feature probing when running + # on the target. + 'v8_can_use_vfp32dregs%': 'false', + 'arm_test_noprobe%': 'off', + + # Similar to vfp but on MIPS. + 'v8_can_use_fpu_instructions%': 'true', + + # Similar to the ARM hard float ABI but on MIPS. + 'v8_use_mips_abi_hardfloat%': 'true', + + # MIPS MSA support + 'mips_use_msa%': 0, + + # Print to stdout on Android. + 'v8_android_log_stdout%': 0, + + # Force disable libstdc++ debug mode. + 'disable_glibcxx_debug%': 0, + + 'v8_enable_backtrace%': 0, + + # Enable profiling support. Only required on Windows. + 'v8_enable_prof%': 0, + + # Some versions of GCC 4.5 seem to need -fno-strict-aliasing. + 'v8_no_strict_aliasing%': 0, + + # Chrome needs this definition unconditionally. For standalone V8 builds, + # it's handled in gypfiles/standalone.gypi. + 'want_separate_host_toolset%': 1, + + # Toolset the shell binary should be compiled for. Possible values are + # 'host' and 'target'. + # The setting is ignored if want_separate_host_toolset is 0. + 'v8_toolset_for_shell%': 'target', + + 'host_os%': '<(OS)', + 'werror%': '-Werror', + # For a shared library build, results in "libv8-<(soname_version).so". + 'soname_version%': '', + + # Allow to suppress the array bounds warning (default is no suppression). + 'wno_array_bounds%': '', + + # Override where to find binutils + 'binutils_dir%': '', + + 'conditions': [ + ['OS=="linux" and host_arch=="x64"', { + 'binutils_dir%': 'third_party/binutils/Linux_x64/Release/bin', + }], + ['OS=="linux" and host_arch=="ia32"', { + 'binutils_dir%': 'third_party/binutils/Linux_ia32/Release/bin', + }], + + # linux_use_bundled_gold: whether to use the gold linker binary checked + # into third_party/binutils. Force this off via GYP_DEFINES when you + # are using a custom toolchain and need to control -B in ldflags. + # Do not use 32-bit gold on 32-bit hosts as it runs out address space + # for component=static_library builds. + ['((OS=="linux" or OS=="android") and (target_arch=="x64" or target_arch=="arm" or (target_arch=="ia32" and host_arch=="x64"))) or (OS=="linux" and target_arch=="mipsel")', { + 'linux_use_bundled_gold%': 1, + }, { + 'linux_use_bundled_gold%': 0, + }], + # linux_use_bundled_binutils: whether to use the binary binutils + # checked into third_party/binutils. These are not multi-arch so cannot + # be used except on x86 and x86-64 (the only two architectures which + # are currently checke in). Force this off via GYP_DEFINES when you + # are using a custom toolchain and need to control -B in cflags. + ['OS=="linux" and (target_arch=="ia32" or target_arch=="x64")', { + 'linux_use_bundled_binutils%': 1, + }, { + 'linux_use_bundled_binutils%': 0, + }], + # linux_use_gold_flags: whether to use build flags that rely on gold. + # On by default for x64 Linux. + ['OS=="linux" and target_arch=="x64"', { + 'linux_use_gold_flags%': 1, + }, { + 'linux_use_gold_flags%': 0, + }], + ], + + # Indicates if gcmole tools are downloaded by a hook. + 'gcmole%': 0, + }, + 'conditions': [ + ['host_arch=="ia32" or host_arch=="x64" or \ + host_arch=="ppc" or host_arch=="ppc64" or \ + host_arch=="s390" or host_arch=="s390x" or \ + clang==1', { + 'variables': { + 'host_cxx_is_biarch%': 1, + }, + }, { + 'variables': { + 'host_cxx_is_biarch%': 0, + }, + }], + ['target_arch=="ia32" or target_arch=="x64" or \ + target_arch=="ppc" or target_arch=="ppc64" or target_arch=="s390" or \ + target_arch=="s390x" or clang==1', { + 'variables': { + 'target_cxx_is_biarch%': 1, + }, + }, { + 'variables': { + 'target_cxx_is_biarch%': 0, + }, + }], + ], + 'target_defaults': { + 'include_dirs': [ + '<(V8_ROOT)', + '<(V8_ROOT)/include', + ], + 'conditions': [ + ['v8_target_arch=="arm"', { + 'defines': [ + 'V8_TARGET_ARCH_ARM', + ], + 'conditions': [ + [ 'arm_version==7 or arm_version=="default"', { + 'defines': [ + 'CAN_USE_ARMV7_INSTRUCTIONS', + ], + }], + [ 'arm_fpu=="vfpv3-d16" or arm_fpu=="default"', { + 'defines': [ + 'CAN_USE_VFP3_INSTRUCTIONS', + ], + }], + [ 'arm_fpu=="vfpv3"', { + 'defines': [ + 'CAN_USE_VFP3_INSTRUCTIONS', + 'CAN_USE_VFP32DREGS', + ], + }], + [ 'arm_fpu=="neon"', { + 'defines': [ + 'CAN_USE_VFP3_INSTRUCTIONS', + 'CAN_USE_VFP32DREGS', + 'CAN_USE_NEON', + ], + }], + [ 'arm_test_noprobe=="on"', { + 'defines': [ + 'ARM_TEST_NO_FEATURE_PROBE', + ], + }], + ], + 'target_conditions': [ + ['_toolset=="host"', { + 'conditions': [ + ['v8_target_arch==host_arch', { + # Host built with an Arm CXX compiler. + 'conditions': [ + [ 'arm_version==7', { + 'cflags': ['-march=armv7-a',], + }], + [ 'arm_version==7 or arm_version=="default"', { + 'conditions': [ + [ 'arm_fpu!="default"', { + 'cflags': ['-mfpu=<(arm_fpu)',], + }], + ], + }], + [ 'arm_float_abi!="default"', { + 'cflags': ['-mfloat-abi=<(arm_float_abi)',], + }], + [ 'arm_thumb==1', { + 'cflags': ['-mthumb',], + }], + [ 'arm_thumb==0', { + 'cflags': ['-marm',], + }], + ], + }, { + # 'v8_target_arch!=host_arch' + # Host not built with an Arm CXX compiler (simulator build). + 'conditions': [ + [ 'arm_float_abi=="hard"', { + 'defines': [ + 'USE_EABI_HARDFLOAT=1', + ], + }], + [ 'arm_float_abi=="softfp" or arm_float_abi=="default"', { + 'defines': [ + 'USE_EABI_HARDFLOAT=0', + ], + }], + ], + }], + ], + }], # _toolset=="host" + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch', { + # Target built with an Arm CXX compiler. + 'conditions': [ + [ 'arm_version==7', { + 'cflags': ['-march=armv7-a',], + }], + [ 'arm_version==7 or arm_version=="default"', { + 'conditions': [ + [ 'arm_fpu!="default"', { + 'cflags': ['-mfpu=<(arm_fpu)',], + }], + ], + }], + [ 'arm_float_abi!="default"', { + 'cflags': ['-mfloat-abi=<(arm_float_abi)',], + }], + [ 'arm_thumb==1', { + 'cflags': ['-mthumb',], + }], + [ 'arm_thumb==0', { + 'cflags': ['-marm',], + }], + ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an Arm CXX compiler (simulator build). + 'conditions': [ + [ 'arm_float_abi=="hard"', { + 'defines': [ + 'USE_EABI_HARDFLOAT=1', + ], + }], + [ 'arm_float_abi=="softfp" or arm_float_abi=="default"', { + 'defines': [ + 'USE_EABI_HARDFLOAT=0', + ], + }], + ], + }], + ], + }], # _toolset=="target" + ], + }], # v8_target_arch=="arm" + ['v8_target_arch=="arm64"', { + 'defines': [ + 'V8_TARGET_ARCH_ARM64', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'defines': [ + 'V8_TARGET_ARCH_S390', + ], + 'conditions': [ + ['v8_target_arch=="s390x"', { + 'defines': [ + 'V8_TARGET_ARCH_S390X', + ], + }], + ['v8_host_byteorder=="little"', { + 'defines': [ + 'V8_TARGET_ARCH_S390_LE_SIM', + ], + }, { + 'cflags': [ '-march=z196' ], + }], + ], + }], # s390 + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'defines': [ + 'V8_TARGET_ARCH_PPC', + ], + 'conditions': [ + ['v8_target_arch=="ppc64"', { + 'defines': [ + 'V8_TARGET_ARCH_PPC64', + ], + }], + ['v8_host_byteorder=="little"', { + 'defines': [ + 'V8_TARGET_ARCH_PPC_LE', + ], + }], + ['v8_host_byteorder=="big"', { + 'defines': [ + 'V8_TARGET_ARCH_PPC_BE', + ], + 'conditions': [ + ['OS=="aix"', { + # Work around AIX ceil, trunc and round oddities. + 'cflags': [ '-mcpu=power5+ -mfprnd' ], + }], + ['OS=="aix"', { + # Work around AIX assembler popcntb bug. + 'cflags': [ '-mno-popcntb' ], + }], + ], + }], + ], + }], # ppc + ['v8_target_arch=="ia32"', { + 'defines': [ + 'V8_TARGET_ARCH_IA32', + ], + }], # v8_target_arch=="ia32" + ['v8_target_arch=="mips" or v8_target_arch=="mipsel" \ + or v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch', { + # Target built with a Mips CXX compiler. + 'variables': { + 'ldso_path%': '<!(/bin/echo -n $LDSO_PATH)', + 'ld_r_path%': '<!(/bin/echo -n $LD_R_PATH)', + }, + 'conditions': [ + ['ldso_path!=""', { + 'ldflags': ['-Wl,--dynamic-linker=<(ldso_path)'], + }], + ['ld_r_path!=""', { + 'ldflags': ['-Wl,--rpath=<(ld_r_path)'], + }], + [ 'clang==1', { + 'cflags': ['-integrated-as'], + }], + ['OS!="mac"', { + 'defines': ['_MIPS_TARGET_HW',], + }, { + 'defines': ['_MIPS_TARGET_SIMULATOR',], + }], + ], + }, { + 'defines': ['_MIPS_TARGET_SIMULATOR',], + }], + ], + }], #'_toolset=="target" + ['_toolset=="host"', { + 'conditions': [ + ['v8_target_arch==target_arch and OS!="mac"', { + 'defines': ['_MIPS_TARGET_HW',], + }, { + 'defines': ['_MIPS_TARGET_SIMULATOR',], + }], + ], + }], #'_toolset=="host" + ], + }], + ['v8_target_arch=="mips"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS', + ], + 'conditions': [ + [ 'v8_can_use_fpu_instructions=="true"', { + 'defines': [ + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }], + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'defines': [ + '__mips_hard_float=1', + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }, { + 'defines': [ + '__mips_soft_float=1' + ] + }], + ], + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch', { + # Target built with a Mips CXX compiler. + 'cflags': [ + '-EB', + '-Wno-error=array-bounds', # Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 + ], + 'ldflags': ['-EB'], + 'conditions': [ + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'cflags': ['-mhard-float'], + 'ldflags': ['-mhard-float'], + }, { + 'cflags': ['-msoft-float'], + 'ldflags': ['-msoft-float'], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + 'cflags!': ['-mfp32', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r6'], + }], + ], + 'cflags': ['-mips32r6'], + 'ldflags': ['-mips32r6'], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + 'cflags': ['-mfp64'], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + 'cflags': ['-mfpxx'], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + 'cflags': ['-mfp32'], + }], + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r2'], + }], + ], + 'cflags': ['-mips32r2'], + 'ldflags': ['-mips32r2'], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + 'cflags!': ['-mfp64', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32'], + 'ldflags': ['-mips32'], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + 'cflags!': ['-mfp64', '-mfp32'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32', '-mfpxx'], + 'ldflags': ['-mips32'], + }], + ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ], + }], + ], + }], #_toolset=="target" + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + ['mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32' + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': ['FPU_MODE_FP32',], + }], + ] + }], #_toolset=="host" + ], + }], # v8_target_arch=="mips" + ['v8_target_arch=="mipsel"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS', + ], + 'conditions': [ + [ 'v8_can_use_fpu_instructions=="true"', { + 'defines': [ + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }], + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'defines': [ + '__mips_hard_float=1', + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }, { + 'defines': [ + '__mips_soft_float=1' + ], + }], + ], + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch', { + # Target built with a Mips CXX compiler. + 'cflags': [ + '-EL', + '-Wno-error=array-bounds', # Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 + ], + 'ldflags': ['-EL'], + 'conditions': [ + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'cflags': ['-mhard-float'], + 'ldflags': ['-mhard-float'], + }, { + 'cflags': ['-msoft-float'], + 'ldflags': ['-msoft-float'], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + 'cflags!': ['-mfp32', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r6'], + }], + ], + 'cflags': ['-mips32r6'], + 'ldflags': ['-mips32r6'], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + 'cflags': ['-mfp64'], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + 'cflags': ['-mfpxx'], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + 'cflags': ['-mfp32'], + }], + [ 'clang==0', { + 'cflags': ['-Wa,-mips32r2'], + }], + ], + 'cflags': ['-mips32r2'], + 'ldflags': ['-mips32r2'], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + 'cflags!': ['-mfp64', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32'], + 'ldflags': ['-mips32'], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + 'cflags!': ['-mfp64', '-mfp32'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips32'], + }], + ], + 'cflags': ['-mips32', '-mfpxx'], + 'ldflags': ['-mips32'], + }], + ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], + 'cflags!': ['-mfp64', '-mfpxx'], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips3'], + }], + ], + 'cflags': ['-mips3', '-mfp32'], + }], + ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + [ 'mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32', + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': [ + 'FPU_MODE_FP32', + ], + }], + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], + }], + ], + }], + ], + }], #_toolset=="target + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="rx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32RX', + 'FPU_MODE_FPXX', + ], + }], + ['mips_arch_variant=="r6"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R6', + 'FPU_MODE_FP64', + ], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'conditions': [ + ['mips_fpu_mode=="fp64"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP64', + ], + }], + ['mips_fpu_mode=="fpxx"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FPXX', + ], + }], + ['mips_fpu_mode=="fp32"', { + 'defines': [ + '_MIPS_ARCH_MIPS32R2', + 'FPU_MODE_FP32' + ], + }], + ], + }], + ['mips_arch_variant=="r1"', { + 'defines': ['FPU_MODE_FP32',], + }], + ['mips_arch_variant=="loongson"', { + 'defines': [ + '_MIPS_ARCH_LOONGSON', + 'FPU_MODE_FP32', + ], + }], + ] + }], + ], + }], # v8_target_arch=="mipsel" + ['v8_target_arch=="mips64el" or v8_target_arch=="mips64"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS64', + ], + 'conditions': [ + [ 'v8_can_use_fpu_instructions=="true"', { + 'defines': [ + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }], + [ 'v8_host_byteorder=="little"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS64_LE', + ], + }], + [ 'v8_host_byteorder=="big"', { + 'defines': [ + 'V8_TARGET_ARCH_MIPS64_BE', + ], + }], + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'defines': [ + '__mips_hard_float=1', + 'CAN_USE_FPU_INSTRUCTIONS', + ], + }, { + 'defines': [ + '__mips_soft_float=1' + ], + }], + ], + 'target_conditions': [ + ['_toolset=="target"', { + 'conditions': [ + ['v8_target_arch==target_arch', { + 'cflags': [ + '-Wno-error=array-bounds', # Workaround https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56273 + ], + 'conditions': [ + ['v8_target_arch=="mips64el"', { + 'cflags': ['-EL'], + 'ldflags': ['-EL'], + }], + ['v8_target_arch=="mips64"', { + 'cflags': ['-EB'], + 'ldflags': ['-EB'], + }], + [ 'v8_use_mips_abi_hardfloat=="true"', { + 'cflags': ['-mhard-float'], + 'ldflags': ['-mhard-float'], + }, { + 'cflags': ['-msoft-float'], + 'ldflags': ['-msoft-float'], + }], + ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips64r6'], + }], + ], + 'cflags': ['-mips64r6', '-mabi=64'], + 'ldflags': ['-mips64r6', '-mabi=64'], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], + 'conditions': [ + [ 'clang==0', { + 'cflags': ['-Wa,-mips64r2'], + }], + ], + 'cflags': ['-mips64r2', '-mabi=64'], + 'ldflags': ['-mips64r2', '-mabi=64'], + }], + ], + }, { + # 'v8_target_arch!=target_arch' + # Target not built with an MIPS CXX compiler (simulator build). + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], + }], + ], + }], + ], + }], #'_toolset=="target" + ['_toolset=="host"', { + 'conditions': [ + ['mips_arch_variant=="r6"', { + 'defines': ['_MIPS_ARCH_MIPS64R6',], + }], + ['mips_arch_variant=="r6" and mips_use_msa==1', { + 'defines': [ '_MIPS_MSA' ], + }], + ['mips_arch_variant=="r2"', { + 'defines': ['_MIPS_ARCH_MIPS64R2',], + }], + ], + }], #'_toolset=="host" + ], + }], # v8_target_arch=="mips64el" + ['v8_target_arch=="x64"', { + 'defines': [ + 'V8_TARGET_ARCH_X64', + ], + 'xcode_settings': { + 'ARCHS': [ 'x86_64' ], + }, + 'msvs_settings': { + 'VCLinkerTool': { + 'StackReserveSize': '2097152', + }, + }, + 'msvs_configuration_platform': 'x64', + }], # v8_target_arch=="x64" + ['v8_target_arch=="x32"', { + 'defines': [ + # x32 port shares the source code with x64 port. + 'V8_TARGET_ARCH_X64', + 'V8_TARGET_ARCH_32_BIT', + ], + 'cflags': [ + '-mx32', + # Inhibit warning if long long type is used. + '-Wno-long-long', + ], + 'ldflags': [ + '-mx32', + ], + }], # v8_target_arch=="x32" + ['linux_use_gold_flags==1', { + # Newer gccs and clangs support -fuse-ld, use the flag to force gold + # selection. + # gcc -- http://gcc.gnu.org/onlinedocs/gcc-4.8.0/gcc/Optimize-Options.html + 'ldflags': [ '-fuse-ld=gold', ], + }], + ['linux_use_bundled_binutils==1', { + 'cflags': [ + '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', + ], + }], + ['linux_use_bundled_gold==1', { + # Put our binutils, which contains gold in the search path. We pass + # the path to gold to the compiler. gyp leaves unspecified what the + # cwd is when running the compiler, so the normal gyp path-munging + # fails us. This hack gets the right path. + 'ldflags': [ + '-B<!(cd <(DEPTH) && pwd -P)/<(binutils_dir)', + ], + }], + ['OS=="win"', { + 'defines': [ + 'WIN32', + 'NOMINMAX', # Refs: https://chromium-review.googlesource.com/c/v8/v8/+/1456620 + ], + # 4351: VS 2005 and later are warning us that they've fixed a bug + # present in VS 2003 and earlier. + 'msvs_disabled_warnings': [4351], + 'msvs_configuration_attributes': { + 'CharacterSet': '1', + }, + }], + ['OS=="win" and v8_target_arch=="ia32"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + # Ensure no surprising artifacts from 80bit double math with x86. + 'AdditionalOptions': ['/arch:SSE2'], + }, + }, + }], + ['OS=="win" and v8_enable_prof==1', { + 'msvs_settings': { + 'VCLinkerTool': { + 'GenerateMapFile': 'true', + }, + }, + }], + ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ + or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ + v8_target_arch=="ia32"', { + 'cflags': [ + '-msse2', + '-mfpmath=sse', + '-mmmx', # Allows mmintrin.h for MMX intrinsics. + ], + }], + ['(OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ + or OS=="netbsd" or OS=="mac" or OS=="android" or OS=="qnx") and \ + (v8_target_arch=="arm" or v8_target_arch=="ia32" or \ + v8_target_arch=="mips" or v8_target_arch=="mipsel" or \ + v8_target_arch=="ppc" or v8_target_arch=="s390")', { + 'target_conditions': [ + ['_toolset=="host"', { + 'conditions': [ + ['host_cxx_is_biarch==1', { + 'conditions': [ + ['host_arch=="s390" or host_arch=="s390x"', { + 'cflags': [ '-m31' ], + 'ldflags': [ '-m31' ] + },{ + 'cflags': [ '-m32' ], + 'ldflags': [ '-m32' ] + }], + ], + }], + ], + 'xcode_settings': { + 'ARCHS': [ 'i386' ], + }, + }], + ['_toolset=="target"', { + 'conditions': [ + ['target_cxx_is_biarch==1', { + 'conditions': [ + ['host_arch=="s390" or host_arch=="s390x"', { + 'cflags': [ '-m31' ], + 'ldflags': [ '-m31' ] + },{ + 'cflags': [ '-m32' ], + 'ldflags': [ '-m32' ], + }], + ], + }], + ], + 'xcode_settings': { + 'ARCHS': [ 'i386' ], + }, + }], + ], + }], + ['(OS=="linux" or OS=="android") and \ + (v8_target_arch=="x64" or v8_target_arch=="arm64" or \ + v8_target_arch=="ppc64" or v8_target_arch=="s390x")', { + 'target_conditions': [ + ['_toolset=="host"', { + 'conditions': [ + ['host_cxx_is_biarch==1', { + 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ] + }], + ], + }], + ['_toolset=="target"', { + 'conditions': [ + ['target_cxx_is_biarch==1', { + 'cflags': [ '-m64' ], + 'ldflags': [ '-m64' ], + }], + ] + }], + ], + }], + ['OS=="android" and v8_android_log_stdout==1', { + 'defines': [ + 'V8_ANDROID_LOG_STDOUT', + ], + }], + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="solaris" \ + or OS=="netbsd" or OS=="qnx" or OS=="aix"', { + 'conditions': [ + [ 'v8_no_strict_aliasing==1', { + 'cflags': [ '-fno-strict-aliasing' ], + }], + ], # conditions + }], + ['OS=="solaris"', { + 'defines': [ '__C99FEATURES__=1' ], # isinf() etc. + }], + ['OS=="freebsd" or OS=="openbsd"', { + 'cflags': [ '-I/usr/local/include' ], + }], + ['OS=="netbsd"', { + 'cflags': [ '-I/usr/pkg/include' ], + }], + ['OS=="aix"', { + 'defines': [ + # Support for malloc(0) + '_LINUX_SOURCE_COMPAT=1', + '__STDC_FORMAT_MACROS', + '_ALL_SOURCE=1'], + 'conditions': [ + [ 'v8_target_arch=="ppc"', { + 'ldflags': [ '-Wl,-bmaxdata:0x60000000/dsa' ], + }], + [ 'v8_target_arch=="ppc64"', { + 'cflags': [ '-maix64', '-fdollars-in-identifiers' ], + 'ldflags': [ '-maix64 -Wl,-bbigtoc' ], + }], + ], + }], + ], # conditions + 'configurations': { + 'Debug': { + 'defines': [ + 'ENABLE_DISASSEMBLER', + 'V8_ENABLE_CHECKS', + 'OBJECT_PRINT', + 'VERIFY_HEAP', + 'DEBUG', + 'V8_TRACE_MAPS', + 'V8_ENABLE_ALLOCATION_TIMEOUT', + 'V8_ENABLE_FORCE_SLOW_PATH', + ], + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx" or OS=="aix"', { + 'cflags': [ '-Woverloaded-virtual', '<(wno_array_bounds)', ], + }], + ['OS=="linux" and v8_enable_backtrace==1', { + # Support for backtrace_symbols. + 'ldflags': [ '-rdynamic' ], + }], + ['OS=="linux" and disable_glibcxx_debug==0', { + # Enable libstdc++ debugging facilities to help catch problems + # early, see http://crbug.com/65151 . + 'defines': ['_GLIBCXX_DEBUG=1',], + }], + ['OS=="aix"', { + 'ldflags': [ '-Wl,-bbigtoc' ], + 'conditions': [ + ['v8_target_arch=="ppc64"', { + 'cflags': [ '-maix64 -mcmodel=large' ], + }], + ], + }], + ['OS=="android"', { + 'variables': { + 'android_full_debug%': 1, + }, + 'conditions': [ + ['android_full_debug==0', { + # Disable full debug if we want a faster v8 in a debug build. + # TODO(2304): pass DISABLE_DEBUG_ASSERT instead of hiding DEBUG. + 'defines!': [ + 'DEBUG', + 'ENABLE_SLOW_DCHECKS', + ], + }], + ], + }], + ['linux_use_gold_flags==1', { + 'target_conditions': [ + ['_toolset=="target"', { + 'ldflags': [ + # Experimentation found that using four linking threads + # saved ~20% of link time. + # https://groups.google.com/a/chromium.org/group/chromium-dev/browse_thread/thread/281527606915bb36 + # Only apply this to the target linker, since the host + # linker might not be gold, but isn't used much anyway. + '-Wl,--threads', + '-Wl,--thread-count=4', + ], + }], + ], + }], + ['v8_optimized_debug==0', { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '0', + 'conditions': [ + ['component=="shared_library" or force_dynamic_crt==1', { + 'RuntimeLibrary': '3', # /MDd + }, { + 'RuntimeLibrary': '1', # /MTd + }], + ], + }, + 'VCLinkerTool': { + 'LinkIncremental': '2', + }, + }, + 'variables': { + 'v8_enable_slow_dchecks%': 1, + }, + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx" or OS=="aix"', { + 'cflags!': [ + '-O3', + '-O2', + '-O1', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + ], + }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '0', # -O0 + }, + }], + ['v8_enable_slow_dchecks==1', { + 'defines': [ + 'ENABLE_SLOW_DCHECKS', + ], + }], + ], + }, { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '2', + 'InlineFunctionExpansion': '2', + 'EnableIntrinsicFunctions': 'true', + 'FavorSizeOrSpeed': '0', + 'StringPooling': 'true', + 'BasicRuntimeChecks': '0', + 'conditions': [ + ['component=="shared_library" or force_dynamic_crt==1', { + 'RuntimeLibrary': '3', #/MDd + }, { + 'RuntimeLibrary': '1', #/MTd + }], + ], + }, + 'VCLinkerTool': { + 'LinkIncremental': '1', + 'OptimizeReferences': '2', + 'EnableCOMDATFolding': '2', + }, + }, + 'variables': { + 'v8_enable_slow_dchecks%': 0, + }, + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" or \ + OS=="qnx" or OS=="aix"', { + 'cflags!': [ + '-O0', + '-O1', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + ], + 'conditions': [ + # Don't use -O3 with sanitizers. + ['asan==0 and msan==0 and lsan==0 \ + and tsan==0 and ubsan==0 and ubsan_vptr==0', { + 'cflags': ['-O3'], + 'cflags!': ['-O2'], + }, { + 'cflags': ['-O2'], + 'cflags!': ['-O3'], + }], + ], + }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 + 'GCC_STRICT_ALIASING': 'YES', + }, + }], + ['v8_enable_slow_dchecks==1', { + 'defines': [ + 'ENABLE_SLOW_DCHECKS', + ], + }], + ], + }], + # Temporary refs: https://github.com/nodejs/node/pull/23801 + ['v8_enable_handle_zapping==1', { + 'defines': ['ENABLE_HANDLE_ZAPPING',], + }], + ], + + }, # DebugBaseCommon + 'Release': { + 'variables': { + 'v8_enable_slow_dchecks%': 0, + }, + # Temporary refs: https://github.com/nodejs/node/pull/23801 + 'defines!': ['ENABLE_HANDLE_ZAPPING',], + 'conditions': [ + ['OS=="linux" or OS=="freebsd" or OS=="openbsd" or OS=="netbsd" \ + or OS=="aix"', { + 'cflags!': [ + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '<(wno_array_bounds)', + ], + 'conditions': [ + # Don't use -O3 with sanitizers. + ['asan==0 and msan==0 and lsan==0 \ + and tsan==0 and ubsan==0 and ubsan_vptr==0', { + 'cflags': ['-O3'], + 'cflags!': ['-O2'], + }, { + 'cflags': ['-O2'], + 'cflags!': ['-O3'], + }], + ], + }], + ['OS=="android"', { + 'cflags!': [ + '-O3', + '-Os', + ], + 'cflags': [ + '-fdata-sections', + '-ffunction-sections', + '-O2', + ], + }], + ['OS=="mac"', { + 'xcode_settings': { + 'GCC_OPTIMIZATION_LEVEL': '3', # -O3 + + # -fstrict-aliasing. Mainline gcc + # enables this at -O2 and above, + # but Apple gcc does not unless it + # is specified explicitly. + 'GCC_STRICT_ALIASING': 'YES', + }, + }], # OS=="mac" + ['OS=="win"', { + 'msvs_settings': { + 'VCCLCompilerTool': { + 'Optimization': '2', + 'InlineFunctionExpansion': '2', + 'EnableIntrinsicFunctions': 'true', + 'FavorSizeOrSpeed': '0', + 'StringPooling': 'true', + 'conditions': [ + ['component=="shared_library" or force_dynamic_crt==1', { + 'RuntimeLibrary': '2', #/MD + }, { + 'RuntimeLibrary': '0', #/MT + }], + ], + }, + 'VCLinkerTool': { + 'LinkIncremental': '1', + 'OptimizeReferences': '2', + 'EnableCOMDATFolding': '2', + }, + }, + }], # OS=="win" + ['v8_enable_slow_dchecks==1', { + 'defines': [ + 'ENABLE_SLOW_DCHECKS', + ], + }], + ], # conditions + }, # Release + }, # configurations + 'cflags!': [ '-Wall', '-Wextra' ], + 'msvs_disabled_warnings': [ + 4245, # Conversion with signed/unsigned mismatch. + 4267, # Conversion with possible loss of data. + 4324, # Padding structure due to alignment. + 4351, + 4355, + 4701, # Potentially uninitialized local variable. + 4702, # Unreachable code. + 4703, # Potentially uninitialized local pointer variable. + 4709, # Comma operator within array index expr (bugged). + 4714, # Function marked forceinline not inlined. + + # MSVC assumes that control can get past an exhaustive switch and then + # warns if there's no return there (see https://crbug.com/v8/7658) + 4715, # Not all control paths return a value. + + 4718, # Recursive call has no side-effect. + 4723, # https://crbug.com/v8/7771 + 4724, # https://crbug.com/v8/7771 + 4800, # Forcing value to bool. + ], + }, # target_defaults +} diff --git a/tools/v8_gypfiles/v8.gyp b/tools/v8_gypfiles/v8.gyp new file mode 100644 index 0000000000..72a8dfe56e --- /dev/null +++ b/tools/v8_gypfiles/v8.gyp @@ -0,0 +1,2714 @@ +# Copyright 2012 the V8 project authors. All rights reserved. +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. +{ + 'variables': { + 'V8_ROOT': '../../deps/v8', + 'v8_code': 1, + 'v8_random_seed%': 314159265, + 'v8_vector_stores%': 0, + 'v8_embed_script%': "", + 'mksnapshot_exec': '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot<(EXECUTABLE_SUFFIX)', + 'v8_os_page_size%': 0, + 'generate_bytecode_output_root': '<(SHARED_INTERMEDIATE_DIR)/generate-bytecode-output-root', + 'generate_bytecode_builtins_list_output' : '<(generate_bytecode_output_root)/builtins-generated/bytecodes-builtins-list.h', + 'torque_files': [ + "<(V8_ROOT)/src/builtins/base.tq", + "<(V8_ROOT)/src/builtins/growable-fixed-array.tq", + "<(V8_ROOT)/src/builtins/frames.tq", + "<(V8_ROOT)/src/builtins/arguments.tq", + "<(V8_ROOT)/src/builtins/array.tq", + "<(V8_ROOT)/src/builtins/array-copywithin.tq", + "<(V8_ROOT)/src/builtins/array-every.tq", + "<(V8_ROOT)/src/builtins/array-filter.tq", + "<(V8_ROOT)/src/builtins/array-find.tq", + "<(V8_ROOT)/src/builtins/array-findindex.tq", + "<(V8_ROOT)/src/builtins/array-foreach.tq", + "<(V8_ROOT)/src/builtins/array-join.tq", + "<(V8_ROOT)/src/builtins/array-lastindexof.tq", + "<(V8_ROOT)/src/builtins/array-of.tq", + "<(V8_ROOT)/src/builtins/array-map.tq", + "<(V8_ROOT)/src/builtins/array-reduce.tq", + "<(V8_ROOT)/src/builtins/array-reduce-right.tq", + "<(V8_ROOT)/src/builtins/array-reverse.tq", + "<(V8_ROOT)/src/builtins/array-slice.tq", + "<(V8_ROOT)/src/builtins/array-some.tq", + "<(V8_ROOT)/src/builtins/array-splice.tq", + "<(V8_ROOT)/src/builtins/array-unshift.tq", + "<(V8_ROOT)/src/builtins/collections.tq", + "<(V8_ROOT)/src/builtins/data-view.tq", + "<(V8_ROOT)/src/builtins/extras-utils.tq", + "<(V8_ROOT)/src/builtins/object-fromentries.tq", + "<(V8_ROOT)/src/builtins/iterator.tq", + "<(V8_ROOT)/src/builtins/string-endswith.tq", + "<(V8_ROOT)/src/builtins/string-startswith.tq", + "<(V8_ROOT)/src/builtins/typed-array.tq", + "<(V8_ROOT)/src/builtins/typed-array-createtypedarray.tq", + "<(V8_ROOT)/src/builtins/typed-array-filter.tq", + "<(V8_ROOT)/src/builtins/typed-array-foreach.tq", + "<(V8_ROOT)/src/builtins/typed-array-reduce.tq", + "<(V8_ROOT)/src/builtins/typed-array-reduceright.tq", + "<(V8_ROOT)/src/builtins/typed-array-slice.tq", + "<(V8_ROOT)/src/builtins/typed-array-subarray.tq", + "<(V8_ROOT)/third_party/v8/builtins/array-sort.tq", + ], + 'torque_namespaces': [ + "arguments", + "array", + "array-copywithin", + "array-filter", + "array-find", + "array-findindex", + "array-foreach", + "array-join", + "array-map", + "array-of", + "array-reverse", + "array-slice", + "array-splice", + "array-unshift", + "array-lastindexof", + "base", + "collections", + "data-view", + "extras-utils", + "growable-fixed-array", + "iterator", + "object", + "string", + "typed-array", + "typed-array-createtypedarray", + "typed-array-filter", + "typed-array-foreach", + "typed-array-reduce", + "typed-array-reduceright", + "typed-array-slice", + "typed-array-subarray", + ], + 'torque_output_root': '<(SHARED_INTERMEDIATE_DIR)/torque-output-root', + # Since there is no foreach in GYP we use `ForEachFormat` to unroll the following: + # foreach(namespace, torque_namespaces) { + # outputs += [ + # "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.cc", + # "$target_gen_dir/torque-generated/builtins-$namespace-from-dsl-gen.h", + # ] + # } + 'torque_outputs': [ '<!@pymod_do_main(ForEachFormat "<(torque_output_root)/torque-generated/builtins-%s-from-dsl-gen.cc" <@(torque_namespaces))' ], + 'torque_outputs+': [ '<!@pymod_do_main(ForEachFormat "<(torque_output_root)/torque-generated/builtins-%s-from-dsl-gen.h" <@(torque_namespaces))' ], + 'torque_generated_pure_headers': [ + '<(torque_output_root)/torque-generated/builtin-definitions-from-dsl.h', + '<(torque_output_root)/torque-generated/class-definitions-from-dsl.h', + ], + }, + 'includes': ['toolchain.gypi', 'features.gypi', 'v8_external_snapshot.gypi'], + 'targets': [ + { + 'target_name': 'v8', + 'dependencies': [ 'v8_maybe_snapshot' ], + 'toolsets': ['target'], + 'conditions': [ + ['component=="shared_library"', { + 'type': '<(component)', + 'sources': [ + # Note: on non-Windows we still build this file so that gyp + # has some sources to link into the component. + '<(V8_ROOT)/src/v8dll-main.cc', + ], + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + 'conditions': [ + ['OS=="mac"', { + 'xcode_settings': { + 'OTHER_LDFLAGS': ['-dynamiclib', '-all_load'] + }, + }], + ['soname_version!=""', { + 'product_extension': 'so.<(soname_version)', + }], + ], + }, + { + 'type': 'none', + }], + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(V8_ROOT)/include', + ], + }, + 'actions': [ + { + 'action_name': 'v8_dump_build_config', + 'toolsets': ['target'], + 'inputs': [ + '<(V8_ROOT)/tools/testrunner/utils/dump_build_config_gyp.py', + ], + 'outputs': [ + '<(PRODUCT_DIR)/v8_build_config.json', + ], + 'variables': { + 'v8_dump_build_config_args': [ + '<(PRODUCT_DIR)/v8_build_config.json', + 'dcheck_always_on=<(dcheck_always_on)', + 'is_android=<(is_android)', + 'is_asan=<(asan)', + 'is_cfi=<(cfi_vptr)', + 'is_clang=<(clang)', + 'is_component_build=<(component)', + 'is_debug=<(CONFIGURATION_NAME)', + # Not available in gyp. + 'is_gcov_coverage=0', + 'is_msan=<(msan)', + 'is_tsan=<(tsan)', + # Not available in gyp. + 'is_ubsan_vptr=0', + 'target_cpu=<(target_arch)', + 'v8_enable_i18n_support=<(v8_enable_i18n_support)', + 'v8_enable_verify_predictable=<(v8_enable_verify_predictable)', + 'v8_target_cpu=<(v8_target_arch)', + 'v8_use_snapshot=<(v8_use_snapshot)', + 'v8_use_siphash=<(v8_use_siphash)', + 'v8_enable_embedded_builtins=<(v8_enable_embedded_builtins)', + 'v8_enable_verify_csa=<(v8_enable_verify_csa)', + 'v8_enable_lite_mode=<(v8_enable_lite_mode)', + 'v8_enable_pointer_compression=<(v8_enable_pointer_compression)', + ] + }, + 'conditions': [ + ['v8_target_arch=="mips" or v8_target_arch=="mipsel" \ + or v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'v8_dump_build_config_args':[ + 'mips_arch_variant=<(mips_arch_variant)', + 'mips_use_msa=<(mips_use_msa)', + ], + }], + ], + 'action': [ + 'python', '<(V8_ROOT)/tools/testrunner/utils/dump_build_config_gyp.py', + '<@(v8_dump_build_config_args)', + ], + }, + ], + }, # v8 + { + # This rule delegates to either v8_snapshot, v8_nosnapshot, or + # v8_external_snapshot, depending on the current variables. + # The intention is to make the 'calling' rules a bit simpler. + 'target_name': 'v8_maybe_snapshot', + 'type': 'none', + 'toolsets': ['target'], + 'conditions': [ + ['v8_use_snapshot!=1', { + # The dependency on v8_base should come from a transitive + # dependency however the Android toolchain requires libv8_base.a + # to appear before libv8_snapshot.a so it's listed explicitly. + 'dependencies': ['v8_base', 'v8_init', 'v8_nosnapshot'], + }], + ['v8_use_snapshot==1 and v8_use_external_startup_data==0', { + # The dependency on v8_base should come from a transitive + # dependency however the Android toolchain requires libv8_base.a + # to appear before libv8_snapshot.a so it's listed explicitly. + 'dependencies': ['v8_base', 'v8_snapshot'], + }], + ['v8_use_snapshot==1 and v8_use_external_startup_data==1 and want_separate_host_toolset==0', { + 'dependencies': ['v8_base', 'v8_external_snapshot'], + }], + ['v8_use_snapshot==1 and v8_use_external_startup_data==1 and want_separate_host_toolset==1', { + 'dependencies': ['v8_base', 'v8_external_snapshot'], + }], + ] + }, # v8_maybe_snapshot + { + 'target_name': 'v8_init', + 'type': 'static_library', + 'dependencies': [ + 'v8_initializers', + # We need this transitive dependency, since it also does codegen. + 'v8_base', + ], + 'sources': [ + '<(V8_ROOT)/src/setup-isolate-full.cc', + '<(generate_bytecode_builtins_list_output)', + '<@(torque_generated_pure_headers)', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ], + }, # v8_init + { + 'target_name': 'v8_initializers', + 'type': 'static_library', + 'dependencies': [ + 'v8_base', + ], + 'sources': [ + '<(V8_ROOT)/src/builtins/builtins-arguments-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-arguments-gen.h', + '<(V8_ROOT)/src/builtins/builtins-array-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-array-gen.h', + '<(V8_ROOT)/src/builtins/builtins-async-function-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-async-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-async-gen.h', + '<(V8_ROOT)/src/builtins/builtins-async-generator-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-async-iterator-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-bigint-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-boolean-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-call-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-call-gen.h', + '<(V8_ROOT)/src/builtins/builtins-collections-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-console-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-constructor-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-constructor-gen.h', + '<(V8_ROOT)/src/builtins/builtins-constructor.h', + '<(V8_ROOT)/src/builtins/builtins-conversion-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-data-view-gen.h', + '<(V8_ROOT)/src/builtins/builtins-date-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-debug-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-function-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-generator-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-global-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-handler-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-ic-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-internal-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-interpreter-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-intl-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-iterator-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-iterator-gen.h', + '<(V8_ROOT)/src/builtins/builtins-lazy-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-lazy-gen.h', + '<(V8_ROOT)/src/builtins/builtins-math-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-math-gen.h', + '<(V8_ROOT)/src/builtins/builtins-microtask-queue-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-number-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-object-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-promise-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-promise-gen.h', + '<(V8_ROOT)/src/builtins/builtins-proxy-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-proxy-gen.h', + '<(V8_ROOT)/src/builtins/builtins-reflect-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-regexp-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-regexp-gen.h', + '<(V8_ROOT)/src/builtins/builtins-sharedarraybuffer-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-string-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-string-gen.h', + '<(V8_ROOT)/src/builtins/builtins-symbol-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-typed-array-gen.cc', + '<(V8_ROOT)/src/builtins/builtins-typed-array-gen.h', + '<(V8_ROOT)/src/builtins/builtins-utils-gen.h', + '<(V8_ROOT)/src/builtins/builtins-wasm-gen.cc', + '<(V8_ROOT)/src/builtins/growable-fixed-array-gen.cc', + '<(V8_ROOT)/src/builtins/growable-fixed-array-gen.h', + '<(V8_ROOT)/src/builtins/setup-builtins-internal.cc', + '<(V8_ROOT)/src/code-stub-assembler.cc', + '<(V8_ROOT)/src/code-stub-assembler.h', + '<(V8_ROOT)/src/heap/setup-heap-internal.cc', + '<(V8_ROOT)/src/ic/accessor-assembler.cc', + '<(V8_ROOT)/src/ic/accessor-assembler.h', + '<(V8_ROOT)/src/ic/binary-op-assembler.cc', + '<(V8_ROOT)/src/ic/binary-op-assembler.h', + '<(V8_ROOT)/src/ic/keyed-store-generic.cc', + '<(V8_ROOT)/src/ic/keyed-store-generic.h', + '<(V8_ROOT)/src/interpreter/interpreter-assembler.cc', + '<(V8_ROOT)/src/interpreter/interpreter-assembler.h', + '<(V8_ROOT)/src/interpreter/interpreter-generator.cc', + '<(V8_ROOT)/src/interpreter/interpreter-generator.h', + '<(V8_ROOT)/src/interpreter/interpreter-intrinsics-generator.cc', + '<(V8_ROOT)/src/interpreter/interpreter-intrinsics-generator.h', + '<@(torque_outputs)', + '<@(torque_generated_pure_headers)', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_target_arch=="ia32"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/ia32/builtins-ia32.cc', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/x64/builtins-x64.cc', + ], + }], + ['v8_target_arch=="arm"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/arm/builtins-arm.cc', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/arm64/builtins-arm64.cc', + ], + }], + ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/mips/builtins-mips.cc', + ], + }], + ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/mips64/builtins-mips64.cc', + ], + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/ppc/builtins-ppc.cc', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'sources': [ + '<(V8_ROOT)/src/builtins/s390/builtins-s390.cc', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }, { + 'sources!': [ + '<(V8_ROOT)/src/builtins/builtins-intl-gen.cc', + ], + }], + # Platforms that don't have Compare-And-Swap support need to link atomic + # library to implement atomic memory access + [ 'v8_current_cpu in ["mips", "mipsel", "mips64", "mips64el", "ppc", "ppc64", "s390", "s390x"]', { + 'link_settings': { + 'libraries': [ '-latomic', ], + }, + }, + ], + ['OS=="win"', { + 'msvs_precompiled_header': '<(V8_ROOT)/../../tools/msvs/pch/v8_pch.h', + 'msvs_precompiled_source': '<(V8_ROOT)/../../tools/msvs/pch/v8_pch.cc', + 'sources': [ + '<(_msvs_precompiled_header)', + '<(_msvs_precompiled_source)', + ], + }], + ], + }, # v8_initializers + { + 'target_name': 'v8_snapshot', + 'type': 'static_library', + 'toolsets': ['target'], + 'dependencies': [ + 'v8_base', + ], + 'sources': [ + '<(V8_ROOT)/src/setup-isolate-deserialize.cc', + './extras-libraries.cc', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'dependencies': [ + 'generate_snapshot#target', + ], + }, { + 'dependencies': [ + 'generate_snapshot', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + + ], + }, # v8_snapshot + { + 'target_name': 'generate_snapshot', + 'type': 'static_library', + 'toolsets': ['target'], + 'include_dirs': [ + '<(generate_bytecode_output_root)', + '<(torque_output_root)', + ], + 'xcode_settings': { + # V8 7.4 over macOS10.11 compatibility + # Refs: https://github.com/nodejs/node/pull/26685 + 'GCC_GENERATE_DEBUGGING_SYMBOLS': 'NO', + }, + 'conditions': [ + ['want_separate_host_toolset==1', { + 'dependencies': [ + 'mksnapshot#host', + ], + }, { + 'dependencies': [ + 'mksnapshot', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ], + 'actions': [ + { + 'action_name': 'run_mksnapshot', + 'message': 'generating: >@(_outputs)', + 'variables': { + 'mksnapshot_flags': ['--turbo_instruction_scheduling', ], + }, + 'inputs': [ + '<(mksnapshot_exec)', + ], + 'process_outputs_as_sources': '1', + 'conditions': [ + ['v8_enable_embedded_builtins == 1', { + # In this case we use `embedded_variant "Default"` + # and `suffix = ''` for the template `embedded${suffix}.S`. + 'outputs': [ '<(INTERMEDIATE_DIR)/embedded.S' ], + 'variables': { + 'mksnapshot_flags': [ + '--embedded_variant', 'Default', + '--embedded_src', '<(INTERMEDIATE_DIR)/embedded.S', + ], + }, + }, { + 'outputs': ['<(V8_ROOT)/src/snapshot/embedded-empty.cc'] + }], + ['v8_random_seed != 0', { + 'variables': { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }, + }], + ['v8_os_page_size != 0', { + 'variables': { + 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], + }, + }], + ['v8_use_external_startup_data != 0', { + 'outputs': ['<(INTERMEDIATE_DIR)/snapshot_blob.bin', ], + 'variables': { + 'mksnapshot_flags': ['--startup_blob', '<(INTERMEDIATE_DIR)/snapshot_blob.bin', ], + }, + }, { + 'outputs': ["<(INTERMEDIATE_DIR)/snapshot.cc"], + 'variables': { + 'mksnapshot_flags': ['--startup_src', '<(INTERMEDIATE_DIR)/snapshot.cc', ], + }, + }], + ['v8_embed_script != ""', { + 'inputs': ['<(v8_embed_script)'], + 'variables': { + 'mksnapshot_flags': ['<(v8_embed_script)'], + }, + }], + ['v8_enable_snapshot_code_comments == 1', { + 'variables': { + 'mksnapshot_flags': ['--code-comments'], + }, + }], + ], + 'action': [ + '>@(_inputs)', + '>@(mksnapshot_flags)', + ], + }, + ], + }, # generate_snapshot + { + 'target_name': 'v8_nosnapshot', + 'type': 'static_library', + 'dependencies': [ + 'v8_base', + ], + 'sources': [ + './extras-libraries.cc', + '<(V8_ROOT)/src/snapshot/embedded-empty.cc', + '<(V8_ROOT)/src/snapshot/snapshot-empty.cc', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + # This is the top target that needs both targets for + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + }], + ] + }, # v8_nosnapshot + { + 'target_name': 'v8_base', + 'type': 'static_library', + # Since this target is a static-library, but as a side effect it generates + # header files, it needs to be a hard dependency. + 'hard_dependency': 1, + 'includes': [ 'inspector.gypi' ], + 'dependencies': [ + 'v8_libbase', + 'v8_libsampler', + # Code generators that only need to be build for the host. + 'torque#host', + 'generate_bytecode_builtins_list#host', + ], + 'include_dirs': [ + '<(generate_bytecode_output_root)', + '<(torque_output_root)', + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(generate_bytecode_output_root)', + '<(torque_output_root)', + ], + }, + 'sources': [ + '<(V8_ROOT)/include/v8-inspector-protocol.h', + '<(V8_ROOT)/include/v8-inspector.h', + '<(V8_ROOT)/include/v8-internal.h', + '<(V8_ROOT)/include/v8-platform.h', + '<(V8_ROOT)/include/v8-profiler.h', + '<(V8_ROOT)/include/v8-testing.h', + '<(V8_ROOT)/include/v8-util.h', + '<(V8_ROOT)/include/v8-value-serializer-version.h', + '<(V8_ROOT)/include/v8-version-string.h', + '<(V8_ROOT)/include/v8-version.h', + '<(V8_ROOT)/include/v8-wasm-trap-handler-posix.h', + '<(V8_ROOT)/include/v8-wasm-trap-handler-win.h', + '<(V8_ROOT)/include/v8.h', + '<(V8_ROOT)/include/v8config.h', + '<(V8_ROOT)/src/accessors.cc', + '<(V8_ROOT)/src/accessors.h', + '<(V8_ROOT)/src/address-map.cc', + '<(V8_ROOT)/src/address-map.h', + '<(V8_ROOT)/src/allocation-site-scopes-inl.h', + '<(V8_ROOT)/src/allocation-site-scopes.h', + '<(V8_ROOT)/src/allocation.cc', + '<(V8_ROOT)/src/allocation.h', + '<(V8_ROOT)/src/api-arguments-inl.h', + '<(V8_ROOT)/src/api-arguments.cc', + '<(V8_ROOT)/src/api-arguments.h', + '<(V8_ROOT)/src/api-natives.cc', + '<(V8_ROOT)/src/api-natives.h', + '<(V8_ROOT)/src/api.cc', + '<(V8_ROOT)/src/api.h', + '<(V8_ROOT)/src/arguments-inl.h', + '<(V8_ROOT)/src/arguments.cc', + '<(V8_ROOT)/src/arguments.h', + '<(V8_ROOT)/src/asan.h', + '<(V8_ROOT)/src/asmjs/asm-js.cc', + '<(V8_ROOT)/src/asmjs/asm-js.h', + '<(V8_ROOT)/src/asmjs/asm-names.h', + '<(V8_ROOT)/src/asmjs/asm-parser.cc', + '<(V8_ROOT)/src/asmjs/asm-parser.h', + '<(V8_ROOT)/src/asmjs/asm-scanner.cc', + '<(V8_ROOT)/src/asmjs/asm-scanner.h', + '<(V8_ROOT)/src/asmjs/asm-types.cc', + '<(V8_ROOT)/src/asmjs/asm-types.h', + '<(V8_ROOT)/src/assembler-arch.h', + '<(V8_ROOT)/src/assembler-inl.h', + '<(V8_ROOT)/src/assembler.cc', + '<(V8_ROOT)/src/assembler.h', + '<(V8_ROOT)/src/assert-scope.cc', + '<(V8_ROOT)/src/assert-scope.h', + '<(V8_ROOT)/src/ast/ast-function-literal-id-reindexer.cc', + '<(V8_ROOT)/src/ast/ast-function-literal-id-reindexer.h', + '<(V8_ROOT)/src/ast/ast-source-ranges.h', + '<(V8_ROOT)/src/ast/ast-traversal-visitor.h', + '<(V8_ROOT)/src/ast/ast-value-factory.cc', + '<(V8_ROOT)/src/ast/ast-value-factory.h', + '<(V8_ROOT)/src/ast/ast.cc', + '<(V8_ROOT)/src/ast/ast.h', + '<(V8_ROOT)/src/ast/modules.cc', + '<(V8_ROOT)/src/ast/modules.h', + '<(V8_ROOT)/src/ast/prettyprinter.cc', + '<(V8_ROOT)/src/ast/prettyprinter.h', + '<(V8_ROOT)/src/ast/scopes.cc', + '<(V8_ROOT)/src/ast/scopes.h', + '<(V8_ROOT)/src/ast/source-range-ast-visitor.cc', + '<(V8_ROOT)/src/ast/source-range-ast-visitor.h', + '<(V8_ROOT)/src/ast/variables.cc', + '<(V8_ROOT)/src/ast/variables.h', + '<(V8_ROOT)/src/bailout-reason.cc', + '<(V8_ROOT)/src/bailout-reason.h', + '<(V8_ROOT)/src/basic-block-profiler.cc', + '<(V8_ROOT)/src/basic-block-profiler.h', + '<(V8_ROOT)/src/bignum-dtoa.cc', + '<(V8_ROOT)/src/bignum-dtoa.h', + '<(V8_ROOT)/src/bignum.cc', + '<(V8_ROOT)/src/bignum.h', + '<(V8_ROOT)/src/bit-vector.cc', + '<(V8_ROOT)/src/bit-vector.h', + '<(V8_ROOT)/src/bootstrapper.cc', + '<(V8_ROOT)/src/bootstrapper.h', + '<(V8_ROOT)/src/boxed-float.h', + '<(V8_ROOT)/src/builtins/builtins-api.cc', + '<(V8_ROOT)/src/builtins/builtins-array.cc', + '<(V8_ROOT)/src/builtins/builtins-arraybuffer.cc', + '<(V8_ROOT)/src/builtins/builtins-bigint.cc', + '<(V8_ROOT)/src/builtins/builtins-boolean.cc', + '<(V8_ROOT)/src/builtins/builtins-call.cc', + '<(V8_ROOT)/src/builtins/builtins-callsite.cc', + '<(V8_ROOT)/src/builtins/builtins-collections.cc', + '<(V8_ROOT)/src/builtins/builtins-console.cc', + '<(V8_ROOT)/src/builtins/builtins-constructor.h', + '<(V8_ROOT)/src/builtins/builtins-dataview.cc', + '<(V8_ROOT)/src/builtins/builtins-date.cc', + '<(V8_ROOT)/src/builtins/builtins-definitions.h', + '<(V8_ROOT)/src/builtins/builtins-descriptors.h', + '<(V8_ROOT)/src/builtins/builtins-error.cc', + '<(V8_ROOT)/src/builtins/builtins-extras-utils.cc', + '<(V8_ROOT)/src/builtins/builtins-function.cc', + '<(V8_ROOT)/src/builtins/builtins-global.cc', + '<(V8_ROOT)/src/builtins/builtins-internal.cc', + '<(V8_ROOT)/src/builtins/builtins-intl.cc', + '<(V8_ROOT)/src/builtins/builtins-json.cc', + '<(V8_ROOT)/src/builtins/builtins-math.cc', + '<(V8_ROOT)/src/builtins/builtins-number.cc', + '<(V8_ROOT)/src/builtins/builtins-object.cc', + '<(V8_ROOT)/src/builtins/builtins-promise.cc', + '<(V8_ROOT)/src/builtins/builtins-promise.h', + '<(V8_ROOT)/src/builtins/builtins-reflect.cc', + '<(V8_ROOT)/src/builtins/builtins-regexp.cc', + '<(V8_ROOT)/src/builtins/builtins-sharedarraybuffer.cc', + '<(V8_ROOT)/src/builtins/builtins-string.cc', + '<(V8_ROOT)/src/builtins/builtins-symbol.cc', + '<(V8_ROOT)/src/builtins/builtins-trace.cc', + '<(V8_ROOT)/src/builtins/builtins-typed-array.cc', + '<(V8_ROOT)/src/builtins/builtins-utils-inl.h', + '<(V8_ROOT)/src/builtins/builtins-utils.h', + '<(V8_ROOT)/src/builtins/builtins-weak-refs.cc', + '<(V8_ROOT)/src/builtins/builtins.cc', + '<(V8_ROOT)/src/builtins/builtins.h', + '<(V8_ROOT)/src/builtins/constants-table-builder.cc', + '<(V8_ROOT)/src/builtins/constants-table-builder.h', + '<(V8_ROOT)/src/cached-powers.cc', + '<(V8_ROOT)/src/cached-powers.h', + '<(V8_ROOT)/src/callable.h', + '<(V8_ROOT)/src/cancelable-task.cc', + '<(V8_ROOT)/src/cancelable-task.h', + '<(V8_ROOT)/src/char-predicates-inl.h', + '<(V8_ROOT)/src/char-predicates.cc', + '<(V8_ROOT)/src/char-predicates.h', + '<(V8_ROOT)/src/checks.h', + '<(V8_ROOT)/src/code-comments.cc', + '<(V8_ROOT)/src/code-comments.h', + '<(V8_ROOT)/src/code-desc.cc', + '<(V8_ROOT)/src/code-desc.h', + '<(V8_ROOT)/src/code-events.h', + '<(V8_ROOT)/src/code-factory.cc', + '<(V8_ROOT)/src/code-factory.h', + '<(V8_ROOT)/src/code-reference.cc', + '<(V8_ROOT)/src/code-reference.h', + '<(V8_ROOT)/src/code-tracer.h', + '<(V8_ROOT)/src/collector.h', + '<(V8_ROOT)/src/compilation-cache.cc', + '<(V8_ROOT)/src/compilation-cache.h', + '<(V8_ROOT)/src/compilation-statistics.cc', + '<(V8_ROOT)/src/compilation-statistics.h', + '<(V8_ROOT)/src/compiler-dispatcher/compiler-dispatcher.cc', + '<(V8_ROOT)/src/compiler-dispatcher/compiler-dispatcher.h', + '<(V8_ROOT)/src/compiler-dispatcher/optimizing-compile-dispatcher.cc', + '<(V8_ROOT)/src/compiler-dispatcher/optimizing-compile-dispatcher.h', + '<(V8_ROOT)/src/compiler.cc', + '<(V8_ROOT)/src/compiler.h', + '<(V8_ROOT)/src/compiler/access-builder.cc', + '<(V8_ROOT)/src/compiler/access-builder.h', + '<(V8_ROOT)/src/compiler/access-info.cc', + '<(V8_ROOT)/src/compiler/access-info.h', + '<(V8_ROOT)/src/compiler/all-nodes.cc', + '<(V8_ROOT)/src/compiler/all-nodes.h', + '<(V8_ROOT)/src/compiler/allocation-builder-inl.h', + '<(V8_ROOT)/src/compiler/allocation-builder.h', + '<(V8_ROOT)/src/compiler/backend/code-generator-impl.h', + '<(V8_ROOT)/src/compiler/backend/code-generator.cc', + '<(V8_ROOT)/src/compiler/backend/code-generator.h', + '<(V8_ROOT)/src/compiler/backend/frame-elider.cc', + '<(V8_ROOT)/src/compiler/backend/frame-elider.h', + '<(V8_ROOT)/src/compiler/backend/gap-resolver.cc', + '<(V8_ROOT)/src/compiler/backend/gap-resolver.h', + '<(V8_ROOT)/src/compiler/backend/instruction-codes.h', + '<(V8_ROOT)/src/compiler/backend/instruction-scheduler.cc', + '<(V8_ROOT)/src/compiler/backend/instruction-scheduler.h', + '<(V8_ROOT)/src/compiler/backend/instruction-selector-impl.h', + '<(V8_ROOT)/src/compiler/backend/instruction-selector.cc', + '<(V8_ROOT)/src/compiler/backend/instruction-selector.h', + '<(V8_ROOT)/src/compiler/backend/instruction.cc', + '<(V8_ROOT)/src/compiler/backend/instruction.h', + '<(V8_ROOT)/src/compiler/backend/jump-threading.cc', + '<(V8_ROOT)/src/compiler/backend/jump-threading.h', + '<(V8_ROOT)/src/compiler/backend/live-range-separator.cc', + '<(V8_ROOT)/src/compiler/backend/live-range-separator.h', + '<(V8_ROOT)/src/compiler/backend/move-optimizer.cc', + '<(V8_ROOT)/src/compiler/backend/move-optimizer.h', + '<(V8_ROOT)/src/compiler/backend/register-allocator-verifier.cc', + '<(V8_ROOT)/src/compiler/backend/register-allocator-verifier.h', + '<(V8_ROOT)/src/compiler/backend/register-allocator.cc', + '<(V8_ROOT)/src/compiler/backend/register-allocator.h', + '<(V8_ROOT)/src/compiler/backend/unwinding-info-writer.h', + '<(V8_ROOT)/src/compiler/basic-block-instrumentor.cc', + '<(V8_ROOT)/src/compiler/basic-block-instrumentor.h', + '<(V8_ROOT)/src/compiler/branch-elimination.cc', + '<(V8_ROOT)/src/compiler/branch-elimination.h', + '<(V8_ROOT)/src/compiler/bytecode-analysis.cc', + '<(V8_ROOT)/src/compiler/bytecode-analysis.h', + '<(V8_ROOT)/src/compiler/bytecode-graph-builder.cc', + '<(V8_ROOT)/src/compiler/bytecode-graph-builder.h', + '<(V8_ROOT)/src/compiler/bytecode-liveness-map.cc', + '<(V8_ROOT)/src/compiler/bytecode-liveness-map.h', + '<(V8_ROOT)/src/compiler/c-linkage.cc', + '<(V8_ROOT)/src/compiler/checkpoint-elimination.cc', + '<(V8_ROOT)/src/compiler/checkpoint-elimination.h', + '<(V8_ROOT)/src/compiler/code-assembler.cc', + '<(V8_ROOT)/src/compiler/code-assembler.h', + '<(V8_ROOT)/src/compiler/common-node-cache.cc', + '<(V8_ROOT)/src/compiler/common-node-cache.h', + '<(V8_ROOT)/src/compiler/common-operator-reducer.cc', + '<(V8_ROOT)/src/compiler/common-operator-reducer.h', + '<(V8_ROOT)/src/compiler/common-operator.cc', + '<(V8_ROOT)/src/compiler/common-operator.h', + '<(V8_ROOT)/src/compiler/compilation-dependencies.cc', + '<(V8_ROOT)/src/compiler/compilation-dependencies.h', + '<(V8_ROOT)/src/compiler/compiler-source-position-table.cc', + '<(V8_ROOT)/src/compiler/compiler-source-position-table.h', + '<(V8_ROOT)/src/compiler/constant-folding-reducer.cc', + '<(V8_ROOT)/src/compiler/constant-folding-reducer.h', + '<(V8_ROOT)/src/compiler/control-equivalence.cc', + '<(V8_ROOT)/src/compiler/control-equivalence.h', + '<(V8_ROOT)/src/compiler/control-flow-optimizer.cc', + '<(V8_ROOT)/src/compiler/control-flow-optimizer.h', + '<(V8_ROOT)/src/compiler/dead-code-elimination.cc', + '<(V8_ROOT)/src/compiler/dead-code-elimination.h', + '<(V8_ROOT)/src/compiler/diamond.h', + '<(V8_ROOT)/src/compiler/effect-control-linearizer.cc', + '<(V8_ROOT)/src/compiler/effect-control-linearizer.h', + '<(V8_ROOT)/src/compiler/escape-analysis-reducer.cc', + '<(V8_ROOT)/src/compiler/escape-analysis-reducer.h', + '<(V8_ROOT)/src/compiler/escape-analysis.cc', + '<(V8_ROOT)/src/compiler/escape-analysis.h', + '<(V8_ROOT)/src/compiler/frame-states.cc', + '<(V8_ROOT)/src/compiler/frame-states.h', + '<(V8_ROOT)/src/compiler/frame.cc', + '<(V8_ROOT)/src/compiler/frame.h', + '<(V8_ROOT)/src/compiler/functional-list.h', + '<(V8_ROOT)/src/compiler/graph-assembler.cc', + '<(V8_ROOT)/src/compiler/graph-assembler.h', + '<(V8_ROOT)/src/compiler/graph-reducer.cc', + '<(V8_ROOT)/src/compiler/graph-reducer.h', + '<(V8_ROOT)/src/compiler/graph-trimmer.cc', + '<(V8_ROOT)/src/compiler/graph-trimmer.h', + '<(V8_ROOT)/src/compiler/graph-visualizer.cc', + '<(V8_ROOT)/src/compiler/graph-visualizer.h', + '<(V8_ROOT)/src/compiler/graph.cc', + '<(V8_ROOT)/src/compiler/graph.h', + '<(V8_ROOT)/src/compiler/int64-lowering.cc', + '<(V8_ROOT)/src/compiler/int64-lowering.h', + '<(V8_ROOT)/src/compiler/js-call-reducer.cc', + '<(V8_ROOT)/src/compiler/js-call-reducer.h', + '<(V8_ROOT)/src/compiler/js-context-specialization.cc', + '<(V8_ROOT)/src/compiler/js-context-specialization.h', + '<(V8_ROOT)/src/compiler/js-create-lowering.cc', + '<(V8_ROOT)/src/compiler/js-create-lowering.h', + '<(V8_ROOT)/src/compiler/js-generic-lowering.cc', + '<(V8_ROOT)/src/compiler/js-generic-lowering.h', + '<(V8_ROOT)/src/compiler/js-graph.cc', + '<(V8_ROOT)/src/compiler/js-graph.h', + '<(V8_ROOT)/src/compiler/js-heap-broker.cc', + '<(V8_ROOT)/src/compiler/js-heap-broker.h', + '<(V8_ROOT)/src/compiler/js-heap-copy-reducer.cc', + '<(V8_ROOT)/src/compiler/js-heap-copy-reducer.h', + '<(V8_ROOT)/src/compiler/js-inlining-heuristic.cc', + '<(V8_ROOT)/src/compiler/js-inlining-heuristic.h', + '<(V8_ROOT)/src/compiler/js-inlining.cc', + '<(V8_ROOT)/src/compiler/js-inlining.h', + '<(V8_ROOT)/src/compiler/js-intrinsic-lowering.cc', + '<(V8_ROOT)/src/compiler/js-intrinsic-lowering.h', + '<(V8_ROOT)/src/compiler/js-native-context-specialization.cc', + '<(V8_ROOT)/src/compiler/js-native-context-specialization.h', + '<(V8_ROOT)/src/compiler/js-operator.cc', + '<(V8_ROOT)/src/compiler/js-operator.h', + '<(V8_ROOT)/src/compiler/js-type-hint-lowering.cc', + '<(V8_ROOT)/src/compiler/js-type-hint-lowering.h', + '<(V8_ROOT)/src/compiler/js-typed-lowering.cc', + '<(V8_ROOT)/src/compiler/js-typed-lowering.h', + '<(V8_ROOT)/src/compiler/linkage.cc', + '<(V8_ROOT)/src/compiler/linkage.h', + '<(V8_ROOT)/src/compiler/load-elimination.cc', + '<(V8_ROOT)/src/compiler/load-elimination.h', + '<(V8_ROOT)/src/compiler/loop-analysis.cc', + '<(V8_ROOT)/src/compiler/loop-analysis.h', + '<(V8_ROOT)/src/compiler/loop-peeling.cc', + '<(V8_ROOT)/src/compiler/loop-peeling.h', + '<(V8_ROOT)/src/compiler/loop-variable-optimizer.cc', + '<(V8_ROOT)/src/compiler/loop-variable-optimizer.h', + '<(V8_ROOT)/src/compiler/machine-graph-verifier.cc', + '<(V8_ROOT)/src/compiler/machine-graph-verifier.h', + '<(V8_ROOT)/src/compiler/machine-graph.cc', + '<(V8_ROOT)/src/compiler/machine-graph.h', + '<(V8_ROOT)/src/compiler/machine-operator-reducer.cc', + '<(V8_ROOT)/src/compiler/machine-operator-reducer.h', + '<(V8_ROOT)/src/compiler/machine-operator.cc', + '<(V8_ROOT)/src/compiler/machine-operator.h', + '<(V8_ROOT)/src/compiler/memory-optimizer.cc', + '<(V8_ROOT)/src/compiler/memory-optimizer.h', + '<(V8_ROOT)/src/compiler/node-aux-data.h', + '<(V8_ROOT)/src/compiler/node-cache.cc', + '<(V8_ROOT)/src/compiler/node-cache.h', + '<(V8_ROOT)/src/compiler/node-marker.cc', + '<(V8_ROOT)/src/compiler/node-marker.h', + '<(V8_ROOT)/src/compiler/node-matchers.cc', + '<(V8_ROOT)/src/compiler/node-matchers.h', + '<(V8_ROOT)/src/compiler/node-origin-table.cc', + '<(V8_ROOT)/src/compiler/node-origin-table.h', + '<(V8_ROOT)/src/compiler/node-properties.cc', + '<(V8_ROOT)/src/compiler/node-properties.h', + '<(V8_ROOT)/src/compiler/node.cc', + '<(V8_ROOT)/src/compiler/node.h', + '<(V8_ROOT)/src/compiler/opcodes.cc', + '<(V8_ROOT)/src/compiler/opcodes.h', + '<(V8_ROOT)/src/compiler/operation-typer.cc', + '<(V8_ROOT)/src/compiler/operation-typer.h', + '<(V8_ROOT)/src/compiler/operator-properties.cc', + '<(V8_ROOT)/src/compiler/operator-properties.h', + '<(V8_ROOT)/src/compiler/operator.cc', + '<(V8_ROOT)/src/compiler/operator.h', + '<(V8_ROOT)/src/compiler/osr.cc', + '<(V8_ROOT)/src/compiler/osr.h', + '<(V8_ROOT)/src/compiler/per-isolate-compiler-cache.h', + '<(V8_ROOT)/src/compiler/persistent-map.h', + '<(V8_ROOT)/src/compiler/pipeline-statistics.cc', + '<(V8_ROOT)/src/compiler/pipeline-statistics.h', + '<(V8_ROOT)/src/compiler/pipeline.cc', + '<(V8_ROOT)/src/compiler/pipeline.h', + '<(V8_ROOT)/src/compiler/property-access-builder.cc', + '<(V8_ROOT)/src/compiler/property-access-builder.h', + '<(V8_ROOT)/src/compiler/raw-machine-assembler.cc', + '<(V8_ROOT)/src/compiler/raw-machine-assembler.h', + '<(V8_ROOT)/src/compiler/redundancy-elimination.cc', + '<(V8_ROOT)/src/compiler/redundancy-elimination.h', + '<(V8_ROOT)/src/compiler/refs-map.cc', + '<(V8_ROOT)/src/compiler/refs-map.h', + '<(V8_ROOT)/src/compiler/representation-change.cc', + '<(V8_ROOT)/src/compiler/representation-change.h', + '<(V8_ROOT)/src/compiler/schedule.cc', + '<(V8_ROOT)/src/compiler/schedule.h', + '<(V8_ROOT)/src/compiler/scheduler.cc', + '<(V8_ROOT)/src/compiler/scheduler.h', + '<(V8_ROOT)/src/compiler/select-lowering.cc', + '<(V8_ROOT)/src/compiler/select-lowering.h', + '<(V8_ROOT)/src/compiler/serializer-for-background-compilation.cc', + '<(V8_ROOT)/src/compiler/serializer-for-background-compilation.h', + '<(V8_ROOT)/src/compiler/simd-scalar-lowering.cc', + '<(V8_ROOT)/src/compiler/simd-scalar-lowering.h', + '<(V8_ROOT)/src/compiler/simplified-lowering.cc', + '<(V8_ROOT)/src/compiler/simplified-lowering.h', + '<(V8_ROOT)/src/compiler/simplified-operator-reducer.cc', + '<(V8_ROOT)/src/compiler/simplified-operator-reducer.h', + '<(V8_ROOT)/src/compiler/simplified-operator.cc', + '<(V8_ROOT)/src/compiler/simplified-operator.h', + '<(V8_ROOT)/src/compiler/state-values-utils.cc', + '<(V8_ROOT)/src/compiler/state-values-utils.h', + '<(V8_ROOT)/src/compiler/store-store-elimination.cc', + '<(V8_ROOT)/src/compiler/store-store-elimination.h', + '<(V8_ROOT)/src/compiler/type-cache.cc', + '<(V8_ROOT)/src/compiler/type-cache.h', + '<(V8_ROOT)/src/compiler/type-narrowing-reducer.cc', + '<(V8_ROOT)/src/compiler/type-narrowing-reducer.h', + '<(V8_ROOT)/src/compiler/typed-optimization.cc', + '<(V8_ROOT)/src/compiler/typed-optimization.h', + '<(V8_ROOT)/src/compiler/typer.cc', + '<(V8_ROOT)/src/compiler/typer.h', + '<(V8_ROOT)/src/compiler/types.cc', + '<(V8_ROOT)/src/compiler/types.h', + '<(V8_ROOT)/src/compiler/value-numbering-reducer.cc', + '<(V8_ROOT)/src/compiler/value-numbering-reducer.h', + '<(V8_ROOT)/src/compiler/verifier.cc', + '<(V8_ROOT)/src/compiler/verifier.h', + '<(V8_ROOT)/src/compiler/wasm-compiler.cc', + '<(V8_ROOT)/src/compiler/wasm-compiler.h', + '<(V8_ROOT)/src/compiler/zone-stats.cc', + '<(V8_ROOT)/src/compiler/zone-stats.h', + '<(V8_ROOT)/src/constant-pool.cc', + '<(V8_ROOT)/src/constant-pool.h', + '<(V8_ROOT)/src/constants-arch.h', + '<(V8_ROOT)/src/contexts-inl.h', + '<(V8_ROOT)/src/contexts.cc', + '<(V8_ROOT)/src/contexts.h', + '<(V8_ROOT)/src/conversions-inl.h', + '<(V8_ROOT)/src/conversions.cc', + '<(V8_ROOT)/src/conversions.h', + '<(V8_ROOT)/src/counters-inl.h', + '<(V8_ROOT)/src/counters.cc', + '<(V8_ROOT)/src/counters.h', + '<(V8_ROOT)/src/cpu-features.h', + '<(V8_ROOT)/src/date.cc', + '<(V8_ROOT)/src/date.h', + '<(V8_ROOT)/src/dateparser-inl.h', + '<(V8_ROOT)/src/dateparser.cc', + '<(V8_ROOT)/src/dateparser.h', + '<(V8_ROOT)/src/debug/debug-coverage.cc', + '<(V8_ROOT)/src/debug/debug-coverage.h', + '<(V8_ROOT)/src/debug/debug-evaluate.cc', + '<(V8_ROOT)/src/debug/debug-evaluate.h', + '<(V8_ROOT)/src/debug/debug-frames.cc', + '<(V8_ROOT)/src/debug/debug-frames.h', + '<(V8_ROOT)/src/debug/debug-interface.h', + '<(V8_ROOT)/src/debug/debug-property-iterator.cc', + '<(V8_ROOT)/src/debug/debug-property-iterator.h', + '<(V8_ROOT)/src/debug/debug-scope-iterator.cc', + '<(V8_ROOT)/src/debug/debug-scope-iterator.h', + '<(V8_ROOT)/src/debug/debug-scopes.cc', + '<(V8_ROOT)/src/debug/debug-scopes.h', + '<(V8_ROOT)/src/debug/debug-stack-trace-iterator.cc', + '<(V8_ROOT)/src/debug/debug-stack-trace-iterator.h', + '<(V8_ROOT)/src/debug/debug-type-profile.cc', + '<(V8_ROOT)/src/debug/debug-type-profile.h', + '<(V8_ROOT)/src/debug/debug.cc', + '<(V8_ROOT)/src/debug/debug.h', + '<(V8_ROOT)/src/debug/interface-types.h', + '<(V8_ROOT)/src/debug/liveedit.cc', + '<(V8_ROOT)/src/debug/liveedit.h', + '<(V8_ROOT)/src/deoptimize-reason.cc', + '<(V8_ROOT)/src/deoptimize-reason.h', + '<(V8_ROOT)/src/deoptimizer.cc', + '<(V8_ROOT)/src/deoptimizer.h', + '<(V8_ROOT)/src/detachable-vector.cc', + '<(V8_ROOT)/src/detachable-vector.h', + '<(V8_ROOT)/src/disasm.h', + '<(V8_ROOT)/src/disassembler.cc', + '<(V8_ROOT)/src/disassembler.h', + '<(V8_ROOT)/src/diy-fp.cc', + '<(V8_ROOT)/src/diy-fp.h', + '<(V8_ROOT)/src/double.h', + '<(V8_ROOT)/src/dtoa.cc', + '<(V8_ROOT)/src/dtoa.h', + '<(V8_ROOT)/src/eh-frame.cc', + '<(V8_ROOT)/src/eh-frame.h', + '<(V8_ROOT)/src/elements-inl.h', + '<(V8_ROOT)/src/elements-kind.cc', + '<(V8_ROOT)/src/elements-kind.h', + '<(V8_ROOT)/src/elements.cc', + '<(V8_ROOT)/src/elements.h', + '<(V8_ROOT)/src/execution.cc', + '<(V8_ROOT)/src/execution.h', + '<(V8_ROOT)/src/extensions/externalize-string-extension.cc', + '<(V8_ROOT)/src/extensions/externalize-string-extension.h', + '<(V8_ROOT)/src/extensions/free-buffer-extension.cc', + '<(V8_ROOT)/src/extensions/free-buffer-extension.h', + '<(V8_ROOT)/src/extensions/gc-extension.cc', + '<(V8_ROOT)/src/extensions/gc-extension.h', + '<(V8_ROOT)/src/extensions/ignition-statistics-extension.cc', + '<(V8_ROOT)/src/extensions/ignition-statistics-extension.h', + '<(V8_ROOT)/src/extensions/statistics-extension.cc', + '<(V8_ROOT)/src/extensions/statistics-extension.h', + '<(V8_ROOT)/src/extensions/trigger-failure-extension.cc', + '<(V8_ROOT)/src/extensions/trigger-failure-extension.h', + '<(V8_ROOT)/src/external-reference-table.cc', + '<(V8_ROOT)/src/external-reference-table.h', + '<(V8_ROOT)/src/external-reference.cc', + '<(V8_ROOT)/src/external-reference.h', + '<(V8_ROOT)/src/fast-dtoa.cc', + '<(V8_ROOT)/src/fast-dtoa.h', + '<(V8_ROOT)/src/feedback-vector-inl.h', + '<(V8_ROOT)/src/feedback-vector.cc', + '<(V8_ROOT)/src/feedback-vector.h', + '<(V8_ROOT)/src/field-index-inl.h', + '<(V8_ROOT)/src/field-index.h', + '<(V8_ROOT)/src/field-type.cc', + '<(V8_ROOT)/src/field-type.h', + '<(V8_ROOT)/src/fixed-dtoa.cc', + '<(V8_ROOT)/src/fixed-dtoa.h', + '<(V8_ROOT)/src/flag-definitions.h', + '<(V8_ROOT)/src/flags.cc', + '<(V8_ROOT)/src/flags.h', + '<(V8_ROOT)/src/flush-instruction-cache.cc', + '<(V8_ROOT)/src/flush-instruction-cache.h', + '<(V8_ROOT)/src/frame-constants.h', + '<(V8_ROOT)/src/frames-inl.h', + '<(V8_ROOT)/src/frames.cc', + '<(V8_ROOT)/src/frames.h', + '<(V8_ROOT)/src/function-kind.h', + '<(V8_ROOT)/src/futex-emulation.cc', + '<(V8_ROOT)/src/futex-emulation.h', + '<(V8_ROOT)/src/gdb-jit.cc', + '<(V8_ROOT)/src/gdb-jit.h', + '<(V8_ROOT)/src/global-handles.cc', + '<(V8_ROOT)/src/global-handles.h', + '<(V8_ROOT)/src/handler-table.cc', + '<(V8_ROOT)/src/handler-table.h', + '<(V8_ROOT)/src/handles-inl.h', + '<(V8_ROOT)/src/handles.cc', + '<(V8_ROOT)/src/handles.h', + '<(V8_ROOT)/src/hash-seed-inl.h', + '<(V8_ROOT)/src/heap-symbols.h', + '<(V8_ROOT)/src/heap/array-buffer-collector.cc', + '<(V8_ROOT)/src/heap/array-buffer-collector.h', + '<(V8_ROOT)/src/heap/array-buffer-tracker-inl.h', + '<(V8_ROOT)/src/heap/array-buffer-tracker.cc', + '<(V8_ROOT)/src/heap/array-buffer-tracker.h', + '<(V8_ROOT)/src/heap/barrier.h', + '<(V8_ROOT)/src/heap/code-stats.cc', + '<(V8_ROOT)/src/heap/code-stats.h', + '<(V8_ROOT)/src/heap/concurrent-marking.cc', + '<(V8_ROOT)/src/heap/concurrent-marking.h', + '<(V8_ROOT)/src/heap/embedder-tracing.cc', + '<(V8_ROOT)/src/heap/embedder-tracing.h', + '<(V8_ROOT)/src/heap/factory-inl.h', + '<(V8_ROOT)/src/heap/factory.cc', + '<(V8_ROOT)/src/heap/factory.h', + '<(V8_ROOT)/src/heap/gc-idle-time-handler.cc', + '<(V8_ROOT)/src/heap/gc-idle-time-handler.h', + '<(V8_ROOT)/src/heap/gc-tracer.cc', + '<(V8_ROOT)/src/heap/gc-tracer.h', + '<(V8_ROOT)/src/heap/heap-controller.cc', + '<(V8_ROOT)/src/heap/heap-controller.h', + '<(V8_ROOT)/src/heap/heap-inl.h', + '<(V8_ROOT)/src/heap/heap-write-barrier-inl.h', + '<(V8_ROOT)/src/heap/heap-write-barrier.h', + '<(V8_ROOT)/src/heap/heap.cc', + '<(V8_ROOT)/src/heap/heap.h', + '<(V8_ROOT)/src/heap/incremental-marking-inl.h', + '<(V8_ROOT)/src/heap/incremental-marking-job.cc', + '<(V8_ROOT)/src/heap/incremental-marking-job.h', + '<(V8_ROOT)/src/heap/incremental-marking.cc', + '<(V8_ROOT)/src/heap/incremental-marking.h', + '<(V8_ROOT)/src/heap/invalidated-slots-inl.h', + '<(V8_ROOT)/src/heap/invalidated-slots.cc', + '<(V8_ROOT)/src/heap/invalidated-slots.h', + '<(V8_ROOT)/src/heap/item-parallel-job.cc', + '<(V8_ROOT)/src/heap/item-parallel-job.h', + '<(V8_ROOT)/src/heap/local-allocator-inl.h', + '<(V8_ROOT)/src/heap/local-allocator.h', + '<(V8_ROOT)/src/heap/mark-compact-inl.h', + '<(V8_ROOT)/src/heap/mark-compact.cc', + '<(V8_ROOT)/src/heap/mark-compact.h', + '<(V8_ROOT)/src/heap/marking.cc', + '<(V8_ROOT)/src/heap/marking.h', + '<(V8_ROOT)/src/heap/memory-reducer.cc', + '<(V8_ROOT)/src/heap/memory-reducer.h', + '<(V8_ROOT)/src/heap/object-stats.cc', + '<(V8_ROOT)/src/heap/object-stats.h', + '<(V8_ROOT)/src/heap/objects-visiting-inl.h', + '<(V8_ROOT)/src/heap/objects-visiting.cc', + '<(V8_ROOT)/src/heap/objects-visiting.h', + '<(V8_ROOT)/src/heap/read-only-heap.cc', + '<(V8_ROOT)/src/heap/read-only-heap.h', + '<(V8_ROOT)/src/heap/remembered-set.h', + '<(V8_ROOT)/src/heap/scavenge-job.cc', + '<(V8_ROOT)/src/heap/scavenge-job.h', + '<(V8_ROOT)/src/heap/scavenger-inl.h', + '<(V8_ROOT)/src/heap/scavenger.cc', + '<(V8_ROOT)/src/heap/scavenger.h', + '<(V8_ROOT)/src/heap/slot-set.cc', + '<(V8_ROOT)/src/heap/slot-set.h', + '<(V8_ROOT)/src/heap/spaces-inl.h', + '<(V8_ROOT)/src/heap/spaces.cc', + '<(V8_ROOT)/src/heap/spaces.h', + '<(V8_ROOT)/src/heap/store-buffer-inl.h', + '<(V8_ROOT)/src/heap/store-buffer.cc', + '<(V8_ROOT)/src/heap/store-buffer.h', + '<(V8_ROOT)/src/heap/stress-marking-observer.cc', + '<(V8_ROOT)/src/heap/stress-marking-observer.h', + '<(V8_ROOT)/src/heap/stress-scavenge-observer.cc', + '<(V8_ROOT)/src/heap/stress-scavenge-observer.h', + '<(V8_ROOT)/src/heap/sweeper.cc', + '<(V8_ROOT)/src/heap/sweeper.h', + '<(V8_ROOT)/src/heap/worklist.h', + '<(V8_ROOT)/src/ic/call-optimization.cc', + '<(V8_ROOT)/src/ic/call-optimization.h', + '<(V8_ROOT)/src/ic/handler-configuration-inl.h', + '<(V8_ROOT)/src/ic/handler-configuration.cc', + '<(V8_ROOT)/src/ic/handler-configuration.h', + '<(V8_ROOT)/src/ic/ic-inl.h', + '<(V8_ROOT)/src/ic/ic-stats.cc', + '<(V8_ROOT)/src/ic/ic-stats.h', + '<(V8_ROOT)/src/ic/ic.cc', + '<(V8_ROOT)/src/ic/ic.h', + '<(V8_ROOT)/src/ic/stub-cache.cc', + '<(V8_ROOT)/src/ic/stub-cache.h', + '<(V8_ROOT)/src/icu_util.cc', + '<(V8_ROOT)/src/icu_util.h', + '<(V8_ROOT)/src/identity-map.cc', + '<(V8_ROOT)/src/identity-map.h', + '<(V8_ROOT)/src/interface-descriptors.cc', + '<(V8_ROOT)/src/interface-descriptors.h', + '<(V8_ROOT)/src/interpreter/block-coverage-builder.h', + '<(V8_ROOT)/src/interpreter/bytecode-array-accessor.cc', + '<(V8_ROOT)/src/interpreter/bytecode-array-accessor.h', + '<(V8_ROOT)/src/interpreter/bytecode-array-builder.cc', + '<(V8_ROOT)/src/interpreter/bytecode-array-builder.h', + '<(V8_ROOT)/src/interpreter/bytecode-array-iterator.cc', + '<(V8_ROOT)/src/interpreter/bytecode-array-iterator.h', + '<(V8_ROOT)/src/interpreter/bytecode-array-random-iterator.cc', + '<(V8_ROOT)/src/interpreter/bytecode-array-random-iterator.h', + '<(V8_ROOT)/src/interpreter/bytecode-array-writer.cc', + '<(V8_ROOT)/src/interpreter/bytecode-array-writer.h', + '<(V8_ROOT)/src/interpreter/bytecode-decoder.cc', + '<(V8_ROOT)/src/interpreter/bytecode-decoder.h', + '<(V8_ROOT)/src/interpreter/bytecode-flags.cc', + '<(V8_ROOT)/src/interpreter/bytecode-flags.h', + '<(V8_ROOT)/src/interpreter/bytecode-generator.cc', + '<(V8_ROOT)/src/interpreter/bytecode-generator.h', + '<(V8_ROOT)/src/interpreter/bytecode-jump-table.h', + '<(V8_ROOT)/src/interpreter/bytecode-label.cc', + '<(V8_ROOT)/src/interpreter/bytecode-label.h', + '<(V8_ROOT)/src/interpreter/bytecode-node.cc', + '<(V8_ROOT)/src/interpreter/bytecode-node.h', + '<(V8_ROOT)/src/interpreter/bytecode-operands.cc', + '<(V8_ROOT)/src/interpreter/bytecode-operands.h', + '<(V8_ROOT)/src/interpreter/bytecode-register-allocator.h', + '<(V8_ROOT)/src/interpreter/bytecode-register-optimizer.cc', + '<(V8_ROOT)/src/interpreter/bytecode-register-optimizer.h', + '<(V8_ROOT)/src/interpreter/bytecode-register.cc', + '<(V8_ROOT)/src/interpreter/bytecode-register.h', + '<(V8_ROOT)/src/interpreter/bytecode-source-info.cc', + '<(V8_ROOT)/src/interpreter/bytecode-source-info.h', + '<(V8_ROOT)/src/interpreter/bytecode-traits.h', + '<(V8_ROOT)/src/interpreter/bytecodes.cc', + '<(V8_ROOT)/src/interpreter/bytecodes.h', + '<(V8_ROOT)/src/interpreter/constant-array-builder.cc', + '<(V8_ROOT)/src/interpreter/constant-array-builder.h', + '<(V8_ROOT)/src/interpreter/control-flow-builders.cc', + '<(V8_ROOT)/src/interpreter/control-flow-builders.h', + '<(V8_ROOT)/src/interpreter/handler-table-builder.cc', + '<(V8_ROOT)/src/interpreter/handler-table-builder.h', + '<(V8_ROOT)/src/interpreter/interpreter-generator.h', + '<(V8_ROOT)/src/interpreter/interpreter-intrinsics.cc', + '<(V8_ROOT)/src/interpreter/interpreter-intrinsics.h', + '<(V8_ROOT)/src/interpreter/interpreter.cc', + '<(V8_ROOT)/src/interpreter/interpreter.h', + '<(V8_ROOT)/src/isolate-allocator.cc', + '<(V8_ROOT)/src/isolate-allocator.h', + '<(V8_ROOT)/src/isolate-data.h', + '<(V8_ROOT)/src/isolate-inl.h', + '<(V8_ROOT)/src/isolate.cc', + '<(V8_ROOT)/src/isolate.h', + '<(V8_ROOT)/src/json-parser.cc', + '<(V8_ROOT)/src/json-parser.h', + '<(V8_ROOT)/src/json-stringifier.cc', + '<(V8_ROOT)/src/json-stringifier.h', + '<(V8_ROOT)/src/keys.cc', + '<(V8_ROOT)/src/keys.h', + '<(V8_ROOT)/src/label.h', + '<(V8_ROOT)/src/layout-descriptor-inl.h', + '<(V8_ROOT)/src/layout-descriptor.cc', + '<(V8_ROOT)/src/layout-descriptor.h', + '<(V8_ROOT)/src/locked-queue-inl.h', + '<(V8_ROOT)/src/locked-queue.h', + '<(V8_ROOT)/src/log-inl.h', + '<(V8_ROOT)/src/log-utils.cc', + '<(V8_ROOT)/src/log-utils.h', + '<(V8_ROOT)/src/log.cc', + '<(V8_ROOT)/src/log.h', + '<(V8_ROOT)/src/lookup-cache-inl.h', + '<(V8_ROOT)/src/lookup-cache.cc', + '<(V8_ROOT)/src/lookup-cache.h', + '<(V8_ROOT)/src/lookup-inl.h', + '<(V8_ROOT)/src/lookup.cc', + '<(V8_ROOT)/src/lookup.h', + '<(V8_ROOT)/src/machine-type.cc', + '<(V8_ROOT)/src/machine-type.h', + '<(V8_ROOT)/src/macro-assembler-inl.h', + '<(V8_ROOT)/src/macro-assembler.h', + '<(V8_ROOT)/src/map-updater.cc', + '<(V8_ROOT)/src/map-updater.h', + '<(V8_ROOT)/src/math-random.cc', + '<(V8_ROOT)/src/math-random.h', + '<(V8_ROOT)/src/maybe-handles-inl.h', + '<(V8_ROOT)/src/maybe-handles.h', + '<(V8_ROOT)/src/memcopy.cc', + '<(V8_ROOT)/src/memcopy.h', + '<(V8_ROOT)/src/message-template.h', + '<(V8_ROOT)/src/messages.cc', + '<(V8_ROOT)/src/messages.h', + '<(V8_ROOT)/src/microtask-queue.cc', + '<(V8_ROOT)/src/microtask-queue.h', + '<(V8_ROOT)/src/msan.h', + '<(V8_ROOT)/src/objects-body-descriptors-inl.h', + '<(V8_ROOT)/src/objects-body-descriptors.h', + '<(V8_ROOT)/src/objects-debug.cc', + '<(V8_ROOT)/src/objects-inl.h', + '<(V8_ROOT)/src/objects-printer.cc', + '<(V8_ROOT)/src/objects.cc', + '<(V8_ROOT)/src/objects.h', + '<(V8_ROOT)/src/objects/allocation-site-inl.h', + '<(V8_ROOT)/src/objects/allocation-site.h', + '<(V8_ROOT)/src/objects/api-callbacks-inl.h', + '<(V8_ROOT)/src/objects/api-callbacks.h', + '<(V8_ROOT)/src/objects/arguments-inl.h', + '<(V8_ROOT)/src/objects/arguments.h', + '<(V8_ROOT)/src/objects/bigint.cc', + '<(V8_ROOT)/src/objects/bigint.h', + '<(V8_ROOT)/src/objects/builtin-function-id.h', + '<(V8_ROOT)/src/objects/cell-inl.h', + '<(V8_ROOT)/src/objects/cell.h', + '<(V8_ROOT)/src/objects/code-inl.h', + '<(V8_ROOT)/src/objects/code.cc', + '<(V8_ROOT)/src/objects/code.h', + '<(V8_ROOT)/src/objects/compilation-cache-inl.h', + '<(V8_ROOT)/src/objects/compilation-cache.h', + '<(V8_ROOT)/src/objects/data-handler.h', + '<(V8_ROOT)/src/objects/debug-objects-inl.h', + '<(V8_ROOT)/src/objects/debug-objects.cc', + '<(V8_ROOT)/src/objects/debug-objects.h', + '<(V8_ROOT)/src/objects/descriptor-array-inl.h', + '<(V8_ROOT)/src/objects/descriptor-array.h', + '<(V8_ROOT)/src/objects/dictionary-inl.h', + '<(V8_ROOT)/src/objects/dictionary.h', + '<(V8_ROOT)/src/objects/embedder-data-array-inl.h', + '<(V8_ROOT)/src/objects/embedder-data-array.cc', + '<(V8_ROOT)/src/objects/embedder-data-array.h', + '<(V8_ROOT)/src/objects/embedder-data-slot-inl.h', + '<(V8_ROOT)/src/objects/embedder-data-slot.h', + '<(V8_ROOT)/src/objects/feedback-cell-inl.h', + '<(V8_ROOT)/src/objects/feedback-cell.h', + '<(V8_ROOT)/src/objects/fixed-array-inl.h', + '<(V8_ROOT)/src/objects/fixed-array.h', + '<(V8_ROOT)/src/objects/frame-array-inl.h', + '<(V8_ROOT)/src/objects/frame-array.h', + '<(V8_ROOT)/src/objects/hash-table-inl.h', + '<(V8_ROOT)/src/objects/hash-table.h', + '<(V8_ROOT)/src/objects/heap-number-inl.h', + '<(V8_ROOT)/src/objects/heap-number.h', + '<(V8_ROOT)/src/objects/heap-object-inl.h', + '<(V8_ROOT)/src/objects/heap-object.h', + '<(V8_ROOT)/src/objects/instance-type-inl.h', + '<(V8_ROOT)/src/objects/instance-type.h', + '<(V8_ROOT)/src/objects/intl-objects.cc', + '<(V8_ROOT)/src/objects/intl-objects.h', + '<(V8_ROOT)/src/objects/js-array-buffer-inl.h', + '<(V8_ROOT)/src/objects/js-array-buffer.cc', + '<(V8_ROOT)/src/objects/js-array-buffer.h', + '<(V8_ROOT)/src/objects/js-array-inl.h', + '<(V8_ROOT)/src/objects/js-array.h', + '<(V8_ROOT)/src/objects/js-break-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-break-iterator.cc', + '<(V8_ROOT)/src/objects/js-break-iterator.h', + '<(V8_ROOT)/src/objects/js-collator-inl.h', + '<(V8_ROOT)/src/objects/js-collator.cc', + '<(V8_ROOT)/src/objects/js-collator.h', + '<(V8_ROOT)/src/objects/js-collection-inl.h', + '<(V8_ROOT)/src/objects/js-collection.h', + '<(V8_ROOT)/src/objects/js-date-time-format-inl.h', + '<(V8_ROOT)/src/objects/js-date-time-format.cc', + '<(V8_ROOT)/src/objects/js-date-time-format.h', + '<(V8_ROOT)/src/objects/js-generator-inl.h', + '<(V8_ROOT)/src/objects/js-generator.h', + '<(V8_ROOT)/src/objects/js-list-format-inl.h', + '<(V8_ROOT)/src/objects/js-list-format.cc', + '<(V8_ROOT)/src/objects/js-list-format.h', + '<(V8_ROOT)/src/objects/js-locale-inl.h', + '<(V8_ROOT)/src/objects/js-locale.cc', + '<(V8_ROOT)/src/objects/js-locale.h', + '<(V8_ROOT)/src/objects/js-number-format-inl.h', + '<(V8_ROOT)/src/objects/js-number-format.cc', + '<(V8_ROOT)/src/objects/js-number-format.h', + '<(V8_ROOT)/src/objects/js-objects-inl.h', + '<(V8_ROOT)/src/objects/js-objects.cc', + '<(V8_ROOT)/src/objects/js-objects.h', + '<(V8_ROOT)/src/objects/js-plural-rules-inl.h', + '<(V8_ROOT)/src/objects/js-plural-rules.cc', + '<(V8_ROOT)/src/objects/js-plural-rules.h', + '<(V8_ROOT)/src/objects/js-promise-inl.h', + '<(V8_ROOT)/src/objects/js-promise.h', + '<(V8_ROOT)/src/objects/js-proxy-inl.h', + '<(V8_ROOT)/src/objects/js-proxy.h', + '<(V8_ROOT)/src/objects/js-regexp-inl.h', + '<(V8_ROOT)/src/objects/js-regexp-string-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-regexp-string-iterator.h', + '<(V8_ROOT)/src/objects/js-regexp.h', + '<(V8_ROOT)/src/objects/js-relative-time-format-inl.h', + '<(V8_ROOT)/src/objects/js-relative-time-format.cc', + '<(V8_ROOT)/src/objects/js-relative-time-format.h', + '<(V8_ROOT)/src/objects/js-segment-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-segment-iterator.cc', + '<(V8_ROOT)/src/objects/js-segment-iterator.h', + '<(V8_ROOT)/src/objects/js-segmenter-inl.h', + '<(V8_ROOT)/src/objects/js-segmenter.cc', + '<(V8_ROOT)/src/objects/js-segmenter.h', + '<(V8_ROOT)/src/objects/js-weak-refs-inl.h', + '<(V8_ROOT)/src/objects/js-weak-refs.h', + '<(V8_ROOT)/src/objects/literal-objects-inl.h', + '<(V8_ROOT)/src/objects/literal-objects.cc', + '<(V8_ROOT)/src/objects/literal-objects.h', + '<(V8_ROOT)/src/objects/managed.cc', + '<(V8_ROOT)/src/objects/managed.h', + '<(V8_ROOT)/src/objects/map-inl.h', + '<(V8_ROOT)/src/objects/map.h', + '<(V8_ROOT)/src/objects/map.cc', + '<(V8_ROOT)/src/objects/maybe-object-inl.h', + '<(V8_ROOT)/src/objects/maybe-object.h', + '<(V8_ROOT)/src/objects/microtask-inl.h', + '<(V8_ROOT)/src/objects/microtask.h', + '<(V8_ROOT)/src/objects/module-inl.h', + '<(V8_ROOT)/src/objects/module.cc', + '<(V8_ROOT)/src/objects/module.h', + '<(V8_ROOT)/src/objects/name-inl.h', + '<(V8_ROOT)/src/objects/name.h', + '<(V8_ROOT)/src/objects/object-macros-undef.h', + '<(V8_ROOT)/src/objects/object-macros.h', + '<(V8_ROOT)/src/objects/oddball-inl.h', + '<(V8_ROOT)/src/objects/oddball.h', + '<(V8_ROOT)/src/objects/ordered-hash-table-inl.h', + '<(V8_ROOT)/src/objects/ordered-hash-table.cc', + '<(V8_ROOT)/src/objects/ordered-hash-table.h', + '<(V8_ROOT)/src/objects/promise-inl.h', + '<(V8_ROOT)/src/objects/promise.h', + '<(V8_ROOT)/src/objects/property-array-inl.h', + '<(V8_ROOT)/src/objects/property-array.h', + '<(V8_ROOT)/src/objects/property-cell-inl.h', + '<(V8_ROOT)/src/objects/property-cell.h', + '<(V8_ROOT)/src/objects/property-descriptor-object-inl.h', + '<(V8_ROOT)/src/objects/property-descriptor-object.h', + '<(V8_ROOT)/src/objects/prototype-info-inl.h', + '<(V8_ROOT)/src/objects/prototype-info.h', + '<(V8_ROOT)/src/objects/regexp-match-info.h', + '<(V8_ROOT)/src/objects/scope-info.cc', + '<(V8_ROOT)/src/objects/scope-info.h', + '<(V8_ROOT)/src/objects/script-inl.h', + '<(V8_ROOT)/src/objects/script.h', + '<(V8_ROOT)/src/objects/shared-function-info-inl.h', + '<(V8_ROOT)/src/objects/shared-function-info.h', + '<(V8_ROOT)/src/objects/slots-atomic-inl.h', + '<(V8_ROOT)/src/objects/slots-inl.h', + '<(V8_ROOT)/src/objects/slots.h', + '<(V8_ROOT)/src/objects/stack-frame-info-inl.h', + '<(V8_ROOT)/src/objects/stack-frame-info.cc', + '<(V8_ROOT)/src/objects/stack-frame-info.h', + '<(V8_ROOT)/src/objects/string-comparator.cc', + '<(V8_ROOT)/src/objects/string-comparator.h', + '<(V8_ROOT)/src/objects/string-inl.h', + '<(V8_ROOT)/src/objects/string-table-inl.h', + '<(V8_ROOT)/src/objects/string-table.h', + '<(V8_ROOT)/src/objects/string.cc', + '<(V8_ROOT)/src/objects/string.h', + '<(V8_ROOT)/src/objects/struct-inl.h', + '<(V8_ROOT)/src/objects/struct.h', + '<(V8_ROOT)/src/objects/template-objects-inl.h', + '<(V8_ROOT)/src/objects/template-objects.cc', + '<(V8_ROOT)/src/objects/template-objects.h', + '<(V8_ROOT)/src/objects/templates-inl.h', + '<(V8_ROOT)/src/objects/templates.h', + '<(V8_ROOT)/src/optimized-compilation-info.cc', + '<(V8_ROOT)/src/optimized-compilation-info.h', + '<(V8_ROOT)/src/ostreams.cc', + '<(V8_ROOT)/src/ostreams.h', + '<(V8_ROOT)/src/parsing/expression-scope-reparenter.cc', + '<(V8_ROOT)/src/parsing/expression-scope-reparenter.h', + '<(V8_ROOT)/src/parsing/expression-scope.h', + '<(V8_ROOT)/src/parsing/func-name-inferrer.cc', + '<(V8_ROOT)/src/parsing/func-name-inferrer.h', + '<(V8_ROOT)/src/parsing/parse-info.cc', + '<(V8_ROOT)/src/parsing/parse-info.h', + '<(V8_ROOT)/src/parsing/parser-base.h', + '<(V8_ROOT)/src/parsing/parser.cc', + '<(V8_ROOT)/src/parsing/parser.h', + '<(V8_ROOT)/src/parsing/parsing.cc', + '<(V8_ROOT)/src/parsing/parsing.h', + '<(V8_ROOT)/src/parsing/preparse-data-impl.h', + '<(V8_ROOT)/src/parsing/preparse-data.cc', + '<(V8_ROOT)/src/parsing/preparse-data.h', + '<(V8_ROOT)/src/parsing/preparser-logger.h', + '<(V8_ROOT)/src/parsing/preparser.cc', + '<(V8_ROOT)/src/parsing/preparser.h', + '<(V8_ROOT)/src/parsing/rewriter.cc', + '<(V8_ROOT)/src/parsing/rewriter.h', + '<(V8_ROOT)/src/parsing/scanner-character-streams.cc', + '<(V8_ROOT)/src/parsing/scanner-character-streams.h', + '<(V8_ROOT)/src/parsing/scanner.cc', + '<(V8_ROOT)/src/parsing/scanner.h', + '<(V8_ROOT)/src/parsing/token.cc', + '<(V8_ROOT)/src/parsing/token.h', + '<(V8_ROOT)/src/pending-compilation-error-handler.cc', + '<(V8_ROOT)/src/pending-compilation-error-handler.h', + '<(V8_ROOT)/src/perf-jit.cc', + '<(V8_ROOT)/src/perf-jit.h', + '<(V8_ROOT)/src/pointer-with-payload.h', + '<(V8_ROOT)/src/profiler/allocation-tracker.cc', + '<(V8_ROOT)/src/profiler/allocation-tracker.h', + '<(V8_ROOT)/src/profiler/circular-queue-inl.h', + '<(V8_ROOT)/src/profiler/circular-queue.h', + '<(V8_ROOT)/src/profiler/cpu-profiler-inl.h', + '<(V8_ROOT)/src/profiler/cpu-profiler.cc', + '<(V8_ROOT)/src/profiler/cpu-profiler.h', + '<(V8_ROOT)/src/profiler/heap-profiler.cc', + '<(V8_ROOT)/src/profiler/heap-profiler.h', + '<(V8_ROOT)/src/profiler/heap-snapshot-generator-inl.h', + '<(V8_ROOT)/src/profiler/heap-snapshot-generator.cc', + '<(V8_ROOT)/src/profiler/heap-snapshot-generator.h', + '<(V8_ROOT)/src/profiler/profile-generator-inl.h', + '<(V8_ROOT)/src/profiler/profile-generator.cc', + '<(V8_ROOT)/src/profiler/profile-generator.h', + '<(V8_ROOT)/src/profiler/profiler-listener.cc', + '<(V8_ROOT)/src/profiler/profiler-listener.h', + '<(V8_ROOT)/src/profiler/sampling-heap-profiler.cc', + '<(V8_ROOT)/src/profiler/sampling-heap-profiler.h', + '<(V8_ROOT)/src/profiler/strings-storage.cc', + '<(V8_ROOT)/src/profiler/strings-storage.h', + '<(V8_ROOT)/src/profiler/tick-sample.cc', + '<(V8_ROOT)/src/profiler/tick-sample.h', + '<(V8_ROOT)/src/profiler/tracing-cpu-profiler.cc', + '<(V8_ROOT)/src/profiler/tracing-cpu-profiler.h', + '<(V8_ROOT)/src/profiler/unbound-queue-inl.h', + '<(V8_ROOT)/src/profiler/unbound-queue.h', + '<(V8_ROOT)/src/property-descriptor.cc', + '<(V8_ROOT)/src/property-descriptor.h', + '<(V8_ROOT)/src/property-details.h', + '<(V8_ROOT)/src/property.cc', + '<(V8_ROOT)/src/property.h', + '<(V8_ROOT)/src/prototype.h', + '<(V8_ROOT)/src/ptr-compr-inl.h', + '<(V8_ROOT)/src/ptr-compr.h', + '<(V8_ROOT)/src/regexp/bytecodes-irregexp.h', + '<(V8_ROOT)/src/regexp/interpreter-irregexp.cc', + '<(V8_ROOT)/src/regexp/interpreter-irregexp.h', + '<(V8_ROOT)/src/regexp/jsregexp-inl.h', + '<(V8_ROOT)/src/regexp/jsregexp.cc', + '<(V8_ROOT)/src/regexp/jsregexp.h', + '<(V8_ROOT)/src/regexp/property-sequences.cc', + '<(V8_ROOT)/src/regexp/property-sequences.h', + '<(V8_ROOT)/src/regexp/regexp-ast.cc', + '<(V8_ROOT)/src/regexp/regexp-ast.h', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler-irregexp-inl.h', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler-irregexp.cc', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler-irregexp.h', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler-tracer.cc', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler-tracer.h', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler.cc', + '<(V8_ROOT)/src/regexp/regexp-macro-assembler.h', + '<(V8_ROOT)/src/regexp/regexp-parser.cc', + '<(V8_ROOT)/src/regexp/regexp-parser.h', + '<(V8_ROOT)/src/regexp/regexp-stack.cc', + '<(V8_ROOT)/src/regexp/regexp-stack.h', + '<(V8_ROOT)/src/regexp/regexp-utils.cc', + '<(V8_ROOT)/src/regexp/regexp-utils.h', + '<(V8_ROOT)/src/register-arch.h', + '<(V8_ROOT)/src/register-configuration.cc', + '<(V8_ROOT)/src/register-configuration.h', + '<(V8_ROOT)/src/register.h', + '<(V8_ROOT)/src/reglist.h', + '<(V8_ROOT)/src/reloc-info.cc', + '<(V8_ROOT)/src/reloc-info.h', + '<(V8_ROOT)/src/roots-inl.h', + '<(V8_ROOT)/src/roots.cc', + '<(V8_ROOT)/src/roots.h', + '<(V8_ROOT)/src/runtime-profiler.cc', + '<(V8_ROOT)/src/runtime-profiler.h', + '<(V8_ROOT)/src/runtime/runtime-array.cc', + '<(V8_ROOT)/src/runtime/runtime-atomics.cc', + '<(V8_ROOT)/src/runtime/runtime-bigint.cc', + '<(V8_ROOT)/src/runtime/runtime-classes.cc', + '<(V8_ROOT)/src/runtime/runtime-collections.cc', + '<(V8_ROOT)/src/runtime/runtime-compiler.cc', + '<(V8_ROOT)/src/runtime/runtime-date.cc', + '<(V8_ROOT)/src/runtime/runtime-debug.cc', + '<(V8_ROOT)/src/runtime/runtime-forin.cc', + '<(V8_ROOT)/src/runtime/runtime-function.cc', + '<(V8_ROOT)/src/runtime/runtime-futex.cc', + '<(V8_ROOT)/src/runtime/runtime-generator.cc', + '<(V8_ROOT)/src/runtime/runtime-internal.cc', + '<(V8_ROOT)/src/runtime/runtime-interpreter.cc', + '<(V8_ROOT)/src/runtime/runtime-intl.cc', + '<(V8_ROOT)/src/runtime/runtime-literals.cc', + '<(V8_ROOT)/src/runtime/runtime-module.cc', + '<(V8_ROOT)/src/runtime/runtime-numbers.cc', + '<(V8_ROOT)/src/runtime/runtime-object.cc', + '<(V8_ROOT)/src/runtime/runtime-operators.cc', + '<(V8_ROOT)/src/runtime/runtime-promise.cc', + '<(V8_ROOT)/src/runtime/runtime-proxy.cc', + '<(V8_ROOT)/src/runtime/runtime-regexp.cc', + '<(V8_ROOT)/src/runtime/runtime-scopes.cc', + '<(V8_ROOT)/src/runtime/runtime-strings.cc', + '<(V8_ROOT)/src/runtime/runtime-symbol.cc', + '<(V8_ROOT)/src/runtime/runtime-test.cc', + '<(V8_ROOT)/src/runtime/runtime-typedarray.cc', + '<(V8_ROOT)/src/runtime/runtime-utils.h', + '<(V8_ROOT)/src/runtime/runtime-wasm.cc', + '<(V8_ROOT)/src/runtime/runtime-weak-refs.cc', + '<(V8_ROOT)/src/runtime/runtime.cc', + '<(V8_ROOT)/src/runtime/runtime.h', + '<(V8_ROOT)/src/safepoint-table.cc', + '<(V8_ROOT)/src/safepoint-table.h', + '<(V8_ROOT)/src/setup-isolate.h', + '<(V8_ROOT)/src/signature.h', + '<(V8_ROOT)/src/simulator-base.cc', + '<(V8_ROOT)/src/simulator-base.h', + '<(V8_ROOT)/src/simulator.h', + '<(V8_ROOT)/src/snapshot/code-serializer.cc', + '<(V8_ROOT)/src/snapshot/code-serializer.h', + '<(V8_ROOT)/src/snapshot/deserializer-allocator.cc', + '<(V8_ROOT)/src/snapshot/deserializer-allocator.h', + '<(V8_ROOT)/src/snapshot/deserializer.cc', + '<(V8_ROOT)/src/snapshot/deserializer.h', + '<(V8_ROOT)/src/snapshot/embedded-data.cc', + '<(V8_ROOT)/src/snapshot/embedded-data.h', + '<(V8_ROOT)/src/snapshot/natives-common.cc', + '<(V8_ROOT)/src/snapshot/natives.h', + '<(V8_ROOT)/src/snapshot/object-deserializer.cc', + '<(V8_ROOT)/src/snapshot/object-deserializer.h', + '<(V8_ROOT)/src/snapshot/partial-deserializer.cc', + '<(V8_ROOT)/src/snapshot/partial-deserializer.h', + '<(V8_ROOT)/src/snapshot/partial-serializer.cc', + '<(V8_ROOT)/src/snapshot/partial-serializer.h', + '<(V8_ROOT)/src/snapshot/read-only-deserializer.cc', + '<(V8_ROOT)/src/snapshot/read-only-deserializer.h', + '<(V8_ROOT)/src/snapshot/read-only-serializer.cc', + '<(V8_ROOT)/src/snapshot/read-only-serializer.h', + '<(V8_ROOT)/src/snapshot/references.h', + '<(V8_ROOT)/src/snapshot/roots-serializer.cc', + '<(V8_ROOT)/src/snapshot/roots-serializer.h', + '<(V8_ROOT)/src/snapshot/serializer-allocator.cc', + '<(V8_ROOT)/src/snapshot/serializer-allocator.h', + '<(V8_ROOT)/src/snapshot/serializer-common.cc', + '<(V8_ROOT)/src/snapshot/serializer-common.h', + '<(V8_ROOT)/src/snapshot/serializer.cc', + '<(V8_ROOT)/src/snapshot/serializer.h', + '<(V8_ROOT)/src/snapshot/snapshot-common.cc', + '<(V8_ROOT)/src/snapshot/snapshot-source-sink.cc', + '<(V8_ROOT)/src/snapshot/snapshot-source-sink.h', + '<(V8_ROOT)/src/snapshot/snapshot.h', + '<(V8_ROOT)/src/snapshot/startup-deserializer.cc', + '<(V8_ROOT)/src/snapshot/startup-deserializer.h', + '<(V8_ROOT)/src/snapshot/startup-serializer.cc', + '<(V8_ROOT)/src/snapshot/startup-serializer.h', + '<(V8_ROOT)/src/source-position-table.cc', + '<(V8_ROOT)/src/source-position-table.h', + '<(V8_ROOT)/src/source-position.cc', + '<(V8_ROOT)/src/source-position.h', + '<(V8_ROOT)/src/splay-tree-inl.h', + '<(V8_ROOT)/src/splay-tree.h', + '<(V8_ROOT)/src/startup-data-util.cc', + '<(V8_ROOT)/src/startup-data-util.h', + '<(V8_ROOT)/src/string-builder-inl.h', + '<(V8_ROOT)/src/string-builder.cc', + '<(V8_ROOT)/src/string-case.cc', + '<(V8_ROOT)/src/string-case.h', + '<(V8_ROOT)/src/string-constants.cc', + '<(V8_ROOT)/src/string-constants.h', + '<(V8_ROOT)/src/string-hasher-inl.h', + '<(V8_ROOT)/src/string-hasher.h', + '<(V8_ROOT)/src/string-search.h', + '<(V8_ROOT)/src/string-stream.cc', + '<(V8_ROOT)/src/string-stream.h', + '<(V8_ROOT)/src/strtod.cc', + '<(V8_ROOT)/src/strtod.h', + '<(V8_ROOT)/src/task-utils.cc', + '<(V8_ROOT)/src/task-utils.h', + '<(V8_ROOT)/src/third_party/siphash/halfsiphash.cc', + '<(V8_ROOT)/src/third_party/siphash/halfsiphash.h', + '<(V8_ROOT)/src/third_party/utf8-decoder/utf8-decoder.h', + '<(V8_ROOT)/src/thread-id.cc', + '<(V8_ROOT)/src/thread-id.h', + '<(V8_ROOT)/src/thread-local-top.cc', + '<(V8_ROOT)/src/thread-local-top.h', + '<(V8_ROOT)/src/tracing/trace-event.cc', + '<(V8_ROOT)/src/tracing/trace-event.h', + '<(V8_ROOT)/src/tracing/traced-value.cc', + '<(V8_ROOT)/src/tracing/traced-value.h', + '<(V8_ROOT)/src/tracing/tracing-category-observer.cc', + '<(V8_ROOT)/src/tracing/tracing-category-observer.h', + '<(V8_ROOT)/src/transitions-inl.h', + '<(V8_ROOT)/src/transitions.cc', + '<(V8_ROOT)/src/transitions.h', + '<(V8_ROOT)/src/trap-handler/handler-inside.cc', + '<(V8_ROOT)/src/trap-handler/handler-outside.cc', + '<(V8_ROOT)/src/trap-handler/handler-shared.cc', + '<(V8_ROOT)/src/trap-handler/trap-handler-internal.h', + '<(V8_ROOT)/src/trap-handler/trap-handler.h', + '<(V8_ROOT)/src/turbo-assembler.cc', + '<(V8_ROOT)/src/turbo-assembler.h', + '<(V8_ROOT)/src/type-hints.cc', + '<(V8_ROOT)/src/type-hints.h', + '<(V8_ROOT)/src/unicode-cache.h', + '<(V8_ROOT)/src/unicode-decoder.cc', + '<(V8_ROOT)/src/unicode-decoder.h', + '<(V8_ROOT)/src/unicode-inl.h', + '<(V8_ROOT)/src/unicode.cc', + '<(V8_ROOT)/src/unicode.h', + '<(V8_ROOT)/src/unoptimized-compilation-info.cc', + '<(V8_ROOT)/src/unoptimized-compilation-info.h', + '<(V8_ROOT)/src/unwinder.cc', + '<(V8_ROOT)/src/uri.cc', + '<(V8_ROOT)/src/uri.h', + '<(V8_ROOT)/src/utils-inl.h', + '<(V8_ROOT)/src/utils.cc', + '<(V8_ROOT)/src/utils.h', + '<(V8_ROOT)/src/v8.cc', + '<(V8_ROOT)/src/v8.h', + '<(V8_ROOT)/src/v8memory.h', + '<(V8_ROOT)/src/v8threads.cc', + '<(V8_ROOT)/src/v8threads.h', + '<(V8_ROOT)/src/value-serializer.cc', + '<(V8_ROOT)/src/value-serializer.h', + '<(V8_ROOT)/src/vector-slot-pair.cc', + '<(V8_ROOT)/src/vector-slot-pair.h', + '<(V8_ROOT)/src/vector.h', + '<(V8_ROOT)/src/version.cc', + '<(V8_ROOT)/src/version.h', + '<(V8_ROOT)/src/visitors.cc', + '<(V8_ROOT)/src/visitors.h', + '<(V8_ROOT)/src/vm-state-inl.h', + '<(V8_ROOT)/src/vm-state.h', + '<(V8_ROOT)/src/wasm/baseline/liftoff-assembler-defs.h', + '<(V8_ROOT)/src/wasm/baseline/liftoff-assembler.cc', + '<(V8_ROOT)/src/wasm/baseline/liftoff-assembler.h', + '<(V8_ROOT)/src/wasm/baseline/liftoff-compiler.cc', + '<(V8_ROOT)/src/wasm/baseline/liftoff-compiler.h', + '<(V8_ROOT)/src/wasm/baseline/liftoff-register.h', + '<(V8_ROOT)/src/wasm/compilation-environment.h', + '<(V8_ROOT)/src/wasm/decoder.h', + '<(V8_ROOT)/src/wasm/function-body-decoder-impl.h', + '<(V8_ROOT)/src/wasm/function-body-decoder.cc', + '<(V8_ROOT)/src/wasm/function-body-decoder.h', + '<(V8_ROOT)/src/wasm/function-compiler.cc', + '<(V8_ROOT)/src/wasm/function-compiler.h', + '<(V8_ROOT)/src/wasm/graph-builder-interface.cc', + '<(V8_ROOT)/src/wasm/graph-builder-interface.h', + '<(V8_ROOT)/src/wasm/js-to-wasm-wrapper-cache-inl.h', + '<(V8_ROOT)/src/wasm/jump-table-assembler.cc', + '<(V8_ROOT)/src/wasm/jump-table-assembler.h', + '<(V8_ROOT)/src/wasm/leb-helper.h', + '<(V8_ROOT)/src/wasm/local-decl-encoder.cc', + '<(V8_ROOT)/src/wasm/local-decl-encoder.h', + '<(V8_ROOT)/src/wasm/memory-tracing.cc', + '<(V8_ROOT)/src/wasm/memory-tracing.h', + '<(V8_ROOT)/src/wasm/module-compiler.cc', + '<(V8_ROOT)/src/wasm/module-compiler.h', + '<(V8_ROOT)/src/wasm/module-decoder.cc', + '<(V8_ROOT)/src/wasm/module-decoder.h', + '<(V8_ROOT)/src/wasm/module-instantiate.cc', + '<(V8_ROOT)/src/wasm/module-instantiate.h', + '<(V8_ROOT)/src/wasm/object-access.h', + '<(V8_ROOT)/src/wasm/signature-map.cc', + '<(V8_ROOT)/src/wasm/signature-map.h', + '<(V8_ROOT)/src/wasm/streaming-decoder.cc', + '<(V8_ROOT)/src/wasm/streaming-decoder.h', + '<(V8_ROOT)/src/wasm/value-type.h', + '<(V8_ROOT)/src/wasm/wasm-code-manager.cc', + '<(V8_ROOT)/src/wasm/wasm-code-manager.h', + '<(V8_ROOT)/src/wasm/wasm-constants.h', + '<(V8_ROOT)/src/wasm/wasm-debug.cc', + '<(V8_ROOT)/src/wasm/wasm-engine.cc', + '<(V8_ROOT)/src/wasm/wasm-engine.h', + '<(V8_ROOT)/src/wasm/wasm-external-refs.cc', + '<(V8_ROOT)/src/wasm/wasm-external-refs.h', + '<(V8_ROOT)/src/wasm/wasm-feature-flags.h', + '<(V8_ROOT)/src/wasm/wasm-features.cc', + '<(V8_ROOT)/src/wasm/wasm-features.h', + '<(V8_ROOT)/src/wasm/wasm-import-wrapper-cache-inl.h', + '<(V8_ROOT)/src/wasm/wasm-interpreter.cc', + '<(V8_ROOT)/src/wasm/wasm-interpreter.h', + '<(V8_ROOT)/src/wasm/wasm-js.cc', + '<(V8_ROOT)/src/wasm/wasm-js.h', + '<(V8_ROOT)/src/wasm/wasm-limits.h', + '<(V8_ROOT)/src/wasm/wasm-linkage.h', + '<(V8_ROOT)/src/wasm/wasm-memory.cc', + '<(V8_ROOT)/src/wasm/wasm-memory.h', + '<(V8_ROOT)/src/wasm/wasm-module-builder.cc', + '<(V8_ROOT)/src/wasm/wasm-module-builder.h', + '<(V8_ROOT)/src/wasm/wasm-module.cc', + '<(V8_ROOT)/src/wasm/wasm-module.h', + '<(V8_ROOT)/src/wasm/wasm-objects-inl.h', + '<(V8_ROOT)/src/wasm/wasm-objects.cc', + '<(V8_ROOT)/src/wasm/wasm-objects.h', + '<(V8_ROOT)/src/wasm/wasm-opcodes.cc', + '<(V8_ROOT)/src/wasm/wasm-opcodes.h', + '<(V8_ROOT)/src/wasm/wasm-result.cc', + '<(V8_ROOT)/src/wasm/wasm-result.h', + '<(V8_ROOT)/src/wasm/wasm-serialization.cc', + '<(V8_ROOT)/src/wasm/wasm-serialization.h', + '<(V8_ROOT)/src/wasm/wasm-text.cc', + '<(V8_ROOT)/src/wasm/wasm-text.h', + '<(V8_ROOT)/src/wasm/wasm-tier.h', + '<(V8_ROOT)/src/wasm/wasm-value.h', + '<(V8_ROOT)/src/zone/accounting-allocator.cc', + '<(V8_ROOT)/src/zone/accounting-allocator.h', + '<(V8_ROOT)/src/zone/zone-allocator.h', + '<(V8_ROOT)/src/zone/zone-chunk-list.h', + '<(V8_ROOT)/src/zone/zone-containers.h', + '<(V8_ROOT)/src/zone/zone-handle-set.h', + '<(V8_ROOT)/src/zone/zone-list-inl.h', + '<(V8_ROOT)/src/zone/zone-segment.cc', + '<(V8_ROOT)/src/zone/zone-segment.h', + '<(V8_ROOT)/src/zone/zone-splay-tree.h', + '<(V8_ROOT)/src/zone/zone.cc', + '<(V8_ROOT)/src/zone/zone.h', + '<(generate_bytecode_builtins_list_output)', + '<@(torque_generated_pure_headers)', + '<@(inspector_all_sources)', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_target_arch=="ia32"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/ia32/code-generator-ia32.cc', + '<(V8_ROOT)/src/compiler/backend/ia32/instruction-codes-ia32.h', + '<(V8_ROOT)/src/compiler/backend/ia32/instruction-scheduler-ia32.cc', + '<(V8_ROOT)/src/compiler/backend/ia32/instruction-selector-ia32.cc', + '<(V8_ROOT)/src/debug/ia32/debug-ia32.cc', + '<(V8_ROOT)/src/ia32/assembler-ia32-inl.h', + '<(V8_ROOT)/src/ia32/assembler-ia32.cc', + '<(V8_ROOT)/src/ia32/assembler-ia32.h', + '<(V8_ROOT)/src/ia32/constants-ia32.h', + '<(V8_ROOT)/src/ia32/cpu-ia32.cc', + '<(V8_ROOT)/src/ia32/deoptimizer-ia32.cc', + '<(V8_ROOT)/src/ia32/disasm-ia32.cc', + '<(V8_ROOT)/src/ia32/frame-constants-ia32.cc', + '<(V8_ROOT)/src/ia32/frame-constants-ia32.h', + '<(V8_ROOT)/src/ia32/interface-descriptors-ia32.cc', + '<(V8_ROOT)/src/ia32/macro-assembler-ia32.cc', + '<(V8_ROOT)/src/ia32/macro-assembler-ia32.h', + '<(V8_ROOT)/src/ia32/register-ia32.h', + '<(V8_ROOT)/src/ia32/sse-instr.h', + '<(V8_ROOT)/src/regexp/ia32/regexp-macro-assembler-ia32.cc', + '<(V8_ROOT)/src/regexp/ia32/regexp-macro-assembler-ia32.h', + '<(V8_ROOT)/src/wasm/baseline/ia32/liftoff-assembler-ia32.h', + ], + }], + ['v8_target_arch=="x64"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/x64/code-generator-x64.cc', + '<(V8_ROOT)/src/compiler/backend/x64/instruction-codes-x64.h', + '<(V8_ROOT)/src/compiler/backend/x64/instruction-scheduler-x64.cc', + '<(V8_ROOT)/src/compiler/backend/x64/instruction-selector-x64.cc', + '<(V8_ROOT)/src/compiler/backend/x64/unwinding-info-writer-x64.cc', + '<(V8_ROOT)/src/compiler/backend/x64/unwinding-info-writer-x64.h', + '<(V8_ROOT)/src/debug/x64/debug-x64.cc', + '<(V8_ROOT)/src/regexp/x64/regexp-macro-assembler-x64.cc', + '<(V8_ROOT)/src/regexp/x64/regexp-macro-assembler-x64.h', + '<(V8_ROOT)/src/third_party/valgrind/valgrind.h', + '<(V8_ROOT)/src/wasm/baseline/x64/liftoff-assembler-x64.h', + '<(V8_ROOT)/src/x64/assembler-x64-inl.h', + '<(V8_ROOT)/src/x64/assembler-x64.cc', + '<(V8_ROOT)/src/x64/assembler-x64.h', + '<(V8_ROOT)/src/x64/constants-x64.h', + '<(V8_ROOT)/src/x64/cpu-x64.cc', + '<(V8_ROOT)/src/x64/deoptimizer-x64.cc', + '<(V8_ROOT)/src/x64/disasm-x64.cc', + '<(V8_ROOT)/src/x64/eh-frame-x64.cc', + '<(V8_ROOT)/src/x64/frame-constants-x64.cc', + '<(V8_ROOT)/src/x64/frame-constants-x64.h', + '<(V8_ROOT)/src/x64/interface-descriptors-x64.cc', + '<(V8_ROOT)/src/x64/macro-assembler-x64.cc', + '<(V8_ROOT)/src/x64/macro-assembler-x64.h', + '<(V8_ROOT)/src/x64/register-x64.h', + '<(V8_ROOT)/src/x64/sse-instr.h', + ], + }], + ['v8_target_arch=="x64" and (OS=="linux" or OS=="mac")', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.cc', + '<(V8_ROOT)/src/trap-handler/handler-inside-posix.h', + '<(V8_ROOT)/src/trap-handler/handler-outside-posix.cc', + ], + }], + ['v8_target_arch=="x64" and OS=="win"', { + 'sources': [ + '<(V8_ROOT)/src/trap-handler/handler-inside-win.cc', + '<(V8_ROOT)/src/trap-handler/handler-inside-win.h', + '<(V8_ROOT)/src/trap-handler/handler-outside-win.cc', + ], + }], + ['v8_target_arch=="arm"', { + 'sources': [ + '<(V8_ROOT)/src/arm/assembler-arm-inl.h', + '<(V8_ROOT)/src/arm/assembler-arm.cc', + '<(V8_ROOT)/src/arm/assembler-arm.h', + '<(V8_ROOT)/src/arm/constants-arm.h', + '<(V8_ROOT)/src/arm/constants-arm.cc', + '<(V8_ROOT)/src/arm/cpu-arm.cc', + '<(V8_ROOT)/src/arm/deoptimizer-arm.cc', + '<(V8_ROOT)/src/arm/disasm-arm.cc', + '<(V8_ROOT)/src/arm/eh-frame-arm.cc', + '<(V8_ROOT)/src/arm/frame-constants-arm.cc', + '<(V8_ROOT)/src/arm/frame-constants-arm.h', + '<(V8_ROOT)/src/arm/interface-descriptors-arm.cc', + '<(V8_ROOT)/src/arm/macro-assembler-arm.cc', + '<(V8_ROOT)/src/arm/macro-assembler-arm.h', + '<(V8_ROOT)/src/arm/register-arm.h', + '<(V8_ROOT)/src/arm/simulator-arm.cc', + '<(V8_ROOT)/src/arm/simulator-arm.h', + '<(V8_ROOT)/src/compiler/backend/arm/code-generator-arm.cc', + '<(V8_ROOT)/src/compiler/backend/arm/instruction-codes-arm.h', + '<(V8_ROOT)/src/compiler/backend/arm/instruction-scheduler-arm.cc', + '<(V8_ROOT)/src/compiler/backend/arm/instruction-selector-arm.cc', + '<(V8_ROOT)/src/compiler/backend/arm/unwinding-info-writer-arm.cc', + '<(V8_ROOT)/src/compiler/backend/arm/unwinding-info-writer-arm.h', + '<(V8_ROOT)/src/debug/arm/debug-arm.cc', + '<(V8_ROOT)/src/regexp/arm/regexp-macro-assembler-arm.cc', + '<(V8_ROOT)/src/regexp/arm/regexp-macro-assembler-arm.h', + '<(V8_ROOT)/src/wasm/baseline/arm/liftoff-assembler-arm.h', + ], + }], + ['v8_target_arch=="arm64"', { + 'sources': [ + '<(V8_ROOT)/src/arm64/assembler-arm64-inl.h', + '<(V8_ROOT)/src/arm64/assembler-arm64.cc', + '<(V8_ROOT)/src/arm64/assembler-arm64.h', + '<(V8_ROOT)/src/arm64/constants-arm64.h', + '<(V8_ROOT)/src/arm64/cpu-arm64.cc', + '<(V8_ROOT)/src/arm64/decoder-arm64-inl.h', + '<(V8_ROOT)/src/arm64/decoder-arm64.cc', + '<(V8_ROOT)/src/arm64/decoder-arm64.h', + '<(V8_ROOT)/src/arm64/deoptimizer-arm64.cc', + '<(V8_ROOT)/src/arm64/disasm-arm64.cc', + '<(V8_ROOT)/src/arm64/disasm-arm64.h', + '<(V8_ROOT)/src/arm64/eh-frame-arm64.cc', + '<(V8_ROOT)/src/arm64/frame-constants-arm64.cc', + '<(V8_ROOT)/src/arm64/frame-constants-arm64.h', + '<(V8_ROOT)/src/arm64/instructions-arm64-constants.cc', + '<(V8_ROOT)/src/arm64/instructions-arm64.cc', + '<(V8_ROOT)/src/arm64/instructions-arm64.h', + '<(V8_ROOT)/src/arm64/instrument-arm64.cc', + '<(V8_ROOT)/src/arm64/instrument-arm64.h', + '<(V8_ROOT)/src/arm64/interface-descriptors-arm64.cc', + '<(V8_ROOT)/src/arm64/macro-assembler-arm64-inl.h', + '<(V8_ROOT)/src/arm64/macro-assembler-arm64.cc', + '<(V8_ROOT)/src/arm64/macro-assembler-arm64.h', + '<(V8_ROOT)/src/arm64/register-arm64.cc', + '<(V8_ROOT)/src/arm64/register-arm64.h', + '<(V8_ROOT)/src/arm64/simulator-arm64.cc', + '<(V8_ROOT)/src/arm64/simulator-arm64.h', + '<(V8_ROOT)/src/arm64/simulator-logic-arm64.cc', + '<(V8_ROOT)/src/arm64/utils-arm64.cc', + '<(V8_ROOT)/src/arm64/utils-arm64.h', + '<(V8_ROOT)/src/compiler/backend/arm64/code-generator-arm64.cc', + '<(V8_ROOT)/src/compiler/backend/arm64/instruction-codes-arm64.h', + '<(V8_ROOT)/src/compiler/backend/arm64/instruction-scheduler-arm64.cc', + '<(V8_ROOT)/src/compiler/backend/arm64/instruction-selector-arm64.cc', + '<(V8_ROOT)/src/compiler/backend/arm64/unwinding-info-writer-arm64.cc', + '<(V8_ROOT)/src/compiler/backend/arm64/unwinding-info-writer-arm64.h', + '<(V8_ROOT)/src/debug/arm64/debug-arm64.cc', + '<(V8_ROOT)/src/regexp/arm64/regexp-macro-assembler-arm64.cc', + '<(V8_ROOT)/src/regexp/arm64/regexp-macro-assembler-arm64.h', + '<(V8_ROOT)/src/wasm/baseline/arm64/liftoff-assembler-arm64.h', + ], + }], + ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/mips/code-generator-mips.cc', + '<(V8_ROOT)/src/compiler/backend/mips/instruction-codes-mips.h', + '<(V8_ROOT)/src/compiler/backend/mips/instruction-scheduler-mips.cc', + '<(V8_ROOT)/src/compiler/backend/mips/instruction-selector-mips.cc', + '<(V8_ROOT)/src/debug/mips/debug-mips.cc', + '<(V8_ROOT)/src/mips/assembler-mips-inl.h', + '<(V8_ROOT)/src/mips/assembler-mips.cc', + '<(V8_ROOT)/src/mips/assembler-mips.h', + '<(V8_ROOT)/src/mips/constants-mips.cc', + '<(V8_ROOT)/src/mips/constants-mips.h', + '<(V8_ROOT)/src/mips/cpu-mips.cc', + '<(V8_ROOT)/src/mips/deoptimizer-mips.cc', + '<(V8_ROOT)/src/mips/disasm-mips.cc', + '<(V8_ROOT)/src/mips/frame-constants-mips.cc', + '<(V8_ROOT)/src/mips/frame-constants-mips.h', + '<(V8_ROOT)/src/mips/interface-descriptors-mips.cc', + '<(V8_ROOT)/src/mips/macro-assembler-mips.cc', + '<(V8_ROOT)/src/mips/macro-assembler-mips.h', + '<(V8_ROOT)/src/mips/register-mips.h', + '<(V8_ROOT)/src/mips/simulator-mips.cc', + '<(V8_ROOT)/src/mips/simulator-mips.h', + '<(V8_ROOT)/src/regexp/mips/regexp-macro-assembler-mips.cc', + '<(V8_ROOT)/src/regexp/mips/regexp-macro-assembler-mips.h', + '<(V8_ROOT)/src/wasm/baseline/mips/liftoff-assembler-mips.h', + ], + }], + ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/mips64/code-generator-mips64.cc', + '<(V8_ROOT)/src/compiler/backend/mips64/instruction-codes-mips64.h', + '<(V8_ROOT)/src/compiler/backend/mips64/instruction-scheduler-mips64.cc', + '<(V8_ROOT)/src/compiler/backend/mips64/instruction-selector-mips64.cc', + '<(V8_ROOT)/src/debug/mips64/debug-mips64.cc', + '<(V8_ROOT)/src/mips64/assembler-mips64-inl.h', + '<(V8_ROOT)/src/mips64/assembler-mips64.cc', + '<(V8_ROOT)/src/mips64/assembler-mips64.h', + '<(V8_ROOT)/src/mips64/constants-mips64.cc', + '<(V8_ROOT)/src/mips64/constants-mips64.h', + '<(V8_ROOT)/src/mips64/cpu-mips64.cc', + '<(V8_ROOT)/src/mips64/deoptimizer-mips64.cc', + '<(V8_ROOT)/src/mips64/disasm-mips64.cc', + '<(V8_ROOT)/src/mips64/frame-constants-mips64.cc', + '<(V8_ROOT)/src/mips64/frame-constants-mips64.h', + '<(V8_ROOT)/src/mips64/interface-descriptors-mips64.cc', + '<(V8_ROOT)/src/mips64/macro-assembler-mips64.cc', + '<(V8_ROOT)/src/mips64/macro-assembler-mips64.h', + '<(V8_ROOT)/src/mips64/register-mips64.h', + '<(V8_ROOT)/src/mips64/simulator-mips64.cc', + '<(V8_ROOT)/src/mips64/simulator-mips64.h', + '<(V8_ROOT)/src/regexp/mips64/regexp-macro-assembler-mips64.cc', + '<(V8_ROOT)/src/regexp/mips64/regexp-macro-assembler-mips64.h', + '<(V8_ROOT)/src/wasm/baseline/mips64/liftoff-assembler-mips64.h', + ], + }], + ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/ppc/code-generator-ppc.cc', + '<(V8_ROOT)/src/compiler/backend/ppc/instruction-codes-ppc.h', + '<(V8_ROOT)/src/compiler/backend/ppc/instruction-scheduler-ppc.cc', + '<(V8_ROOT)/src/compiler/backend/ppc/instruction-selector-ppc.cc', + '<(V8_ROOT)/src/debug/ppc/debug-ppc.cc', + '<(V8_ROOT)/src/ppc/assembler-ppc-inl.h', + '<(V8_ROOT)/src/ppc/assembler-ppc.cc', + '<(V8_ROOT)/src/ppc/assembler-ppc.h', + '<(V8_ROOT)/src/ppc/constants-ppc.h', + '<(V8_ROOT)/src/ppc/constants-ppc.cc', + '<(V8_ROOT)/src/ppc/cpu-ppc.cc', + '<(V8_ROOT)/src/ppc/deoptimizer-ppc.cc', + '<(V8_ROOT)/src/ppc/disasm-ppc.cc', + '<(V8_ROOT)/src/ppc/frame-constants-ppc.cc', + '<(V8_ROOT)/src/ppc/frame-constants-ppc.h', + '<(V8_ROOT)/src/ppc/interface-descriptors-ppc.cc', + '<(V8_ROOT)/src/ppc/macro-assembler-ppc.cc', + '<(V8_ROOT)/src/ppc/macro-assembler-ppc.h', + '<(V8_ROOT)/src/ppc/register-ppc.h', + '<(V8_ROOT)/src/ppc/simulator-ppc.cc', + '<(V8_ROOT)/src/ppc/simulator-ppc.h', + '<(V8_ROOT)/src/regexp/ppc/regexp-macro-assembler-ppc.cc', + '<(V8_ROOT)/src/regexp/ppc/regexp-macro-assembler-ppc.h', + '<(V8_ROOT)/src/wasm/baseline/ppc/liftoff-assembler-ppc.h', + ], + }], + ['v8_target_arch=="s390" or v8_target_arch=="s390x"', { + 'sources': [ + '<(V8_ROOT)/src/compiler/backend/s390/code-generator-s390.cc', + '<(V8_ROOT)/src/compiler/backend/s390/instruction-codes-s390.h', + '<(V8_ROOT)/src/compiler/backend/s390/instruction-scheduler-s390.cc', + '<(V8_ROOT)/src/compiler/backend/s390/instruction-selector-s390.cc', + '<(V8_ROOT)/src/debug/s390/debug-s390.cc', + '<(V8_ROOT)/src/regexp/s390/regexp-macro-assembler-s390.cc', + '<(V8_ROOT)/src/regexp/s390/regexp-macro-assembler-s390.h', + '<(V8_ROOT)/src/s390/assembler-s390-inl.h', + '<(V8_ROOT)/src/s390/assembler-s390.cc', + '<(V8_ROOT)/src/s390/assembler-s390.h', + '<(V8_ROOT)/src/s390/constants-s390.cc', + '<(V8_ROOT)/src/s390/constants-s390.h', + '<(V8_ROOT)/src/s390/cpu-s390.cc', + '<(V8_ROOT)/src/s390/deoptimizer-s390.cc', + '<(V8_ROOT)/src/s390/disasm-s390.cc', + '<(V8_ROOT)/src/s390/frame-constants-s390.cc', + '<(V8_ROOT)/src/s390/frame-constants-s390.h', + '<(V8_ROOT)/src/s390/interface-descriptors-s390.cc', + '<(V8_ROOT)/src/s390/macro-assembler-s390.cc', + '<(V8_ROOT)/src/s390/macro-assembler-s390.h', + '<(V8_ROOT)/src/s390/register-s390.h', + '<(V8_ROOT)/src/s390/simulator-s390.cc', + '<(V8_ROOT)/src/s390/simulator-s390.h', + '<(V8_ROOT)/src/wasm/baseline/s390/liftoff-assembler-s390.h', + ], + }], + ['OS=="win"', { + 'msvs_precompiled_header': '<(V8_ROOT)/../../tools/msvs/pch/v8_pch.h', + 'msvs_precompiled_source': '<(V8_ROOT)/../../tools/msvs/pch/v8_pch.cc', + 'sources': [ + '<(_msvs_precompiled_header)', + '<(_msvs_precompiled_source)', + ], + # This will prevent V8's .cc files conflicting with the inspector's + # .cpp files in the same shard. + 'msvs_settings': { + 'VCCLCompilerTool': { + 'ObjectFile':'$(IntDir)%(Extension)\\', + }, + }, + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + }], + ['v8_postmortem_support==1', { + 'dependencies': [ 'postmortem-metadata#target' ], + 'sources': [ + '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', + ], + }], + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ], + 'conditions': [ + ['icu_use_data_file_flag==1', { + 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_FILE'], + }, { # else icu_use_data_file_flag !=1 + 'conditions': [ + ['OS=="win"', { + 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_SHARED'], + }, { + 'defines': ['ICU_UTIL_DATA_IMPL=ICU_UTIL_DATA_STATIC'], + }], + ], + }], + ], + }, { # v8_enable_i18n_support==0 + 'sources!': [ + '<(V8_ROOT)/src/builtins/builtins-intl.cc', + '<(V8_ROOT)/src/char-predicates.cc', + '<(V8_ROOT)/src/objects/intl-objects.cc', + '<(V8_ROOT)/src/objects/intl-objects.h', + '<(V8_ROOT)/src/objects/js-break-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-break-iterator.cc', + '<(V8_ROOT)/src/objects/js-break-iterator.h', + '<(V8_ROOT)/src/objects/js-collator-inl.h', + '<(V8_ROOT)/src/objects/js-collator.cc', + '<(V8_ROOT)/src/objects/js-collator.h', + '<(V8_ROOT)/src/objects/js-date-time-format-inl.h', + '<(V8_ROOT)/src/objects/js-date-time-format.cc', + '<(V8_ROOT)/src/objects/js-date-time-format.h', + '<(V8_ROOT)/src/objects/js-list-format-inl.h', + '<(V8_ROOT)/src/objects/js-list-format.cc', + '<(V8_ROOT)/src/objects/js-list-format.h', + '<(V8_ROOT)/src/objects/js-locale-inl.h', + '<(V8_ROOT)/src/objects/js-locale.cc', + '<(V8_ROOT)/src/objects/js-locale.h', + '<(V8_ROOT)/src/objects/js-number-format-inl.h', + '<(V8_ROOT)/src/objects/js-number-format.cc', + '<(V8_ROOT)/src/objects/js-number-format.h', + '<(V8_ROOT)/src/objects/js-plural-rules-inl.h', + '<(V8_ROOT)/src/objects/js-plural-rules.cc', + '<(V8_ROOT)/src/objects/js-plural-rules.h', + '<(V8_ROOT)/src/objects/js-relative-time-format-inl.h', + '<(V8_ROOT)/src/objects/js-relative-time-format.cc', + '<(V8_ROOT)/src/objects/js-relative-time-format.h', + '<(V8_ROOT)/src/objects/js-segment-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-segment-iterator.cc', + '<(V8_ROOT)/src/objects/js-segment-iterator.h', + '<(V8_ROOT)/src/objects/js-segmenter-inl.h', + '<(V8_ROOT)/src/objects/js-segmenter.cc', + '<(V8_ROOT)/src/objects/js-segmenter.h', + '<(V8_ROOT)/src/runtime/runtime-intl.cc', + ], + }], + ['OS=="win" and v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icudata', + ], + }], + ], + 'actions': [ + { + 'action_name': 'run_torque_action', + 'inputs': [ # Order matters. + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)torque<(EXECUTABLE_SUFFIX)', + '<@(torque_files)', + ], + 'outputs': [ + '<@(torque_outputs)', + '<@(torque_generated_pure_headers)', + ], + 'action': [ + '<@(_inputs)', + '-o', '<(torque_output_root)/torque-generated' + ], + }, + ], + }, # v8_base + { + 'target_name': 'v8_libbase', + 'type': '<(component)', + 'toolsets': ['host', 'target'], + 'sources': [ + '<(V8_ROOT)/src/base/adapters.h', + '<(V8_ROOT)/src/base/address-region.h', + '<(V8_ROOT)/src/base/atomic-utils.h', + '<(V8_ROOT)/src/base/atomicops.h', + '<(V8_ROOT)/src/base/atomicops_internals_atomicword_compat.h', + '<(V8_ROOT)/src/base/atomicops_internals_portable.h', + '<(V8_ROOT)/src/base/atomicops_internals_std.h', + '<(V8_ROOT)/src/base/base-export.h', + '<(V8_ROOT)/src/base/bits.cc', + '<(V8_ROOT)/src/base/bits.h', + '<(V8_ROOT)/src/base/bounded-page-allocator.cc', + '<(V8_ROOT)/src/base/bounded-page-allocator.h', + '<(V8_ROOT)/src/base/build_config.h', + '<(V8_ROOT)/src/base/compiler-specific.h', + '<(V8_ROOT)/src/base/cpu.cc', + '<(V8_ROOT)/src/base/cpu.h', + '<(V8_ROOT)/src/base/debug/stack_trace.cc', + '<(V8_ROOT)/src/base/debug/stack_trace.h', + '<(V8_ROOT)/src/base/division-by-constant.cc', + '<(V8_ROOT)/src/base/division-by-constant.h', + '<(V8_ROOT)/src/base/enum-set.h', + '<(V8_ROOT)/src/base/export-template.h', + '<(V8_ROOT)/src/base/file-utils.cc', + '<(V8_ROOT)/src/base/file-utils.h', + '<(V8_ROOT)/src/base/flags.h', + '<(V8_ROOT)/src/base/format-macros.h', + '<(V8_ROOT)/src/base/free_deleter.h', + '<(V8_ROOT)/src/base/functional.cc', + '<(V8_ROOT)/src/base/functional.h', + '<(V8_ROOT)/src/base/hashmap-entry.h', + '<(V8_ROOT)/src/base/hashmap.h', + '<(V8_ROOT)/src/base/ieee754.cc', + '<(V8_ROOT)/src/base/ieee754.h', + '<(V8_ROOT)/src/base/iterator.h', + '<(V8_ROOT)/src/base/lazy-instance.h', + '<(V8_ROOT)/src/base/list.h', + '<(V8_ROOT)/src/base/logging.cc', + '<(V8_ROOT)/src/base/logging.h', + '<(V8_ROOT)/src/base/lsan-page-allocator.cc', + '<(V8_ROOT)/src/base/lsan-page-allocator.h', + '<(V8_ROOT)/src/base/macros.h', + '<(V8_ROOT)/src/base/once.cc', + '<(V8_ROOT)/src/base/once.h', + '<(V8_ROOT)/src/base/optional.h', + '<(V8_ROOT)/src/base/overflowing-math.h', + '<(V8_ROOT)/src/base/page-allocator.cc', + '<(V8_ROOT)/src/base/page-allocator.h', + '<(V8_ROOT)/src/base/platform/condition-variable.cc', + '<(V8_ROOT)/src/base/platform/condition-variable.h', + '<(V8_ROOT)/src/base/platform/elapsed-timer.h', + '<(V8_ROOT)/src/base/platform/mutex.cc', + '<(V8_ROOT)/src/base/platform/mutex.h', + '<(V8_ROOT)/src/base/platform/platform.h', + '<(V8_ROOT)/src/base/platform/semaphore.cc', + '<(V8_ROOT)/src/base/platform/semaphore.h', + '<(V8_ROOT)/src/base/platform/time.cc', + '<(V8_ROOT)/src/base/platform/time.h', + '<(V8_ROOT)/src/base/region-allocator.cc', + '<(V8_ROOT)/src/base/region-allocator.h', + '<(V8_ROOT)/src/base/ring-buffer.h', + '<(V8_ROOT)/src/base/safe_conversions.h', + '<(V8_ROOT)/src/base/safe_conversions_impl.h', + '<(V8_ROOT)/src/base/safe_math.h', + '<(V8_ROOT)/src/base/safe_math_impl.h', + '<(V8_ROOT)/src/base/small-vector.h', + '<(V8_ROOT)/src/base/sys-info.cc', + '<(V8_ROOT)/src/base/sys-info.h', + '<(V8_ROOT)/src/base/template-utils.h', + '<(V8_ROOT)/src/base/timezone-cache.h', + '<(V8_ROOT)/src/base/tsan.h', + '<(V8_ROOT)/src/base/utils/random-number-generator.cc', + '<(V8_ROOT)/src/base/utils/random-number-generator.h', + ], + 'target_conditions': [ + ['OS=="android" and _toolset=="target"', { + 'libraries': [ + '-llog', + ], + 'include_dirs': [ + 'src/common/android/include', + ], + }], + ], + 'conditions': [ + ['OS=="linux"', { + 'link_settings': { + 'libraries': [ + '-ldl', + '-lrt' + ], + }, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-linux.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + ], + } + ], + ['OS=="aix"', { + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-aix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + ]}, + ], + ['OS=="android"', { + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_android.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + ], + 'link_settings': { + 'target_conditions': [ + ['_toolset=="host" and host_os!="mac"', { + # Only include libdl and librt on host builds because they + # are included by default on Android target builds, and we + # don't want to re-include them here since this will change + # library order and break (see crbug.com/469973). + # These libraries do not exist on Mac hosted builds. + 'libraries': [ + '-ldl', + '-lrt' + ] + }] + ] + }, + 'conditions': [ + ['host_os=="mac"', { + 'target_conditions': [ + ['_toolset=="host"', { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-macos.cc' + ] + }, { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-linux.cc' + ] + }], + ], + }, { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-linux.cc' + ] + }], + ], + }, + ], + ['OS=="fuchsia"', { + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_fuchsia.cc', + '<(V8_ROOT)/src/base/platform/platform-fuchsia.cc', + ]}, + ], + ['OS=="mac"', { + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-macos.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + ]}, + ], + ['OS=="win"', { + 'defines': [ + '_CRT_RAND_S' # for rand_s() + ], + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_win.cc', + '<(V8_ROOT)/src/base/platform/platform-win32.cc', + '<(V8_ROOT)/src/base/win32-headers.h', + ], + 'link_settings': { + 'libraries': [ + '-ldbghelp.lib', + '-lshlwapi.lib', + '-lwinmm.lib', + '-lws2_32.lib' + ], + }, + }], + ['OS=="qnx"', { + 'link_settings': { + 'target_conditions': [ + ['_toolset=="host" and host_os=="linux"', { + 'libraries': [ + '-lrt' + ], + }], + ['_toolset=="target"', { + 'libraries': [ + '-lbacktrace' + ], + }], + ], + }, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + '<(V8_ROOT)/src/base/qnx-math.h' + ], + 'target_conditions': [ + ['_toolset=="host" and host_os=="linux"', { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-linux.cc' + ], + }], + ['_toolset=="host" and host_os=="mac"', { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-macos.cc' + ], + }], + ['_toolset=="target"', { + 'sources': [ + '<(V8_ROOT)/src/base/platform/platform-qnx.cc' + ], + }], + ], + }, + ], + ['OS=="freebsd"', { + 'link_settings': { + 'libraries': [ + '-L/usr/local/lib -lexecinfo', + ]}, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-freebsd.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + ], + } + ], + ['OS=="openbsd"', { + 'link_settings': { + 'libraries': [ + '-L/usr/local/lib -lexecinfo', + ]}, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-openbsd.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + ], + } + ], + ['OS=="netbsd"', { + 'link_settings': { + 'libraries': [ + '-L/usr/pkg/lib -Wl,-R/usr/pkg/lib -lexecinfo', + ]}, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-openbsd.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + '<(V8_ROOT)/src/base/platform/platform-posix-time.h', + '<(V8_ROOT)/src/base/platform/platform-posix-time.cc', + ], + } + ], + ['OS=="solaris"', { + 'link_settings': { + 'libraries': [ + '-lnsl -lrt', + ]}, + 'sources': [ + '<(V8_ROOT)/src/base/debug/stack_trace_posix.cc', + '<(V8_ROOT)/src/base/platform/platform-solaris.cc', + '<(V8_ROOT)/src/base/platform/platform-posix.h', + '<(V8_ROOT)/src/base/platform/platform-posix.cc', + ], + } + ], + ], + }, # v8_libbase + { + 'target_name': 'v8_libplatform', + 'type': '<(component)', + 'dependencies': [ + 'v8_libbase', + ], + 'sources': [ + '<(V8_ROOT)/include/libplatform/libplatform-export.h', + '<(V8_ROOT)/include/libplatform/libplatform.h', + '<(V8_ROOT)/include/libplatform/v8-tracing.h', + '<(V8_ROOT)/src/libplatform/default-foreground-task-runner.cc', + '<(V8_ROOT)/src/libplatform/default-foreground-task-runner.h', + '<(V8_ROOT)/src/libplatform/default-platform.cc', + '<(V8_ROOT)/src/libplatform/default-platform.h', + '<(V8_ROOT)/src/libplatform/default-worker-threads-task-runner.cc', + '<(V8_ROOT)/src/libplatform/default-worker-threads-task-runner.h', + '<(V8_ROOT)/src/libplatform/task-queue.cc', + '<(V8_ROOT)/src/libplatform/task-queue.h', + '<(V8_ROOT)/src/libplatform/tracing/trace-buffer.cc', + '<(V8_ROOT)/src/libplatform/tracing/trace-buffer.h', + '<(V8_ROOT)/src/libplatform/tracing/trace-config.cc', + '<(V8_ROOT)/src/libplatform/tracing/trace-object.cc', + '<(V8_ROOT)/src/libplatform/tracing/trace-writer.cc', + '<(V8_ROOT)/src/libplatform/tracing/trace-writer.h', + '<(V8_ROOT)/src/libplatform/tracing/tracing-controller.cc', + '<(V8_ROOT)/src/libplatform/worker-thread.cc', + '<(V8_ROOT)/src/libplatform/worker-thread.h', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['component=="shared_library"', { + 'direct_dependent_settings': { + 'defines': [ 'USING_V8_PLATFORM_SHARED' ], + }, + 'defines': [ 'BUILDING_V8_PLATFORM_SHARED' ], + }] + ], + 'direct_dependent_settings': { + 'include_dirs': [ + '<(V8_ROOT)/include', + ], + }, + }, # v8_libplatform + { + 'target_name': 'v8_libsampler', + 'type': 'static_library', + 'dependencies': [ + 'v8_libbase', + ], + 'sources': [ + '<(V8_ROOT)/src/libsampler/sampler.cc', + '<(V8_ROOT)/src/libsampler/sampler.h' + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ], + }, # v8_libsampler + { + 'target_name': 'torque_base', + 'type': '<(component)', + 'toolsets': ['host'], + 'dependencies': ['v8_libbase#host'], + 'defines!': [ + '_HAS_EXCEPTIONS=0', + 'BUILDING_V8_SHARED=1', + ], + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeTypeInfo': 'true', + 'ExceptionHandling': 1, + }, + }, + 'sources': [ + '<(V8_ROOT)/src/torque/ast.h', + '<(V8_ROOT)/src/torque/cfg.cc', + '<(V8_ROOT)/src/torque/cfg.h', + '<(V8_ROOT)/src/torque/contextual.h', + '<(V8_ROOT)/src/torque/csa-generator.cc', + '<(V8_ROOT)/src/torque/csa-generator.h', + '<(V8_ROOT)/src/torque/declarable.cc', + '<(V8_ROOT)/src/torque/declarable.h', + '<(V8_ROOT)/src/torque/declaration-visitor.cc', + '<(V8_ROOT)/src/torque/declaration-visitor.h', + '<(V8_ROOT)/src/torque/declarations.cc', + '<(V8_ROOT)/src/torque/declarations.h', + '<(V8_ROOT)/src/torque/earley-parser.cc', + '<(V8_ROOT)/src/torque/earley-parser.h', + '<(V8_ROOT)/src/torque/file-visitor.cc', + '<(V8_ROOT)/src/torque/file-visitor.h', + '<(V8_ROOT)/src/torque/global-context.h', + '<(V8_ROOT)/src/torque/implementation-visitor.cc', + '<(V8_ROOT)/src/torque/implementation-visitor.h', + '<(V8_ROOT)/src/torque/instructions.cc', + '<(V8_ROOT)/src/torque/instructions.h', + '<(V8_ROOT)/src/torque/server-data.cc', + '<(V8_ROOT)/src/torque/server-data.h', + '<(V8_ROOT)/src/torque/source-positions.cc', + '<(V8_ROOT)/src/torque/source-positions.h', + '<(V8_ROOT)/src/torque/torque-compiler.cc', + '<(V8_ROOT)/src/torque/torque-compiler.h', + '<(V8_ROOT)/src/torque/torque-parser.cc', + '<(V8_ROOT)/src/torque/torque-parser.h', + '<(V8_ROOT)/src/torque/type-oracle.cc', + '<(V8_ROOT)/src/torque/type-oracle.h', + '<(V8_ROOT)/src/torque/types.cc', + '<(V8_ROOT)/src/torque/types.h', + '<(V8_ROOT)/src/torque/utils.cc', + '<(V8_ROOT)/src/torque/utils.h', + ], + }, # torque_base + { + 'target_name': 'torque', + 'type': 'executable', + 'toolsets': ['host'], + 'dependencies': ['torque_base'], + 'defines!': [ + '_HAS_EXCEPTIONS=0', + 'BUILDING_V8_SHARED=1', + ], + # This is defined trough `configurations` for GYP+ninja compatibility + 'msvs_settings': { + 'VCCLCompilerTool': { + 'RuntimeTypeInfo': 'true', + 'ExceptionHandling': 1, + }, + }, + 'sources': [ + "<(V8_ROOT)/src/torque/torque.cc", + ], + }, # torque + { + 'target_name': 'postmortem-metadata', + 'type': 'none', + 'variables': { + 'heapobject_files': [ + '<(V8_ROOT)/src/objects.h', + '<(V8_ROOT)/src/objects-inl.h', + '<(V8_ROOT)/src/objects/allocation-site-inl.h', + '<(V8_ROOT)/src/objects/allocation-site.h', + '<(V8_ROOT)/src/objects/cell-inl.h', + '<(V8_ROOT)/src/objects/cell.h', + '<(V8_ROOT)/src/objects/code-inl.h', + '<(V8_ROOT)/src/objects/code.h', + '<(V8_ROOT)/src/objects/data-handler.h', + '<(V8_ROOT)/src/objects/data-handler-inl.h', + '<(V8_ROOT)/src/objects/feedback-cell.h', + '<(V8_ROOT)/src/objects/feedback-cell-inl.h', + '<(V8_ROOT)/src/objects/fixed-array-inl.h', + '<(V8_ROOT)/src/objects/fixed-array.h', + '<(V8_ROOT)/src/objects/heap-number-inl.h', + '<(V8_ROOT)/src/objects/heap-number.h', + '<(V8_ROOT)/src/objects/heap-object-inl.h', + '<(V8_ROOT)/src/objects/heap-object.h', + '<(V8_ROOT)/src/objects/instance-type.h', + '<(V8_ROOT)/src/objects/js-array-inl.h', + '<(V8_ROOT)/src/objects/js-array.h', + '<(V8_ROOT)/src/objects/js-array-buffer-inl.h', + '<(V8_ROOT)/src/objects/js-array-buffer.h', + '<(V8_ROOT)/src/objects/js-objects-inl.h', + '<(V8_ROOT)/src/objects/js-objects.h', + '<(V8_ROOT)/src/objects/js-promise-inl.h', + '<(V8_ROOT)/src/objects/js-promise.h', + '<(V8_ROOT)/src/objects/js-regexp-inl.h', + '<(V8_ROOT)/src/objects/js-regexp.h', + '<(V8_ROOT)/src/objects/js-regexp-string-iterator-inl.h', + '<(V8_ROOT)/src/objects/js-regexp-string-iterator.h', + '<(V8_ROOT)/src/objects/map.h', + '<(V8_ROOT)/src/objects/map.cc', + '<(V8_ROOT)/src/objects/map-inl.h', + '<(V8_ROOT)/src/objects/js-objects.cc', + '<(V8_ROOT)/src/objects/name.h', + '<(V8_ROOT)/src/objects/name-inl.h', + '<(V8_ROOT)/src/objects/oddball-inl.h', + '<(V8_ROOT)/src/objects/oddball.h', + '<(V8_ROOT)/src/objects/scope-info.h', + '<(V8_ROOT)/src/objects/script.h', + '<(V8_ROOT)/src/objects/script-inl.h', + '<(V8_ROOT)/src/objects/shared-function-info.h', + '<(V8_ROOT)/src/objects/shared-function-info-inl.h', + '<(V8_ROOT)/src/objects/string.cc', + '<(V8_ROOT)/src/objects/string.h', + '<(V8_ROOT)/src/objects/string-comparator.cc', + '<(V8_ROOT)/src/objects/string-comparator.h', + '<(V8_ROOT)/src/objects/string-inl.h', + '<(V8_ROOT)/src/objects/struct.h', + '<(V8_ROOT)/src/objects/struct-inl.h', + ], + }, + 'actions': [ + { + 'action_name': 'gen-postmortem-metadata', + 'inputs': [ + '<(V8_ROOT)/tools/gen-postmortem-metadata.py', + '<@(heapobject_files)', + ], + 'outputs': [ + '<(SHARED_INTERMEDIATE_DIR)/debug-support.cc', + ], + 'action': [ + 'python', + '<(V8_ROOT)/tools/gen-postmortem-metadata.py', + '<@(_outputs)', + '<@(heapobject_files)' + ], + }, + ], + }, # postmortem-metadata + { + 'target_name': 'mksnapshot', + 'type': 'executable', + 'dependencies': [ + 'v8_base', + 'v8_init', + 'v8_libbase', + 'v8_libplatform', + 'v8_nosnapshot', + ], + 'sources': [ + '<(V8_ROOT)/src/snapshot/embedded-file-writer.cc', + '<(V8_ROOT)/src/snapshot/embedded-file-writer.h', + '<(V8_ROOT)/src/snapshot/mksnapshot.cc', + ], + 'conditions': [ + ['v8_enable_i18n_support==1', { + 'dependencies': [ + '<(icu_gyp_path):icui18n', + '<(icu_gyp_path):icuuc', + ] + }], + ['want_separate_host_toolset==1', { + 'toolsets': ['host'], + }, { + 'toolsets': ['target'], + }], + ], + }, # mksnapshot + { + 'target_name': 'bytecode_builtins_list_generator', + 'type': 'executable', + 'toolsets': ['host'], + 'dependencies': [ + "v8_libbase#host" + ], + 'sources': [ + "<(V8_ROOT)/src/builtins/generate-bytecodes-builtins-list.cc", + "<(V8_ROOT)/src/interpreter/bytecode-operands.cc", + "<(V8_ROOT)/src/interpreter/bytecode-operands.h", + "<(V8_ROOT)/src/interpreter/bytecodes.cc", + "<(V8_ROOT)/src/interpreter/bytecodes.h", + ], + }, # bytecode_builtins_list_generator + { + 'target_name': 'generate_bytecode_builtins_list', + 'type': 'none', + 'toolsets': ['host'], + 'dependencies': [ + "bytecode_builtins_list_generator", + ], + 'actions': [ + { + 'action_name': 'generate_bytecode_builtins_list_action', + 'inputs': [ + '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)bytecode_builtins_list_generator<(EXECUTABLE_SUFFIX)', + ], + 'outputs': [ + '<(generate_bytecode_builtins_list_output)', + ], + 'action': [ + 'python', + '<(V8_ROOT)/tools/run.py', + '<@(_inputs)', + '<@(_outputs)', + ], + }, + ], + }, # generate_bytecode_builtins_list + ], +} diff --git a/tools/v8_gypfiles/v8_external_snapshot.gypi b/tools/v8_gypfiles/v8_external_snapshot.gypi new file mode 100644 index 0000000000..38b7282bd3 --- /dev/null +++ b/tools/v8_gypfiles/v8_external_snapshot.gypi @@ -0,0 +1,201 @@ +# Keeping this separate since Node.js does use it +{ + 'targets': [ + { + 'target_name': 'v8_external_snapshot', + 'type': 'static_library', + 'conditions': [ + ['v8_use_external_startup_data==1', { + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + 'dependencies': [ + 'mksnapshot#host', + 'js2c_extras#host', + 'natives_blob', + ] + }, { + 'toolsets': ['target'], + 'dependencies': [ + 'mksnapshot', + 'natives_blob', + ], + }], + ['component=="shared_library"', { + 'defines': [ + 'BUILDING_V8_SHARED', + ], + 'direct_dependent_settings': { + 'defines': [ + 'USING_V8_SHARED', + ], + }, + }], + ], + 'dependencies': [ + 'v8_base', + ], + 'sources': [ + '<(V8_ROOT)/src/setup-isolate-deserialize.cc', + '<(V8_ROOT)/src/snapshot/embedded-empty.cc', + '<(V8_ROOT)/src/snapshot/natives-external.cc', + '<(V8_ROOT)/src/snapshot/snapshot-external.cc', + '<(embedded_builtins_snapshot_src)', + ], + 'actions': [ + { + 'action_name': 'run_mksnapshot (external)', + 'inputs': [ + '<(mksnapshot_exec)', + ], + 'variables': { + 'mksnapshot_flags': [], + 'conditions': [ + ['v8_random_seed!=0', { + 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], + }], + ['v8_vector_stores!=0', { + 'mksnapshot_flags': ['--vector-stores'], + }], + ['v8_os_page_size!=0', { + 'mksnapshot_flags': ['--v8_os_page_size', '<(v8_os_page_size)'], + }], + ['v8_enable_embedded_builtins=1', { + # 'embedded_builtins_snapshot_src': [ "$target_gen_dir/embedded${suffix}.cc" ], + # 'mksnapshot_flags': ["--embedded_src", "$target_gen_dir/embedded${suffix}.cc",], + # if (invoker.embedded_variant != "") { + # args += [ + # "--embedded_variant", + # invoker.embedded_variant, + # ] + # } + }, + ], + ], + }, + 'conditions': [ + ['v8_embed_script!=""', { + 'inputs': [ + '<(v8_embed_script)', + ], + }], + ['want_separate_host_toolset==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob_host.bin', + '<(embedded_builtins_snapshot_src)' + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob_host.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embedded_builtins_snapshot_src)' + ], + 'action': [ + '<(mksnapshot_exec)', + '<@(mksnapshot_flags)', + '--startup_blob', '<(PRODUCT_DIR)/snapshot_blob.bin', + '<(embed_script)', + '<(warmup_script)', + ], + }], + ], + }, + ], + }], + ], + }, # v8_external_snapshot + { + 'target_name': 'natives_blob', + 'type': 'none', + 'conditions': [ + ['want_separate_host_toolset==1', { + 'toolsets': ['host', 'target'], + }, { + 'toolsets': ['target'], + }], + ['v8_use_external_startup_data==1', { + 'conditions': [ + ['want_separate_host_toolset==1', { + 'dependencies': ['js2c_extras#host'], + }], + ], + 'actions': [ + { + 'action_name': 'js2c_extras_bin', + 'inputs': [ + '<(V8_ROOT)/tools/js2c.py', + '<@(v8_extra_library_files)', + ], + 'outputs': ['<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin'], + 'action': [ + 'python', + '<(V8_ROOT)/tools/js2c.py', + '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc', + 'EXTRAS', + '<@(v8_extra_library_files)', + '--startup_blob', '<@(_outputs)', + '--nojs', + ], + }, + { + 'action_name': 'concatenate_natives_blob', + 'inputs': [ + '<(V8_ROOT)/tools/concatenate-files.py', + '<(SHARED_INTERMEDIATE_DIR)/libraries-extras.bin', + ], + 'conditions': [ + ['want_separate_host_toolset==1', { + 'target_conditions': [ + ['_toolset=="host"', { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob_host.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob_host.bin' + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], + }, { + 'outputs': [ + '<(PRODUCT_DIR)/natives_blob.bin', + ], + 'action': [ + 'python', '<@(_inputs)', '<(PRODUCT_DIR)/natives_blob.bin' + ], + }], + ], + }, + ], + }], + ] + }, # natives_blob + ] +} |