# Copyright 2014 The Cobalt Authors. All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

{
  'includes': [
    '../bindings/bindings.gypi',
  ],
  'variables': {
    'variables': {
      # By default enable MSE. This can be overriden by the port.
      'enable_mse%': 1,
    },

    # Base directory into which generated sources and intermediate files should
    # be generated.
    'bindings_output_dir': '<(SHARED_INTERMEDIATE_DIR)/bindings/browser',

    # Bindings for the interfaces in this list will be generated, and there must
    # be an implementation declared in a header that lives in the same
    # directory of each IDL.
    'source_idl_files': [
        '../audio/audio_buffer.idl',
        '../audio/audio_buffer_source_node.idl',
        '../audio/audio_context.idl',
        '../audio/audio_destination_node.idl',
        '../audio/audio_node.idl',

        '../cssom/css.idl',
        '../cssom/css_condition_rule.idl',
        '../cssom/css_grouping_rule.idl',
        '../cssom/css_font_face_rule.idl',
        '../cssom/css_media_rule.idl',
        '../cssom/css_keyframe_rule.idl',
        '../cssom/css_keyframes_rule.idl',
        '../cssom/css_rule.idl',
        '../cssom/css_rule_list.idl',
        '../cssom/css_style_declaration.idl',
        '../cssom/css_style_rule.idl',
        '../cssom/css_style_sheet.idl',
        '../cssom/media_list.idl',
        '../cssom/style_sheet.idl',
        '../cssom/style_sheet_list.idl',

        '../debug/debug_hub.idl',
        '../debug/debugger.idl',
        '../debug/debugger_event_target.idl',
        '../debug/debug_script_runner.idl',

        '../dom/animation_event.idl',
        '../dom/attr.idl',
        '../dom/audio_track.idl',
        '../dom/audio_track_list.idl',
        '../dom/blob.idl',
        '../dom/camera_3d.idl',
        '../dom/captions/system_caption_settings.idl',
        '../dom/cdata_section.idl',
        '../dom/character_data.idl',
        '../dom/comment.idl',
        '../dom/console.idl',
        '../dom/crypto.idl',
        '../dom/custom_event.idl',
        '../dom/device_orientation_event.idl',
        '../dom/document.idl',
        '../dom/document_timeline.idl',
        '../dom/document_type.idl',
        '../dom/dom_exception.idl',
        '../dom/dom_implementation.idl',
        '../dom/dom_parser.idl',
        '../dom/dom_rect.idl',
        '../dom/dom_rect_list.idl',
        '../dom/dom_rect_read_only.idl',
        '../dom/dom_string_map.idl',
        '../dom/dom_token_list.idl',
        '../dom/element.idl',
        '../dom/error_event.idl',
        '../dom/event.idl',
        '../dom/event_listener.idl',
        '../dom/event_target.idl',
        '../dom/focus_event.idl',
        '../dom/history.idl',
        '../dom/html_anchor_element.idl',
        '../dom/html_body_element.idl',
        '../dom/html_br_element.idl',
        '../dom/html_collection.idl',
        '../dom/html_div_element.idl',
        '../dom/html_element.idl',
        '../dom/html_head_element.idl',
        '../dom/html_heading_element.idl',
        '../dom/html_html_element.idl',
        '../dom/html_image_element.idl',
        '../dom/html_link_element.idl',
        '../dom/html_media_element.idl',
        '../dom/html_meta_element.idl',
        '../dom/html_paragraph_element.idl',
        '../dom/html_script_element.idl',
        '../dom/html_span_element.idl',
        '../dom/html_style_element.idl',
        '../dom/html_title_element.idl',
        '../dom/html_unknown_element.idl',
        '../dom/html_video_element.idl',
        '../dom/input_event.idl',
        '../dom/keyboard_event.idl',
        '../dom/location.idl',
        '../dom/media_error.idl',
        '../dom/media_query_list.idl',
        '../dom/memory_info.idl',
        '../dom/message_event.idl',
        '../dom/mime_type_array.idl',
        '../dom/mouse_event.idl',
        '../dom/mutation_observer.idl',
        '../dom/mutation_record.idl',
        '../dom/named_node_map.idl',
        '../dom/navigator.idl',
        '../dom/node.idl',
        '../dom/node_list.idl',
        '../dom/on_error_event_listener.idl',
        '../dom/on_screen_keyboard.idl',
        '../dom/performance.idl',
        '../dom/performance_timing.idl',
        '../dom/plugin_array.idl',
        '../dom/pointer_event.idl',
        '../dom/progress_event.idl',
        '../dom/screen.idl',
        '../dom/screenshot.idl',
        '../dom/security_policy_violation_event.idl',
        '../dom/storage.idl',
        '../dom/storage_event.idl',
        '../dom/test_runner.idl',
        '../dom/text.idl',
        '../dom/time_ranges.idl',
        '../dom/track_default.idl',
        '../dom/track_default_list.idl',
        '../dom/track_event.idl',
        '../dom/transition_event.idl',
        '../dom/ui_event.idl',
        '../dom/url.idl',
        '../dom/video_playback_quality.idl',
        '../dom/video_track.idl',
        '../dom/video_track_list.idl',
        '../dom/wheel_event.idl',
        '../dom/window.idl',
        '../dom/xml_document.idl',
        '../dom/xml_serializer.idl',

        '../fetch/fetch_internal.idl',

        '../h5vcc/dial/dial_http_request.idl',
        '../h5vcc/dial/dial_http_response.idl',
        '../h5vcc/dial/dial_server.idl',
        '../h5vcc/h5vcc.idl',
        '../h5vcc/h5vcc_accessibility.idl',
        '../h5vcc/h5vcc_account_info.idl',
        '../h5vcc/h5vcc_account_manager.idl',
        '../h5vcc/h5vcc_audio_config.idl',
        '../h5vcc/h5vcc_audio_config_array.idl',
        '../h5vcc/h5vcc_c_val.idl',
        '../h5vcc/h5vcc_c_val_key_list.idl',
        '../h5vcc/h5vcc_crash_log.idl',
        '../h5vcc/h5vcc_deep_link_event_target.idl',
        '../h5vcc/h5vcc_runtime.idl',
        '../h5vcc/h5vcc_runtime_event_target.idl',
        '../h5vcc/h5vcc_settings.idl',
        '../h5vcc/h5vcc_sso.idl',
        '../h5vcc/h5vcc_storage.idl',
        '../h5vcc/h5vcc_system.idl',
        '../h5vcc/h5vcc_trace_event.idl',

        '../media_capture/blob_event.idl',
        '../media_capture/media_device_info.idl',
        '../media_capture/media_devices.idl',
        '../media_capture/media_recorder.idl',
        '../media_session/media_metadata.idl',
        '../media_session/media_session.idl',
        '../media_session/media_session_action_details.idl',
        '../media_stream/media_stream.idl',
        '../media_stream/media_stream_track.idl',

        '../speech/speech_recognition.idl',
        '../speech/speech_recognition_alternative.idl',
        '../speech/speech_recognition_error.idl',
        '../speech/speech_recognition_event.idl',
        '../speech/speech_recognition_result.idl',
        '../speech/speech_recognition_result_list.idl',

        '../speech/speech_synthesis.idl',
        '../speech/speech_synthesis_error_event.idl',
        '../speech/speech_synthesis_event.idl',
        '../speech/speech_synthesis_utterance.idl',
        '../speech/speech_synthesis_voice.idl',

        '../web_animations/animatable.idl',
        '../web_animations/animation.idl',
        '../web_animations/animation_effect_read_only.idl',
        '../web_animations/animation_effect_timing_read_only.idl',
        '../web_animations/animation_timeline.idl',
        '../web_animations/keyframe.idl',
        '../web_animations/keyframe_effect_read_only.idl',

        '../webdriver/script_executor.idl',
        '../webdriver/script_executor_params.idl',
        '../webdriver/script_executor_result.idl',

        '../websocket/close_event.idl',
        '../websocket/web_socket.idl',

        '../xhr/xml_http_request.idl',
        '../xhr/xml_http_request_event_target.idl',
        '../xhr/xml_http_request_upload.idl',

        '<@(cobalt_webapi_extension_source_idl_files)',
    ],

    # IDL files that will end up generating a .h that will be #included in
    # Cobalt directly. IDL files for dictionaries and enums.
    'generated_header_idl_files': [
        '../audio/audio_node_channel_count_mode.idl',
        '../audio/audio_node_channel_interpretation.idl',
        '../debug/console_command.idl',
        '../dom/blob_property_bag.idl',
        '../dom/captions/caption_character_edge_style.idl',
        '../dom/captions/caption_color.idl',
        '../dom/captions/caption_font_family.idl',
        '../dom/captions/caption_font_size_percentage.idl',
        '../dom/captions/caption_opacity_percentage.idl',
        '../dom/captions/caption_state.idl',
        '../dom/custom_event_init.idl',
        '../dom/device_orientation_event_init.idl',
        '../dom/document_ready_state.idl',
        '../dom/dom_parser_supported_type.idl',
        '../dom/error_event_init.idl',
        '../dom/event_init.idl',
        '../dom/event_modifier_init.idl',
        '../dom/focus_event_init.idl',
        '../dom/input_event_init.idl',
        '../dom/keyboard_event_init.idl',
        '../dom/ui_event_init.idl',
        '../dom/media_source_end_of_stream_error.idl',
        '../dom/media_source_ready_state.idl',
        '../dom/mouse_event_init.idl',
        '../dom/mutation_observer_init.idl',
        '../dom/pointer_event_init.idl',
        '../dom/source_buffer_append_mode.idl',
        '../dom/track_default_type.idl',
        '../dom/wheel_event_init.idl',
        '../media_capture/blob_event_init.idl',
        '../media_capture/media_device_kind.idl',
        '../media_capture/media_recorder_options.idl',
        '../media_capture/recording_state.idl',
        '../media_session/media_image.idl',
        '../media_session/media_metadata_init.idl',
        '../media_session/media_session_action.idl',
        '../media_session/media_session_playback_state.idl',
        '../media_stream/media_stream_constraints.idl',
        '../media_stream/media_track_settings.idl',
        '../page_visibility/visibility_state.idl',
        '../speech/speech_recognition_error_code.idl',
        '../speech/speech_synthesis_error_code.idl',
        '../web_animations/animation_fill_mode.idl',
        '../web_animations/animation_playback_direction.idl',
        '../websocket/close_event_init.idl',
        '<@(cobalt_webapi_extension_generated_header_idl_files)',
    ],

    # Partial interfaces and the right-side of "implements". Also includes
    # callback interfaces.
    # Code will not get generated for these interfaces; they are used to add
    # functionality to other interfaces.
    'dependency_idl_files': [
        '../cssom/link_style.idl',

        '../dom/buffer_source.idl',
        '../dom/captions/navigator_system_caption_settings.idl',
        '../dom/document__web_animations_api.idl',
        '../dom/document_cobalt.idl',
        '../dom/document_cssom.idl',
        '../dom/document_html5.idl',
        '../dom/element_css_inline_style.idl',
        '../dom/element_cssom_view.idl',
        '../dom/element_dom_parsing_and_serialization.idl',
        '../dom/element_pointer_events.idl',
        '../dom/global_crypto.idl',
        '../dom/global_event_handlers.idl',
        '../dom/html_element_cssom_view.idl',
        '../dom/mouse_event_cssom_view.idl',
        '../dom/navigator_id.idl',
        '../dom/navigator_language.idl',
        '../dom/navigator_plugins.idl',
        '../dom/navigator_storage_utils.idl',
        '../dom/non_document_type_child_node.idl',
        '../dom/non_element_parent_node.idl',
        '../dom/parent_node.idl',
        '../dom/performance__high_resolution_time.idl',
        '../dom/speech_synthesis_getter.idl',
        '../dom/url_utils.idl',
        '../dom/window__animation_timing.idl',
        '../dom/window__performance.idl',
        '../dom/window_cssom.idl',
        '../dom/window_cssom_view.idl',
        '../dom/window_event_handlers.idl',
        '../dom/window_local_storage.idl',
        '../dom/window_on_screen_keyboard.idl',
        '../dom/window_session_storage.idl',
        '../dom/window_timers.idl',
        '../media_capture/navigator.idl',
        '../media_session/navigator_media_session.idl',
        '../page_visibility/document.idl',
    ],

    'conditions': [
      ['cobalt_media_source_2016==1', {
        'source_idl_files': [
            '../dom/eme/media_encrypted_event.idl',
            '../dom/eme/media_key_message_event.idl',
            '../dom/eme/media_key_session.idl',
            '../dom/eme/media_key_status_map.idl',
            '../dom/eme/media_key_system_access.idl',
            '../dom/eme/media_keys.idl',
        ],
        'generated_header_idl_files': [
            '../dom/eme/media_encrypted_event_init.idl',
            '../dom/eme/media_key_message_event_init.idl',
            '../dom/eme/media_key_message_type.idl',
            '../dom/eme/media_key_session_type.idl',
            '../dom/eme/media_key_status.idl',
            '../dom/eme/media_key_system_configuration.idl',
            '../dom/eme/media_key_system_media_capability.idl',
            '../dom/eme/media_keys_requirement.idl',
        ],
        'dependency_idl_files': [
            '../dom/eme/html_media_element.idl',
            '../dom/eme/navigator.idl',
        ],
      }, {
        'source_idl_files': [
            '../dom/media_key_complete_event.idl',
            '../dom/media_key_error.idl',
            '../dom/media_key_error_event.idl',
            '../dom/media_key_message_event.idl',
            '../dom/media_key_needed_event.idl',
        ],
        'dependency_idl_files': [
            '../dom/html_media_element_eme_01b.idl',
        ],
      }],
      ['enable_mse==1', {
        'source_idl_files': [
            '../dom/media_source.idl',
            '../dom/source_buffer.idl',
            '../dom/source_buffer_list.idl',
        ],
        'dependency_idl_files': [
            '../dom/url_mse.idl',
        ],
      }],
    ],
  },
}
