# Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
#
# Use of this source code is governed by a BSD-style license
# that can be found in the LICENSE file in the root of the source
# tree. An additional intellectual property rights grant can be found
# in the file PATENTS.  All contributing project authors may
# be found in the AUTHORS file in the root of the source tree.
{
  'includes': [
    'build/common.gypi',
    'audio/webrtc_audio.gypi',
    'call/webrtc_call.gypi',
    'video/webrtc_video.gypi',
  ],
  'targets': [
    {
      'target_name': 'webrtc',
      'type': 'static_library',
      'sources': [
        'audio_receive_stream.h',
        'audio_send_stream.h',
        'audio_state.h',
        'call.h',
        'config.h',
        'transport.h',
        'video_receive_stream.h',
        'video_send_stream.h',

        '<@(webrtc_audio_sources)',
        '<@(webrtc_call_sources)',
        '<@(webrtc_video_sources)',
      ],
      'dependencies': [
        'common.gyp:*',
        '<@(webrtc_audio_dependencies)',
        '<@(webrtc_call_dependencies)',
        '<@(webrtc_video_dependencies)',
        'rtc_event_log',
      ],
      'conditions': [
        # TODO(andresp): Chromium should link directly with this and no if
        # conditions should be needed on webrtc build files.
        ['build_with_chromium==1', {
          'dependencies': [
            '<(webrtc_root)/modules/modules.gyp:video_capture',
          ],
        }],
      ],
    },
    {
      'target_name': 'rtc_event_log',
      'type': 'static_library',
      'sources': [
        'call/rtc_event_log.cc',
        'call/rtc_event_log.h',
        'call/rtc_event_log_helper_thread.cc',
        'call/rtc_event_log_helper_thread.h',
      ],
      'conditions': [
        # If enable_protobuf is defined, we want to compile the protobuf
        # and add rtc_event_log.pb.h and rtc_event_log.pb.cc to the sources.
        ['enable_protobuf==1', {
          'dependencies': [
            'rtc_event_log_proto',
          ],
          'defines': [
            'ENABLE_RTC_EVENT_LOG',
          ],
        }],
      ],
    },
  ],  # targets
  'conditions': [
    ['include_tests==1', {
      'includes': [
        'webrtc_tests.gypi',
      ],
    }],
    ['enable_protobuf==1', {
      'targets': [
        {
          # This target should only be built if enable_protobuf is defined
          'target_name': 'rtc_event_log_proto',
          'type': 'static_library',
          'sources': ['call/rtc_event_log.proto',],
          'variables': {
            'proto_in_dir': 'call',
            'proto_out_dir': 'webrtc/call',
          },
          'includes': ['build/protoc.gypi'],
        },
        {
          'target_name': 'rtc_event_log_parser',
          'type': 'static_library',
          'sources': [
            'call/rtc_event_log_parser.cc',
            'call/rtc_event_log_parser.h',
          ],
          'dependencies': [
            'rtc_event_log_proto',
          ],
          'export_dependent_settings': [
            'rtc_event_log_proto',
          ],
        },
      ],
    }],
    ['include_tests==1 and enable_protobuf==1', {
      'targets': [
        {
          'target_name': 'rtc_event_log2rtp_dump',
          'type': 'executable',
          'sources': ['call/rtc_event_log2rtp_dump.cc',],
          'dependencies': [
            '<(DEPTH)/third_party/gflags/gflags.gyp:gflags',
            'rtc_event_log_parser',
            'rtc_event_log_proto',
            'test/test.gyp:rtp_test_utils'
          ],
        },
      ],
    }],
  ],  # conditions
}