Index: tools/gyp/v8.gyp |
diff --git a/tools/gyp/v8.gyp b/tools/gyp/v8.gyp |
index 1383a60fb6d8d24641d21728b60dfad53a5ecd35..c9413538d528dc4dbc39a6aba8954b27cd075044 100644 |
--- a/tools/gyp/v8.gyp |
+++ b/tools/gyp/v8.gyp |
@@ -42,13 +42,14 @@ |
}, { |
'toolsets': ['target'], |
}], |
- ['v8_use_snapshot=="true"', { |
+ |
+ ['v8_use_snapshot=="true" 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_target_arch)', 'v8_snapshot'], |
- }, |
- { |
+ }], |
+ ['v8_use_snapshot!="true" 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. |
@@ -57,6 +58,12 @@ |
'v8_nosnapshot.<(v8_target_arch)', |
], |
}], |
+ ['v8_use_external_startup_data==1', { |
+ 'dependencies': [ |
+ 'v8_base.<(v8_target_arch)', |
+ 'v8_external_snapshot', |
+ ], |
+ }], |
['component=="shared_library"', { |
'type': '<(component)', |
'sources': [ |
@@ -148,6 +155,7 @@ |
'<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', |
'<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', |
'<(INTERMEDIATE_DIR)/snapshot.cc', |
+ '../../src/snapshot-common.cc', |
], |
'actions': [ |
{ |
@@ -172,7 +180,7 @@ |
'action': [ |
'<@(_inputs)', |
'<@(mksnapshot_flags)', |
- '<@(_outputs)' |
+ '<@(INTERMEDIATE_DIR)/snapshot.cc' |
], |
}, |
], |
@@ -190,6 +198,7 @@ |
'<(SHARED_INTERMEDIATE_DIR)/libraries.cc', |
'<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', |
'<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', |
+ '../../src/snapshot-common.cc', |
'../../src/snapshot-empty.cc', |
], |
'conditions': [ |
@@ -208,6 +217,73 @@ |
}], |
] |
}, |
+ { |
+ 'target_name': 'v8_external_snapshot', |
+ 'type': 'static_library', |
+ 'dependencies': [ |
+ 'v8_base.<(v8_target_arch)', |
+ 'mksnapshot.<(v8_target_arch)', |
+ 'natives_blob', |
+ ], |
+ 'include_dirs+': [ |
+ '../../src', |
+ ], |
+ 'sources': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/trig-table.cc', |
+ '../../src/natives-external.cc', |
+ '../../src/snapshot-external.cc', |
+ ], |
+ 'conditions': [ |
+ ['want_separate_host_toolset==1', { |
+ 'toolsets': ['host', 'target'], |
+ 'dependencies': [ |
+ 'js2c#host', |
+ 'generate_trig_table#host', |
+ 'mksnapshot.<(v8_target_arch)#host' |
+ ]}, { |
+ 'toolsets': ['target'], |
+ 'dependencies': [ |
+ 'js2c', |
+ 'generate_trig_table', |
+ 'mksnapshot.<(v8_target_arch)' |
+ ]}], |
+ ['component=="shared_library"', { |
+ 'defines': [ |
+ 'BUILDING_V8_SHARED', |
+ 'V8_SHARED', |
+ ], |
+ }], |
+ ], |
+ 'actions': [ |
+ { |
+ 'action_name': 'run_mksnapshot (external)', |
+ 'inputs': [ |
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)mksnapshot.<(v8_target_arch)<(EXECUTABLE_SUFFIX)', |
+ ], |
+ 'outputs': [ |
+ '<(INTERMEDIATE_DIR)/snapshot.cc', |
+ '<(INTERMEDIATE_DIR)/snapshot_blob.bin', |
+ ], |
+ 'variables': { |
+ 'mksnapshot_flags': [ |
+ '--log-snapshot-positions', |
+ '--logfile', '<(INTERMEDIATE_DIR)/snapshot.log', |
+ ], |
+ 'conditions': [ |
+ ['v8_random_seed!=0', { |
+ 'mksnapshot_flags': ['--random-seed', '<(v8_random_seed)'], |
+ }], |
+ ], |
+ }, |
+ 'action': [ |
+ '<@(_inputs)', |
+ '<@(mksnapshot_flags)', |
+ '<@(INTERMEDIATE_DIR)/snapshot.cc', |
+ '--startup_blob', '<(INTERMEDIATE_DIR)/snapshot_blob.bin', |
+ ], |
+ }, |
+ ], |
+ }, |
{ 'target_name': 'generate_trig_table', |
'type': 'none', |
'conditions': [ |
@@ -544,8 +620,9 @@ |
'../../src/serialize.h', |
'../../src/small-pointer-list.h', |
'../../src/smart-pointers.h', |
- '../../src/snapshot-common.cc', |
'../../src/snapshot.h', |
+ '../../src/snapshot-source-sink.cc', |
jochen (gone - plz use gerrit)
2014/05/23 11:44:44
can you do those changes (adding/removing files) i
vogelheim
2014/05/26 12:36:03
Done.
|
+ '../../src/snapshot-source-sink.h', |
'../../src/spaces-inl.h', |
'../../src/spaces.cc', |
'../../src/spaces.h', |
@@ -1051,6 +1128,25 @@ |
], |
}, |
{ |
+ 'target_name': 'natives_blob', |
+ 'type': 'none', |
+ 'actions': [{ |
+ 'action_name': 'concatenate_natives_blob', |
+ 'inputs': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/libraries.bin', |
jochen (gone - plz use gerrit)
2014/05/23 11:44:44
I think we want those in <(PRODUCT_DIR)
vogelheim
2014/05/26 12:36:03
Done, but only for those two files that are meant
|
+ '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin', |
+ ], |
+ 'outputs': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/natives_blob.bin', |
+ ], |
+ 'action': [ |
+ 'bash', |
jochen (gone - plz use gerrit)
2014/05/23 11:44:44
there's no bash on windows. gyp has some magic to
vogelheim
2014/05/26 12:36:03
Hmm... I got the idea from code search: https://co
|
+ '-c', |
+ 'cat <@(_inputs) > <@(_outputs)', |
+ ], |
+ }], |
+ }, |
+ { |
'target_name': 'js2c', |
'type': 'none', |
'conditions': [ |
@@ -1105,6 +1201,8 @@ |
'../../src/harmony-array.js', |
'../../src/harmony-math.js' |
], |
+ 'libraries_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries.bin', |
+ 'libraries_experimental_bin_file': '<(SHARED_INTERMEDIATE_DIR)/libraries-experimental.bin', |
}, |
'actions': [ |
{ |
@@ -1120,12 +1218,20 @@ |
'action': [ |
'python', |
'../../tools/js2c.py', |
- '<@(_outputs)', |
+ '<(SHARED_INTERMEDIATE_DIR)/libraries.cc', |
'CORE', |
'<(v8_compress_startup_data)', |
'<@(library_files)', |
'<@(i18n_library_files)', |
], |
+ 'conditions': [ |
+ [ 'v8_use_external_startup_data==1', { |
+ 'outputs': ['<@(libraries_bin_file)'], |
+ 'action': [ |
+ '--startup_blob', '<@(libraries_bin_file)', |
+ ], |
+ }], |
+ ], |
}, |
{ |
'action_name': 'js2c_experimental', |
@@ -1139,11 +1245,19 @@ |
'action': [ |
'python', |
'../../tools/js2c.py', |
- '<@(_outputs)', |
+ '<(SHARED_INTERMEDIATE_DIR)/experimental-libraries.cc', |
'EXPERIMENTAL', |
'<(v8_compress_startup_data)', |
'<@(experimental_library_files)' |
], |
+ 'conditions': [ |
+ [ 'v8_use_external_startup_data==1', { |
+ 'outputs': ['<@(libraries_experimental_bin_file)'], |
+ 'action': [ |
+ '--startup_blob', '<@(libraries_experimental_bin_file)' |
+ ], |
+ }], |
+ ], |
}, |
], |
}, |