# 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.

{
  'variables': {
    'sb_pedantic_warnings': 1,
  },
  'targets': [
    {
      'target_name': 'debug',
      'type': 'static_library',
      'sources': [
        'backend/command_map.h',
        'backend/console_agent.cc',
        'backend/console_agent.h',
        'backend/css_agent.cc',
        'backend/css_agent.h',
        'backend/debug_backend.cc',
        'backend/debug_backend.h',
        'backend/debug_dispatcher.cc',
        'backend/debug_dispatcher.h',
        'backend/debug_module.cc',
        'backend/debug_module.h',
        'backend/debug_script_runner.cc',
        'backend/debug_script_runner.h',
        'backend/debugger_hooks_impl.cc',
        'backend/debugger_hooks_impl.h',
        'backend/dom_agent.cc',
        'backend/dom_agent.h',
        'backend/log_agent.cc',
        'backend/log_agent.h',
        'backend/overlay_agent.cc',
        'backend/overlay_agent.h',
        'backend/page_agent.cc',
        'backend/page_agent.h',
        'backend/render_layer.cc',
        'backend/render_layer.h',
        'backend/render_overlay.cc',
        'backend/render_overlay.h',
        'backend/runtime_agent.cc',
        'backend/runtime_agent.h',
        'backend/script_debugger_agent.cc',
        'backend/script_debugger_agent.h',
        'backend/tracing_agent.cc',
        'backend/tracing_agent.h',
        'command.h',
        'console/debug_hub.cc',
        'console/debug_hub.h',
        'console/debugger_event_target.cc',
        'console/debugger_event_target.h',
        'debug_client.cc',
        'debug_client.h',
        'json_object.cc',
        'json_object.h',
        'remote/debug_web_server.cc',
        'remote/debug_web_server.h',
      ],
      'dependencies': [
        '<(DEPTH)/cobalt/base/base.gyp:base',
        '<(DEPTH)/cobalt/dom/dom.gyp:dom',
        '<(DEPTH)/cobalt/script/script.gyp:script',
        '<(DEPTH)/cobalt/speech/speech.gyp:speech',
        '<(DEPTH)/net/net.gyp:http_server',
        'console_command_manager',
        'copy_backend_web_files',
        'copy_console_web_files',
        'copy_remote_web_files',
        'remote/devtools/devtools.gyp:devtools',
      ],
    },

    {
      # Anything that implements a console command can depend on this without
      # depending on the whole debug module.
      'target_name': 'console_command_manager',
      'type': 'static_library',
      'conditions': [
        # Everything is conditional so implementers of commands can depend on
        # this unconditionally.
        ['enable_debugger == 1', {
          'sources': [
            'console/command_manager.cc',
            'console/command_manager.h',
          ],
          'dependencies': [
            '<(DEPTH)/cobalt/base/base.gyp:base',
          ],
        }],
      ],
    },

    {
      'target_name': 'copy_backend_web_files',
      'type': 'none',
      'variables': {
        'content_web_input_files': [
          '<(DEPTH)/cobalt/debug/backend/content/',
        ],
        'content_web_output_subdir': 'cobalt/debug/backend',
      },
      'includes': [ '<(DEPTH)/cobalt/build/copy_web_data.gypi' ],
    },

    {
      'target_name': 'copy_console_web_files',
      'type': 'none',
      'variables': {
        'content_web_input_files': [
          '<(DEPTH)/cobalt/debug/console/content/',
        ],
        'content_web_output_subdir': 'cobalt/debug/console',
      },
      'includes': [ '<(DEPTH)/cobalt/build/copy_web_data.gypi' ],
    },

    {
      'target_name': 'copy_remote_web_files',
      'type': 'none',
      'variables': {
        'content_web_input_files': [
          '<(DEPTH)/cobalt/debug/remote/content/',
        ],
        'content_web_output_subdir': 'cobalt/debug/remote',
      },
      'includes': [ '<(DEPTH)/cobalt/build/copy_web_data.gypi' ],
    },
  ],
}
