Index: Source/bindings/core/dart/dart-extras.gypi |
diff --git a/Source/bindings/core/dart/dart-extras.gypi b/Source/bindings/core/dart/dart-extras.gypi |
new file mode 100644 |
index 0000000000000000000000000000000000000000..6916b106db426661ea0f1be416bfa6f782a01563 |
--- /dev/null |
+++ b/Source/bindings/core/dart/dart-extras.gypi |
@@ -0,0 +1,211 @@ |
+{ |
+ 'variables': { |
+ 'global_dart_output_dir': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings/dart', |
+ 'dart_dir': '../../../../../../dart', |
+ 'dart_lib_dir': '<(dart_dir)/sdk/lib', |
+ 'resources_dir': 'resources', |
+ 'build_dir': '../../../build', |
+ 'core_dir': '../../../core', |
+ 'modules_dir': '../../../modules', |
+ 'core_gyp_dir': '<(core_dir)', |
+ 'scripts_dir': '../../dart/gyp/scripts', |
+ |
+ 'bindings_core_dart_stamp_file': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings/core/dart/core.stamp', |
+ |
+ # Share with Source/core/core.gyp somehow. |
+ # Note: that SVG exclusions are not applicable for Dartium. |
+ 'bindings_idl_files': [ |
+ '<@(core_idl_files)', |
+ '<@(core_dependency_idl_files)', |
+ '<@(modules_idl_files)', |
+ '<@(modules_dependency_idl_files)', |
+ '<(modules_dir)/geolocation/NavigatorGeolocation.idl', |
+ # Add some interfaces which are missing for JS, but necessary for Dart. |
+ '<(core_dir)/svg/SVGFilterPrimitiveStandardAttributes.idl', |
+ '<(core_dir)/svg/SVGFitToViewBox.idl', |
+ '<(core_dir)/svg/SVGTests.idl', |
+ ], |
+ |
+ 'bindings_idl_files!': [ |
+ # Custom bindings in bindings/core/v8/custom exist for these. |
+ '<(core_dir)/dom/EventListener.idl', |
+ |
+ '<(core_dir)/page/AbstractView.idl', |
+ |
+ # FIXME: I don't know why these are excluded, either. |
+ # Someone (me?) should figure it out and add appropriate comments. |
+ '<(core_dir)/css/CSSUnknownRule.idl', |
+ ], |
+ |
+ 'enable_dart_native_extensions%': '<(enable_dart_native_extensions)', |
+ 'additional_webcore_include_dirs': [ |
+ '.', |
+ 'custom', |
+ '<(dart_dir)runtime', |
+ '<(dart_dir)runtime/include', |
+ '<(SHARED_INTERMEDIATE_DIR)/blink/bindings/dart', |
+ ], |
+ }, |
+ 'targets': [ |
+ { |
+ 'target_name': 'dart_debug_hooks_source', |
+ 'type': 'none', |
+ 'actions': [ |
+ { |
+ 'action_name': 'generateDartDebugHooksSource', |
+ 'inputs': [ |
+ 'DartDebugHooks.js', |
+ ], |
+ 'outputs': [ |
+ '<(SHARED_INTERMEDIATE_DIR)/blink/DartDebugHooksSource.h', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '<(build_dir)/scripts/xxd.py', |
+ 'DartDebugHooksSource_js', |
+ '<@(_inputs)', |
+ '<@(_outputs)' |
+ ], |
+ 'message': 'Generating DartDebugHooksSource.h from DartDebugHooks.js', |
+ }, |
+ ] |
+ }, |
+ { |
+ 'target_name': 'gen_dart_blink', |
+ 'type': 'none', |
+ 'actions': [ |
+ { |
+ 'action_name': 'generateDartBlinkLibrary', |
+ 'inputs': [ |
+ # Only includes main IDL files from core and modules (exclude |
+ # dependencies and testing, for which bindings are not included in |
+ # aggregate bindings). |
+ '<@(core_idl_files)', |
+ '<@(modules_idl_files)', |
+ '<@(core_dictionary_idl_files)', |
+ '<@(modules_dictionary_idl_files)', |
+ '<(bindings_core_dart_stamp_file)', |
+ '<(bindings_modules_dart_stamp_file)', |
+ '<@(dart_code_generator_template_files)', |
+ '<@(dart_idl_compiler_files)', |
+ '<@(idl_compiler_files)', |
+ ], |
+ 'outputs': [ |
+ '<(global_dart_output_dir)/_blink_dartium.dart', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '-S', # skip 'import site' to speed up startup |
+ '../../dart/scripts/compiler.py', |
+ '--generate-dart-blink', |
+ '<(bindings_core_dart_output_dir)', |
+ '<(core_idl_files_list)', |
+ '<(core_dictionary_idl_files_list)', |
+ '--generate-dart-blink', |
+ '<(bindings_modules_dart_output_dir)', |
+ '<(modules_idl_files_list)', |
+ '<(modules_dictionary_idl_files_list)', |
+ '--output-directory', |
+ '<(global_dart_output_dir)', |
+ ], |
+ 'message': 'Generating dart:_blink library', |
+ }, |
+ ] |
+ }, |
+ { |
+ 'target_name': 'dart_snapshot', |
+ 'type': 'none', |
+ 'hard_dependency': 1, |
+ 'dependencies': [ |
+ '<(dart_dir)/runtime/dart-runtime.gyp:gen_snapshot#host', |
+ 'gen_dart_blink', |
+ ], |
+ 'variables': { |
+ 'idls_list_temp_file': '<|(idls_list_temp_file.tmp <@(bindings_idl_files))', |
+ 'output_path': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings/dart', |
+ 'dart_html_lib_dir': '<(dart_dir)/tools/dom', |
+ 'dart_html_lib_deps': '<!(python <@(scripts_dir)/dart_html_lib_deps.py <(dart_html_lib_dir))', |
+ }, |
+ 'sources': [ |
+ # '<!@(cat <(idls_list_temp_file))', |
+ ], |
+ 'actions': [ |
+ # FIXME: We need an action to generate: |
+ # - Dart*.[h|cpp] |
+ # - blink_DartResolver.cpp |
+ { |
+ 'action_name': 'generate_dart_class_ids', |
+ 'inputs': [ |
+ # Only includes main IDL files from core and modules (exclude |
+ # dependencies and testing, for which bindings are not included in |
+ # aggregate bindings). |
+ '<@(core_idl_files)', |
+ '<@(modules_idl_files)', |
+ '<(bindings_core_dart_stamp_file)', |
+ '<(bindings_modules_dart_stamp_file)', |
+ '<@(dart_code_generator_template_files)', |
+ '<@(dart_idl_compiler_files)', |
+ '<@(idl_compiler_files)', |
+ ], |
+ 'outputs': [ |
+ '<@(dart_class_id_files)', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '-S', # skip 'import site' to speed up startup |
+ '../../dart/scripts/compiler.py', |
+ '--generate-globals', |
+ '<(bindings_core_dart_output_dir)', |
+ '<(core_idl_files_list)', |
+ '--generate-globals', |
+ '<(bindings_modules_dart_output_dir)', |
+ '<(modules_idl_files_list)', |
+ '--output-directory', |
+ '<(global_dart_output_dir)', |
+ ], |
+ 'message': 'Generating Dart class id table', |
+ }, |
+ { |
+ 'action_name': 'build_dart_snapshot', |
+ 'variables': { |
+ 'output_path': '<(SHARED_INTERMEDIATE_DIR)/blink/bindings/dart', |
+ 'pure_libs': [ |
+ '<(global_dart_output_dir)/_blink_dartium.dart', |
+ '<(dart_dir)/runtime/bin/vmserviceio_dartium.dart', |
+ '<(dart_lib_dir)/html/html_common/html_common.dart', |
+ '<(dart_lib_dir)/js/dartium/js_dartium.dart', |
+ '<(dart_lib_dir)/html/dartium/html_dartium.dart', |
+ '<(dart_lib_dir)/indexed_db/dartium/indexed_db_dartium.dart', |
+ '<(dart_lib_dir)/svg/dartium/svg_dartium.dart', |
+ '<(dart_lib_dir)/web_audio/dartium/web_audio_dartium.dart', |
+ '<(dart_lib_dir)/web_gl/dartium/web_gl_dartium.dart', |
+ '<(dart_lib_dir)/web_sql/dartium/web_sql_dartium.dart', |
+ ], |
+ }, |
+ 'inputs': [ |
+ '<@(scripts_dir)/build_dart_snapshot.py', |
+ '<(resources_dir)/DartSnapshot.bytes.template', |
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen_snapshot<(EXECUTABLE_SUFFIX)', |
+ # FIXME: libs below can consist of more than a single file. Ideally, we should |
+ # track that somehow. |
+ # FIXME: We need blink_dartium.dart here. |
+ '<@(pure_libs)', |
+ '<@(dart_html_lib_deps)', |
+ ], |
+ 'outputs': [ |
+ '<(output_path)/DartSnapshot.bytes', |
+ ], |
+ 'action': [ |
+ 'python', |
+ '<@(scripts_dir)/build_dart_snapshot.py', |
+ '<(dart_dir)', |
+ '<(resources_dir)/DartSnapshot.bytes.template', |
+ '<(output_path)', |
+ '<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)gen_snapshot<(EXECUTABLE_SUFFIX)', |
+ '<@(pure_libs)', |
+ ], |
+ }, |
+ ], |
+ }, |
+ ], |
+} |