[GYP] Move builtins generation into mksnapshot

Bug:v8:6055

Change-Id: Ifeac048e5bee2d1782cdaaabe9f5257129b7be0e
Reviewed-on: https://chromium-review.googlesource.com/508528
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Commit-Queue: Loo Rong Jie <loorongjie@gmail.com>
Cr-Commit-Position: refs/heads/master@{#45437}
diff --git a/src/v8.gyp b/src/v8.gyp
index fa3f2e9..192ff88 100644
--- a/src/v8.gyp
+++ b/src/v8.gyp
@@ -99,7 +99,7 @@
           # 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_nosnapshot'],
+          'dependencies': ['v8_base', 'v8_builtins_setup', 'v8_nosnapshot'],
         }],
         ['v8_use_snapshot=="true" and v8_use_external_startup_data==0', {
           # The dependency on v8_base should come from a transitive
@@ -133,6 +133,153 @@
       ]
     },
     {
+      'target_name': 'v8_builtins_setup',
+      'type': 'static_library',
+      'dependencies': [
+        'v8_builtins_generators',
+      ],
+      'variables': {
+        'optimize': 'max',
+      },
+      'include_dirs+': [
+        '..',
+        '../include',
+      ],
+      'sources': [  ### gcmole(all) ###
+        'setup-isolate-full.cc',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+      ],
+    },
+    {
+      'target_name': 'v8_builtins_generators',
+      'type': 'static_library',
+      'dependencies': [
+        'v8_base',
+      ],
+       'variables': {
+        'optimize': 'max',
+      },
+      'include_dirs+': [
+        '..',
+        '../include',
+      ],
+      'sources': [  ### gcmole(all) ###
+        'builtins/builtins-arguments-gen.cc',
+        'builtins/builtins-arguments-gen.h',
+        'builtins/builtins-array-gen.cc',
+        'builtins/builtins-async-function-gen.cc',
+        'builtins/builtins-async-gen.cc',
+        'builtins/builtins-async-gen.h',
+        'builtins/builtins-async-generator-gen.cc',
+        'builtins/builtins-async-iterator-gen.cc',
+        'builtins/builtins-boolean-gen.cc',
+        'builtins/builtins-call-gen.cc',
+        'builtins/builtins-console-gen.cc',
+        'builtins/builtins-constructor-gen.cc',
+        'builtins/builtins-constructor-gen.h',
+        'builtins/builtins-constructor.h',
+        'builtins/builtins-conversion-gen.cc',
+        'builtins/builtins-date-gen.cc',
+        'builtins/builtins-forin-gen.cc',
+        'builtins/builtins-forin-gen.h',
+        'builtins/builtins-function-gen.cc',
+        'builtins/builtins-generator-gen.cc',
+        'builtins/builtins-global-gen.cc',
+        'builtins/builtins-handler-gen.cc',
+        'builtins/builtins-ic-gen.cc',
+        'builtins/builtins-internal-gen.cc',
+        'builtins/builtins-interpreter-gen.cc',
+        'builtins/builtins-intl-gen.cc',
+        'builtins/builtins-math-gen.cc',
+        'builtins/builtins-number-gen.cc',
+        'builtins/builtins-object-gen.cc',
+        'builtins/builtins-promise-gen.cc',
+        'builtins/builtins-promise-gen.h',
+        'builtins/builtins-regexp-gen.cc',
+        'builtins/builtins-regexp-gen.h',
+        'builtins/builtins-sharedarraybuffer-gen.cc',
+        'builtins/builtins-string-gen.cc',
+        'builtins/builtins-string-gen.h',
+        'builtins/builtins-symbol-gen.cc',
+        'builtins/builtins-typedarray-gen.cc',
+        'builtins/builtins-utils-gen.h',
+        'builtins/builtins-wasm-gen.cc',
+        'builtins/setup-builtins-internal.cc',
+        'ic/accessor-assembler.cc',
+        'ic/accessor-assembler.h',
+        'ic/binary-op-assembler.cc',
+        'ic/binary-op-assembler.h',
+        'ic/keyed-store-generic.cc',
+        'ic/keyed-store-generic.h',
+        'interpreter/interpreter-assembler.cc',
+        'interpreter/interpreter-assembler.h',
+        'interpreter/interpreter-generator.cc',
+        'interpreter/interpreter-generator.h',
+        'interpreter/interpreter-intrinsics-generator.cc',
+        'interpreter/interpreter-intrinsics-generator.h',
+        'interpreter/setup-interpreter-internal.cc',
+        'interpreter/setup-interpreter.h',
+      ],
+      'conditions': [
+        ['want_separate_host_toolset==1', {
+          'toolsets': ['host', 'target'],
+        }, {
+          'toolsets': ['target'],
+        }],
+        ['v8_target_arch=="ia32"', {
+          'sources': [  ### gcmole(arch:ia32) ###
+            'builtins/ia32/builtins-ia32.cc',
+          ],
+        }],
+        ['v8_target_arch=="x64"', {
+          'sources': [  ### gcmole(arch:x64) ###
+            'builtins/x64/builtins-x64.cc',
+          ],
+        }],
+        ['v8_target_arch=="arm"', {
+          'sources': [  ### gcmole(arch:arm) ###
+            'builtins/arm/builtins-arm.cc',
+          ],
+        }],
+        ['v8_target_arch=="arm64"', {
+          'sources': [  ### gcmole(arch:arm64) ###
+            'builtins/arm64/builtins-arm64.cc',
+          ],
+        }],
+        ['v8_target_arch=="mips" or v8_target_arch=="mipsel"', {
+          'sources': [  ### gcmole(arch:mipsel) ###
+            'builtins/mips/builtins-mips.cc',
+          ],
+        }],
+        ['v8_target_arch=="mips64" or v8_target_arch=="mips64el"', {
+          'sources': [  ### gcmole(arch:mips64el) ###
+            'builtins/mips64/builtins-mips64.cc',
+          ],
+        }],
+        ['v8_target_arch=="ppc" or v8_target_arch=="ppc64"', {
+          'sources': [  ### gcmole(arch:ppc) ###
+            'builtins/ppc/builtins-ppc.cc',
+          ],
+        }],
+        ['v8_target_arch=="s390" or v8_target_arch=="s390x"', {
+          'sources': [  ### gcmole(arch:s390) ###
+            'builtins/s390/builtins-s390.cc',
+          ],
+        }],
+        ['v8_enable_i18n_support==0', {
+          'sources!': [
+            'builtins/builtins-intl-gen.cc',
+          ],
+        }],
+      ],
+    },
+    {
       'target_name': 'v8_snapshot',
       'type': 'static_library',
       'conditions': [
@@ -172,6 +319,7 @@
         '<(SHARED_INTERMEDIATE_DIR)/extras-libraries.cc',
         '<(SHARED_INTERMEDIATE_DIR)/experimental-extras-libraries.cc',
         '<(INTERMEDIATE_DIR)/snapshot.cc',
+        'setup-isolate-deserialize.cc',
       ],
       'actions': [
         {
@@ -285,6 +433,7 @@
             '<(DEPTH)',
           ],
           'sources': [
+            'setup-isolate-deserialize.cc',
             'snapshot/natives-external.cc',
             'snapshot/snapshot-external.cc',
           ],
@@ -468,78 +617,38 @@
         'bootstrapper.cc',
         'bootstrapper.h',
         'builtins/builtins-api.cc',
-        'builtins/builtins-arguments-gen.cc',
-        'builtins/builtins-arguments-gen.h',
         'builtins/builtins-arraybuffer.cc',
         'builtins/builtins-array.cc',
-        'builtins/builtins-array-gen.cc',
-        'builtins/builtins-async-function-gen.cc',
-        'builtins/builtins-async-generator-gen.cc',
-        'builtins/builtins-async-iterator-gen.cc',
-        'builtins/builtins-async-gen.cc',
-        'builtins/builtins-async-gen.h',
         'builtins/builtins-boolean.cc',
-        'builtins/builtins-boolean-gen.cc',
         'builtins/builtins-call.cc',
-        'builtins/builtins-call-gen.cc',
         'builtins/builtins-callsite.cc',
         'builtins/builtins-console.cc',
-        'builtins/builtins-console-gen.cc',
-        'builtins/builtins-constructor-gen.cc',
-        'builtins/builtins-constructor-gen.h',
         'builtins/builtins-constructor.h',
-        'builtins/builtins-conversion-gen.cc',
         'builtins/builtins-dataview.cc',
         'builtins/builtins-date.cc',
-        'builtins/builtins-date-gen.cc',
         'builtins/builtins-debug.cc',
         'builtins/builtins-definitions.h',
         'builtins/builtins-descriptors.h',
         'builtins/builtins-error.cc',
-        'builtins/builtins-forin-gen.cc',
-        'builtins/builtins-forin-gen.h',
         'builtins/builtins-function.cc',
-        'builtins/builtins-function-gen.cc',
-        'builtins/builtins-generator-gen.cc',
         'builtins/builtins-global.cc',
-        'builtins/builtins-global-gen.cc',
-        'builtins/builtins-handler-gen.cc',
-        'builtins/builtins-ic-gen.cc',
         'builtins/builtins-internal.cc',
-        'builtins/builtins-internal-gen.cc',
         'builtins/builtins-interpreter.cc',
-        'builtins/builtins-interpreter-gen.cc',
         'builtins/builtins-json.cc',
         'builtins/builtins-math.cc',
-        'builtins/builtins-math-gen.cc',
         'builtins/builtins-number.cc',
-        'builtins/builtins-number-gen.cc',
         'builtins/builtins-object.cc',
-        'builtins/builtins-object-gen.cc',
-        'builtins/builtins-promise-gen.cc',
-        'builtins/builtins-promise-gen.h',
         'builtins/builtins-proxy.cc',
         'builtins/builtins-reflect.cc',
         'builtins/builtins-regexp.cc',
-        'builtins/builtins-regexp-gen.cc',
-        'builtins/builtins-regexp-gen.h',
         'builtins/builtins-sharedarraybuffer.cc',
-        'builtins/builtins-sharedarraybuffer-gen.cc',
         'builtins/builtins-string.cc',
-        'builtins/builtins-string-gen.cc',
-        'builtins/builtins-string-gen.h',
         'builtins/builtins-intl.cc',
-        'builtins/builtins-intl-gen.cc',
         'builtins/builtins-symbol.cc',
-        'builtins/builtins-symbol-gen.cc',
         'builtins/builtins-typedarray.cc',
-        'builtins/builtins-typedarray-gen.cc',
         'builtins/builtins-utils.h',
-        'builtins/builtins-utils-gen.h',
-        'builtins/builtins-wasm-gen.cc',
         'builtins/builtins.cc',
         'builtins/builtins.h',
-        'builtins/setup-builtins-internal.cc',
         'cached-powers.cc',
         'cached-powers.h',
         'callable.h',
@@ -1001,10 +1110,6 @@
         'ic/access-compiler-data.h',
         'ic/access-compiler.cc',
         'ic/access-compiler.h',
-        'ic/accessor-assembler.cc',
-        'ic/accessor-assembler.h',
-        'ic/binary-op-assembler.cc',
-        'ic/binary-op-assembler.h',
         'ic/call-optimization.cc',
         'ic/call-optimization.h',
         'ic/handler-compiler.cc',
@@ -1018,8 +1123,6 @@
         'ic/ic-stats.h',
         'ic/ic.cc',
         'ic/ic.h',
-        'ic/keyed-store-generic.cc',
-        'ic/keyed-store-generic.h',
         'identity-map.cc',
         'identity-map.h',
         'interface-descriptors.cc',
@@ -1065,16 +1168,9 @@
         'interpreter/handler-table-builder.h',
         'interpreter/interpreter.cc',
         'interpreter/interpreter.h',
-        'interpreter/interpreter-assembler.cc',
-        'interpreter/interpreter-assembler.h',
-        'interpreter/interpreter-generator.cc',
         'interpreter/interpreter-generator.h',
         'interpreter/interpreter-intrinsics.cc',
         'interpreter/interpreter-intrinsics.h',
-        'interpreter/interpreter-intrinsics-generator.cc',
-        'interpreter/interpreter-intrinsics-generator.h',
-        'interpreter/setup-interpreter.h',
-        'interpreter/setup-interpreter-internal.cc',
         'isolate-inl.h',
         'isolate.cc',
         'isolate.h',
@@ -1271,7 +1367,6 @@
         'safepoint-table.cc',
         'safepoint-table.h',
         'setup-isolate.h',
-        'setup-isolate-full.cc',
         'signature.h',
         'simulator.h',
         'small-pointer-list.h',
@@ -2483,9 +2578,10 @@
       'type': 'executable',
       'dependencies': [
         'v8_base',
+        'v8_builtins_setup',
         'v8_libbase',
+        'v8_libplatform',
         'v8_nosnapshot',
-        'v8_libplatform'
       ],
       'include_dirs+': [
         '..',
diff --git a/test/cctest/cctest.gyp b/test/cctest/cctest.gyp
index ef2f36b..cf30741 100644
--- a/test/cctest/cctest.gyp
+++ b/test/cctest/cctest.gyp
@@ -444,6 +444,9 @@
         }, {
           'dependencies': ['../../src/v8.gyp:v8'],
         }],
+        ['v8_use_snapshot=="true"', {
+          'dependencies': ['../../src/v8.gyp:v8_builtins_generators'],
+        }],
       ],
     },
     {
diff --git a/test/unittests/unittests.gyp b/test/unittests/unittests.gyp
index bb42bb5..01cf0c5 100644
--- a/test/unittests/unittests.gyp
+++ b/test/unittests/unittests.gyp
@@ -264,6 +264,9 @@
             '<(icu_gyp_path):icuuc',
           ],
         }],
+        ['v8_use_snapshot=="true"', {
+          'dependencies': ['../../src/v8.gyp:v8_builtins_generators'],
+        }],
       ],
     },
   ],