# Copyright 2014 Google Inc. 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.

{
  'variables': {
    'cobalt_code': 1,
  },
  'targets': [
    {
      'target_name': 'dom',
      'type': 'static_library',
      'sources': [
        'animation_event.h',
        'animation_frame_request_callback_list.cc',
        'animation_frame_request_callback_list.h',
        'array_buffer.cc',
        'array_buffer.h',
        'array_buffer_view.cc',
        'array_buffer_view.h',
        'attr.cc',
        'attr.h',
        'audio_track.h',
        'audio_track_list.h',
        'benchmark_stat_names.cc',
        'benchmark_stat_names.h',
        'blob.cc',
        'blob.h',
        'blob_property_bag.h',
        'camera_3d.cc',
        'camera_3d.h',
        'camera_3d_impl.cc',
        'camera_3d_impl.h',
        'cdata_section.cc',
        'cdata_section.h',
        'character_data.cc',
        'character_data.h',
        'comment.cc',
        'comment.h',
        'console.cc',
        'console.h',
        'crypto.cc',
        'crypto.h',
        'csp_delegate.cc',
        'csp_delegate.h',
        'csp_delegate_enum.h',
        'csp_delegate_factory.cc',
        'csp_delegate_factory.h',
        'csp_violation_reporter.cc',
        'csp_violation_reporter.h',
        'css_animations_adapter.cc',
        'css_animations_adapter.h',
        'css_transitions_adapter.cc',
        'css_transitions_adapter.h',
        'data_view.cc',
        'data_view.h',
        'document.cc',
        'document.h',
        'document_timeline.cc',
        'document_timeline.h',
        'document_type.cc',
        'document_type.h',
        'dom_animatable.cc',
        'dom_animatable.h',
        'dom_implementation.cc',
        'dom_implementation.h',
        'dom_parser.cc',
        'dom_parser.h',
        'dom_rect.h',
        'dom_rect_list.cc',
        'dom_rect_list.h',
        'dom_rect_read_only.h',
        'dom_settings.cc',
        'dom_settings.h',
        'dom_stat_tracker.cc',
        'dom_stat_tracker.h',
        'dom_string_map.cc',
        'dom_string_map.h',
        'dom_token_list.cc',
        'dom_token_list.h',
        'element.cc',
        'element.h',
        'event.cc',
        'event.h',
        'event_listener.cc',
        'event_listener.h',
        'event_queue.cc',
        'event_queue.h',
        'event_target.cc',
        'event_target.h',
        'float32_array.h',
        'float64_array.h',
        'focus_event.cc',
        'focus_event.h',
        'font_cache.cc',
        'font_cache.h',
        'font_face.cc',
        'font_face.h',
        'font_face_updater.cc',
        'font_face_updater.h',
        'font_list.cc',
        'font_list.h',
        'global_stats.cc',
        'global_stats.h',
        'history.cc',
        'history.h',
        'html_anchor_element.cc',
        'html_anchor_element.h',
        'html_body_element.cc',
        'html_body_element.h',
        'html_br_element.cc',
        'html_br_element.h',
        'html_collection.cc',
        'html_collection.h',
        'html_div_element.cc',
        'html_div_element.h',
        'html_element.cc',
        'html_element.h',
        'html_element_context.cc',
        'html_element_context.h',
        'html_element_factory.cc',
        'html_element_factory.h',
        'html_head_element.cc',
        'html_head_element.h',
        'html_heading_element.cc',
        'html_heading_element.h',
        'html_html_element.cc',
        'html_html_element.h',
        'html_image_element.cc',
        'html_image_element.h',
        'html_link_element.cc',
        'html_link_element.h',
        'html_media_element.cc',
        'html_media_element.h',
        'html_meta_element.cc',
        'html_meta_element.h',
        'html_paragraph_element.cc',
        'html_paragraph_element.h',
        'html_script_element.cc',
        'html_script_element.h',
        'html_span_element.cc',
        'html_span_element.h',
        'html_style_element.cc',
        'html_style_element.h',
        'html_title_element.cc',
        'html_title_element.h',
        'html_unknown_element.h',
        'html_video_element.cc',
        'html_video_element.h',
        'initial_computed_style.cc',
        'initial_computed_style.h',
        'keyboard_event.cc',
        'keyboard_event.h',
        'keycode.h',
        'keyframes_map_updater.cc',
        'keyframes_map_updater.h',
        'layout_boxes.h',
        'local_storage_database.cc',
        'local_storage_database.h',
        'location.cc',
        'location.h',
        'media_error.h',
        'media_key_complete_event.cc',
        'media_key_complete_event.h',
        'media_key_error.h',
        'media_key_error_event.cc',
        'media_key_error_event.h',
        'media_key_message_event.cc',
        'media_key_message_event.h',
        'media_key_needed_event.cc',
        'media_key_needed_event.h',
        'media_query_list.cc',
        'media_query_list.h',
        'memory_info.cc',
        'memory_info.h',
        'message_event.cc',
        'message_event.h',
        'mime_type_array.cc',
        'mime_type_array.h',
        'mutation_observer.cc',
        'mutation_observer.h',
        'mutation_observer_init.h',
        'mutation_observer_task_manager.cc',
        'mutation_observer_task_manager.h',
        'mutation_record.cc',
        'mutation_record.h',
        'mutation_reporter.cc',
        'mutation_reporter.h',
        'named_node_map.cc',
        'named_node_map.h',
        'navigator.cc',
        'navigator.h',
        'node.cc',
        'node.h',
        'node_children_iterator.h',
        'node_collection.h',
        'node_descendants_iterator.h',
        'node_list.cc',
        'node_list.h',
        'node_list_live.cc',
        'node_list_live.h',
        'performance.cc',
        'performance.h',
        'performance_timing.cc',
        'performance_timing.h',
        'plugin_array.cc',
        'plugin_array.h',
        'progress_event.cc',
        'progress_event.h',
        'pseudo_element.cc',
        'pseudo_element.h',
        'registered_observer.h',
        'registered_observer_list.cc',
        'registered_observer_list.h',
        'rule_matching.cc',
        'rule_matching.h',
        'screen.h',
        'security_policy_violation_event.cc',
        'security_policy_violation_event.h',
        'serializer.cc',
        'serializer.h',
        'storage.cc',
        'storage.h',
        'storage_area.cc',
        'storage_area.h',
        'storage_event.cc',
        'storage_event.h',
        'test_runner.cc',
        'test_runner.h',
        'text.cc',
        'text.h',
        'time_ranges.cc',
        'time_ranges.h',
        'track_base.h',
        'track_default.h',
        'track_default_list.h',
        'track_event.h',
        'transition_event.h',
        'typed_array.h',
        'ui_event.cc',
        'ui_event.h',
        'ui_event_with_key_state.cc',
        'ui_event_with_key_state.h',
        'uint8_array.h',
        'url.cc',
        'url.h',
        'url_registry.h',
        'url_utils.cc',
        'url_utils.h',
        'video_track.h',
        'video_track_list.h',
        'window.cc',
        'window.h',
        'window_timers.cc',
        'window_timers.h',
        'xml_document.h',
        'xml_serializer.cc',
        'xml_serializer.h',
      ],
      'dependencies': [
        '<(DEPTH)/cobalt/base/base.gyp:base',
        '<(DEPTH)/cobalt/browser/browser_bindings_gen.gyp:generated_types',
        '<(DEPTH)/cobalt/csp/csp.gyp:csp',
        '<(DEPTH)/cobalt/cssom/cssom.gyp:cssom',
        '<(DEPTH)/cobalt/dom/dom_exception.gyp:dom_exception',
        '<(DEPTH)/cobalt/loader/loader.gyp:loader',
        '<(DEPTH)/cobalt/media_session/media_session.gyp:media_session',
        # Interface layer to avoid directly depending on network.
        '<(DEPTH)/cobalt/network_bridge/network_bridge.gyp:network_bridge',
        '<(DEPTH)/cobalt/script/script.gyp:script',
        '<(DEPTH)/cobalt/storage/storage.gyp:storage',
        '<(DEPTH)/cobalt/system_window/system_window.gyp:system_window',
        '<(DEPTH)/cobalt/web_animations/web_animations.gyp:web_animations',
        '<(DEPTH)/googleurl/googleurl.gyp:googleurl',
        '<(DEPTH)/nb/nb.gyp:nb',
      ],
      'conditions': [
        ['cobalt_media_source_2016==1', {
          'sources': [
            'media_source/media_source.cc',
            'media_source/media_source.h',
            'media_source/source_buffer.cc',
            'media_source/source_buffer.h',
            'media_source/source_buffer_list.cc',
            'media_source/source_buffer_list.h',
          ],
          'dependencies': [
            '<(DEPTH)/cobalt/media/media2.gyp:media2',
          ],
        }, {
          'sources': [
            'media_source.cc',
            'media_source.h',
            'source_buffer.cc',
            'source_buffer.h',
            'source_buffer_list.cc',
            'source_buffer_list.h',
          ],
          'dependencies': [
            '<(DEPTH)/cobalt/media/media.gyp:media',
          ],
        }],
      ],
      # This target doesn't generate any headers, but it exposes generated
      # header files (for idl dictionaries) through this module's public header
      # files. So mark this target as a hard dependency to ensure that any
      # dependent targets wait until this target (and its hard dependencies) are
      # built.
      'hard_dependency': 1,
      'export_dependent_settings': [
        # Additionally, ensure that the include directories for generated
        # headers are put on the include directories for targets that depend
        # on this one.
        '<(DEPTH)/cobalt/browser/browser_bindings_gen.gyp:generated_types',
      ]
    },

    {
      'target_name': 'dom_testing',
      'type': 'static_library',
      'sources': [
        'testing/gtest_workarounds.h',
        'testing/html_collection_testing.h',
        'testing/mock_event_listener.h',
        'testing/stub_css_parser.cc',
        'testing/stub_css_parser.h',
        'testing/stub_script_runner.cc',
        'testing/stub_script_runner.h',
      ],
      'dependencies': [
        # TODO: Remove the dependency below, it works around the fact that
        #       ScriptValueFactory has non-virtual method CreatePromise().
        '<(DEPTH)/cobalt/script/engine.gyp:engine',
      ],
    },
  ],
}
