Index: runtime/vm/vm.gypi |
diff --git a/runtime/vm/vm.gypi b/runtime/vm/vm.gypi |
index 3da329123e97c1c46309ef7fb1ed6c8b00817266..a8c0e74ac4b04cbf916dea3ac8929de966de5729 100644 |
--- a/runtime/vm/vm.gypi |
+++ b/runtime/vm/vm.gypi |
@@ -30,6 +30,7 @@ |
'snapshot_test_in_dat_file': 'snapshot_test_in.dat', |
'snapshot_test_dart_file': 'snapshot_test.dart', |
'typed_data_cc_file': '<(gen_source_dir)/typed_data_gen.cc', |
+ 'typed_data_patch_cc_file': '<(gen_source_dir)/typed_data_patch_gen.cc', |
'vmservice_cc_file': '<(gen_source_dir)/vmservice_gen.cc', |
'vmservice_patch_cc_file': '<(gen_source_dir)/vmservice_patch_gen.cc', |
}, |
@@ -233,6 +234,7 @@ |
'generate_mirrors_patch_cc_file#host', |
'generate_profiler_cc_file#host', |
'generate_typed_data_cc_file#host', |
+ 'generate_typed_data_patch_cc_file#host', |
'generate_vmservice_cc_file#host', |
'generate_vmservice_patch_cc_file#host', |
], |
@@ -271,6 +273,7 @@ |
'<(mirrors_patch_cc_file)', |
'<(profiler_cc_file)', |
'<(typed_data_cc_file)', |
+ '<(typed_data_patch_cc_file)', |
'<(vmservice_cc_file)', |
'<(vmservice_patch_cc_file)', |
], |
@@ -967,16 +970,12 @@ |
] |
}, |
{ |
- # Unlike the other libraries in the SDK, dart:typed_data is not |
- # implemented as a patch applied to the base SDK implementation. |
- # Instead the VM has a complete replacement library and the |
- # implementation in the SDK is ignored. |
'target_name': 'generate_typed_data_cc_file', |
'type': 'none', |
'toolsets':['host'], |
'includes': [ |
# Load the runtime implementation sources. |
- '../lib/typed_data_sources.gypi', |
+ '../../sdk/lib/typed_data/typed_data_sources.gypi', |
], |
'sources/': [ |
# Exclude all .[cc|h] files. |
@@ -1011,6 +1010,46 @@ |
] |
}, |
{ |
+ 'target_name': 'generate_typed_data_patch_cc_file', |
+ 'type': 'none', |
+ 'toolsets':['host'], |
+ 'includes': [ |
+ # Load the patch sources. |
+ '../lib/typed_data_sources.gypi', |
+ ], |
+ 'sources/': [ |
+ # Exclude all .[cc|h] files. |
+ # This is only here for reference. Excludes happen after |
+ # variable expansion, so the script has to do its own |
+ # exclude processing of the sources being passed. |
+ ['exclude', '\\.cc|h$'], |
+ ], |
+ 'actions': [ |
+ { |
+ 'action_name': 'generate_typed_data_patch_cc', |
+ 'inputs': [ |
+ '../tools/gen_library_src_paths.py', |
+ '<(libgen_in_cc_file)', |
+ '<@(_sources)', |
+ ], |
+ 'outputs': [ |
+ '<(typed_data_patch_cc_file)', |
+ ], |
+ 'action': [ |
+ 'python', |
+ 'tools/gen_library_src_paths.py', |
+ '--output', '<(typed_data_patch_cc_file)', |
+ '--input_cc', '<(libgen_in_cc_file)', |
+ '--include', 'vm/bootstrap.h', |
+ '--var_name', 'dart::Bootstrap::typed_data_patch_paths_', |
+ '--library_name', 'dart:typed_data', |
+ '<@(_sources)', |
+ ], |
+ 'message': 'Generating ''<(typed_data_patch_cc_file)'' file.' |
+ }, |
+ ] |
+ }, |
+ { |
'target_name': 'generate_profiler_cc_file', |
'type': 'none', |
'toolsets':['host'], |
@@ -1255,6 +1294,7 @@ |
'generate_math_library_patch', |
'generate_mirrors_library_patch', |
'generate_profiler_library_patch', |
+ 'generate_typed_data_library_patch', |
'generate_vmservice_library_patch', |
], |
'actions': [ |
@@ -1265,11 +1305,6 @@ |
'"dart$", "sdk/lib"])', |
'../../tools/patch_sdk.py', |
'../../tools/patch_sdk.dart', |
- # Unlike the other libraries in the SDK, dart:typed_data is not |
- # implemented as a patch applied to the base SDK implementation. |
- # Instead the VM has a complete replacement library and the |
- # implementation in the SDK is ignored. |
- '../lib/typed_data.dart', |
# Unlike the other libraries in the SDK, dart:_builtin and |
# dart:nativewrappers are only available for the Dart VM. |
'../bin/builtin.dart', |
@@ -1287,6 +1322,7 @@ |
'<(gen_source_dir)/patches/math_patch.dart', |
'<(gen_source_dir)/patches/mirrors_patch.dart', |
'<(gen_source_dir)/patches/profiler_patch.dart', |
+ '<(gen_source_dir)/patches/typed_data_patch.dart', |
'<(gen_source_dir)/patches/vmservice_patch.dart', |
], |
'outputs': [ |
@@ -1660,6 +1696,38 @@ |
}, |
{ |
'variables': { |
+ 'library_name': 'typed_data', |
+ 'library_uri': 'dart:typed_data', |
+ }, |
+ 'target_name': 'generate_<(library_name)_library_patch', |
+ 'type': 'none', |
+ 'toolsets': ['host'], |
+ 'includes': [ |
+ '../lib/typed_data_sources.gypi', |
+ ], |
+ 'actions': [ |
+ { |
+ 'action_name': 'concatenate_<(library_name)_patches', |
+ 'inputs': [ |
+ '../tools/concatenate_patches.py', |
+ '<@(_sources)', |
+ ], |
+ 'outputs': [ |
+ '<(gen_source_dir)/patches/<(library_name)_patch.dart' |
+ ], |
+ 'action': [ |
+ 'python', |
+ 'tools/concatenate_patches.py', |
+ '--output', |
+ '<(gen_source_dir)/patches/<(library_name)_patch.dart', |
+ '<@(_sources)', |
+ ], |
+ 'message': 'Generating <(library_uri) patch.', |
+ }, |
+ ], |
+ }, |
+ { |
+ 'variables': { |
'library_name': 'vmservice', |
'library_uri': 'dart:_vmservice', |
}, |