# Copyright (c) 2016 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.

import("../../webrtc.gni")
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")

group("android") {
  if (!build_with_chromium && is_android) {
    public_deps = [
      ":libjingle_peerconnection_datachannelonly_so",
      ":libjingle_peerconnection_jni",
      ":libjingle_peerconnection_so",
      ":libwebrtc",
    ]
  }
}

config("libjingle_peerconnection_jni_warnings_config") {
  # The warnings below are enabled by default. Since GN orders compiler flags
  # for a target before flags from configs, the only way to disable such
  # warnings is by having them in a separate config, loaded from the target.
  if (!is_win) {
    cflags = [
      "-Wno-sign-compare",
      "-Wno-unused-variable",
    ]
  }
}

rtc_source_set("base_jni") {
  sources = [
    "src/jni/androidhistogram_jni.cc",
    "src/jni/classreferenceholder.cc",
    "src/jni/classreferenceholder.h",
    "src/jni/jni_common.cc",
    "src/jni/jni_helpers.cc",
    "src/jni/jni_helpers.h",
    "src/jni/pc/audio_jni.h",
    "src/jni/pc/media_jni.h",
    "src/jni/pc/video_jni.h",
  ]

  deps = [
    "../../api:libjingle_peerconnection_api",
    "../../rtc_base:rtc_base",
    "../../rtc_base:rtc_base_approved",
    "../../system_wrappers:metrics_api",
  ]

  if (is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [
      "//build/config/clang:extra_warnings",
      "//build/config/clang:find_bad_constructs",
    ]
  }
}

rtc_static_library("audio_jni") {
  sources = [
    "src/jni/pc/audio_jni.cc",
  ]

  deps = [
    ":base_jni",
    "../../api/audio_codecs:builtin_audio_decoder_factory",
    "../../api/audio_codecs:builtin_audio_encoder_factory",
    "../../voice_engine:voice_engine",
  ]
}

rtc_static_library("null_audio_jni") {
  sources = [
    "src/jni/pc/null_audio_jni.cc",
  ]

  deps = [
    ":base_jni",
  ]
}

rtc_static_library("video_jni") {
  sources = [
    "src/jni/androidmediacodeccommon.h",
    "src/jni/androidmediadecoder_jni.cc",
    "src/jni/androidmediadecoder_jni.h",
    "src/jni/androidmediaencoder_jni.cc",
    "src/jni/androidmediaencoder_jni.h",
    "src/jni/androidvideotracksource.cc",
    "src/jni/androidvideotracksource.h",
    "src/jni/androidvideotracksource_jni.cc",
    "src/jni/filevideocapturer_jni.cc",
    "src/jni/native_handle_impl.cc",
    "src/jni/native_handle_impl.h",
    "src/jni/nv12buffer_jni.cc",
    "src/jni/nv21buffer_jni.cc",
    "src/jni/pc/video_jni.cc",
    "src/jni/surfacetexturehelper_jni.cc",
    "src/jni/surfacetexturehelper_jni.h",
    "src/jni/video_renderer_jni.cc",
    "src/jni/videodecoderfactorywrapper.cc",
    "src/jni/videodecoderfactorywrapper.h",
    "src/jni/videodecoderwrapper.cc",
    "src/jni/videodecoderwrapper.h",
    "src/jni/videofilerenderer_jni.cc",
    "src/jni/videoframe_jni.cc",
    "src/jni/videotrack_jni.cc",
    "src/jni/wrapped_native_i420_buffer.cc",
    "src/jni/wrapped_native_i420_buffer.h",
  ]

  configs += [ ":libjingle_peerconnection_jni_warnings_config" ]

  if (is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [
      "//build/config/clang:extra_warnings",
      "//build/config/clang:find_bad_constructs",
    ]
  }

  # TODO(jschuh): Bug 1348: fix this warning.
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  if (is_win) {
    cflags += [
      "/wd4245",  # conversion from "int" to "size_t", signed/unsigned mismatch.
      "/wd4389",  # signed/unsigned mismatch.
    ]
  }

  deps = [
    ":base_jni",
    ":peerconnection_jni",
    "../..:webrtc_common",
    "../../api:libjingle_peerconnection_api",
    "../../api:video_frame_api",
    "../../api/video_codecs:video_codecs_api",
    "../../common_video:common_video",
    "../../media:rtc_audio_video",
    "../../media:rtc_media_base",
    "../../modules/utility:utility",
    "../../modules/video_coding:video_coding_utility",
    "../../rtc_base:rtc_base",
    "../../rtc_base:rtc_base_approved",
    "../../rtc_base:rtc_task_queue",
    "../../rtc_base:sequenced_task_checker",
    "../../rtc_base:weak_ptr",
    "../../system_wrappers:system_wrappers",
  ]

  if (rtc_build_libyuv) {
    deps += [ "$rtc_libyuv_dir" ]
    public_deps = [
      "$rtc_libyuv_dir",
    ]
  } else {
    # Need to add a directory normally exported by libyuv.
    include_dirs = [ "$rtc_libyuv_dir/include" ]
  }
}

rtc_static_library("null_video_jni") {
  sources = [
    "src/jni/pc/null_video_jni.cc",
  ]

  deps = [
    ":base_jni",
  ]
}

rtc_static_library("media_jni") {
  sources = [
    "src/jni/pc/media_jni.cc",
  ]

  deps = [
    ":base_jni",
    "../../call:call_interfaces",
    "../../logging:rtc_event_log_api",
    "../../media:rtc_audio_video",
    "../../modules/audio_processing:audio_processing",
  ]

  if (is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [
      "//build/config/clang:extra_warnings",
      "//build/config/clang:find_bad_constructs",
    ]
  }
}

rtc_static_library("null_media_jni") {
  sources = [
    "src/jni/pc/null_media_jni.cc",
  ]

  deps = [
    ":base_jni",
  ]
}

rtc_static_library("peerconnection_jni") {
  sources = [
    "src/jni/androidnetworkmonitor_jni.h",
    "src/jni/pc/androidnetworkmonitor_jni.cc",
    "src/jni/pc/androidnetworkmonitor_jni.h",
    "src/jni/pc/audiotrack_jni.cc",
    "src/jni/pc/callsessionfilerotatinglogsink_jni.cc",
    "src/jni/pc/datachannel_jni.cc",
    "src/jni/pc/datachannelobserver_jni.cc",
    "src/jni/pc/datachannelobserver_jni.h",
    "src/jni/pc/dtmfsender_jni.cc",
    "src/jni/pc/java_native_conversion.cc",
    "src/jni/pc/java_native_conversion.h",
    "src/jni/pc/logging_jni.cc",
    "src/jni/pc/mediaconstraints_jni.cc",
    "src/jni/pc/mediaconstraints_jni.h",
    "src/jni/pc/mediasource_jni.cc",
    "src/jni/pc/mediastream_jni.cc",
    "src/jni/pc/mediastreamtrack_jni.cc",
    "src/jni/pc/ownedfactoryandthreads.cc",
    "src/jni/pc/ownedfactoryandthreads.h",
    "src/jni/pc/peerconnection_jni.cc",
    "src/jni/pc/peerconnectionfactory_jni.cc",
    "src/jni/pc/peerconnectionobserver_jni.cc",
    "src/jni/pc/peerconnectionobserver_jni.h",
    "src/jni/pc/rtcstatscollectorcallbackwrapper.cc",
    "src/jni/pc/rtcstatscollectorcallbackwrapper.h",
    "src/jni/pc/rtpreceiver_jni.cc",
    "src/jni/pc/rtpreceiverobserver_jni.cc",
    "src/jni/pc/rtpreceiverobserver_jni.h",
    "src/jni/pc/rtpsender_jni.cc",
    "src/jni/pc/sdpobserver_jni.h",
    "src/jni/pc/statsobserver_jni.cc",
    "src/jni/pc/statsobserver_jni.h",
  ]

  configs += [ ":libjingle_peerconnection_jni_warnings_config" ]

  if (is_clang) {
    # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
    suppressed_configs += [
      "//build/config/clang:extra_warnings",
      "//build/config/clang:find_bad_constructs",
    ]
  }

  # TODO(jschuh): Bug 1348: fix this warning.
  configs += [ "//build/config/compiler:no_size_t_to_int_warning" ]

  if (is_win) {
    cflags += [
      "/wd4245",  # conversion from "int" to "size_t", signed/unsigned mismatch.
      "/wd4389",  # signed/unsigned mismatch.
    ]
  }

  deps = [
    ":base_jni",
    "../..:webrtc_common",
    "../../media:rtc_data",
    "../../media:rtc_media_base",
    "../../modules/utility:utility",
    "../../pc:peerconnection",
    "../../rtc_base:rtc_base",
    "../../rtc_base:rtc_base_approved",
    "../../rtc_base:rtc_task_queue",
    "../../system_wrappers:system_wrappers",
  ]
}

rtc_static_library("libjingle_peerconnection_jni") {
  public_deps = [
    ":audio_jni",
    ":base_jni",
    ":media_jni",
    ":peerconnection_jni",
    ":video_jni",
    "../../pc:create_pc_factory",
  ]
}

rtc_static_library("libjingle_peerconnection_metrics_default_jni") {
  sources = [
    "src/jni/androidmetrics_jni.cc",
  ]

  configs += [ ":libjingle_peerconnection_jni_warnings_config" ]

  deps = [
    ":base_jni",
    ":peerconnection_jni",
    "../../pc:peerconnection",
    "../../system_wrappers",
    "../../system_wrappers:field_trial_default",
    "../../system_wrappers:metrics_default",
  ]
}

# The modular build targets can be used to build WebRTC with different
# functionalities. The users can choose either the real implemenation or the
# null implementation of the audio/video modules based on their requirments.
rtc_shared_library("libjingle_peerconnection_datachannelonly_so") {
  sources = [
    "src/jni/jni_onload.cc",
  ]

  suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
  configs += [ "//build/config/android:hide_all_but_jni" ]

  deps = [
    ":base_jni",
    ":libjingle_peerconnection_metrics_default_jni",
    ":null_audio_jni",
    ":null_media_jni",
    ":null_video_jni",
    ":peerconnection_jni",
    "../../pc:peerconnection",
    "../../rtc_base:rtc_base",
    "../../rtc_base:rtc_base_approved",
  ]
  output_extension = "so"
}

rtc_shared_library("libjingle_peerconnection_so") {
  sources = [
    "src/jni/jni_onload.cc",
  ]

  suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
  configs += [ "//build/config/android:hide_all_but_jni" ]

  deps = [
    ":libjingle_peerconnection_jni",
    ":libjingle_peerconnection_metrics_default_jni",
    "../../pc:libjingle_peerconnection",
    "../../rtc_base:rtc_base",
  ]
  output_extension = "so"
}

dist_jar("libwebrtc") {
  _target_dir_name = get_label_info(":$target_name", "dir")
  output = "${root_out_dir}/lib.java${_target_dir_name}/${target_name}.jar"
  direct_deps_only = true
  use_interface_jars = false
  deps = [
    ":libjingle_peerconnection_java",
    ":libjingle_peerconnection_metrics_default_java",
    "../../modules/audio_device:audio_device_java",
    "../../rtc_base:base_java",
  ]
}

android_library("libjingle_peerconnection_java") {
  java_files = [
    "api/org/webrtc/AudioSource.java",
    "api/org/webrtc/AudioTrack.java",
    "api/org/webrtc/CallSessionFileRotatingLogSink.java",
    "api/org/webrtc/Camera1Capturer.java",
    "api/org/webrtc/Camera1Enumerator.java",
    "api/org/webrtc/Camera2Capturer.java",
    "api/org/webrtc/Camera2Enumerator.java",
    "api/org/webrtc/CameraEnumerationAndroid.java",
    "api/org/webrtc/CameraEnumerator.java",
    "api/org/webrtc/CameraVideoCapturer.java",
    "api/org/webrtc/DataChannel.java",
    "api/org/webrtc/DtmfSender.java",
    "api/org/webrtc/EglBase.java",
    "api/org/webrtc/EglRenderer.java",
    "api/org/webrtc/EncodedImage.java",
    "api/org/webrtc/FileVideoCapturer.java",
    "api/org/webrtc/GlRectDrawer.java",
    "api/org/webrtc/GlShader.java",
    "api/org/webrtc/GlTextureFrameBuffer.java",
    "api/org/webrtc/GlUtil.java",
    "api/org/webrtc/HardwareVideoDecoderFactory.java",
    "api/org/webrtc/HardwareVideoEncoderFactory.java",
    "api/org/webrtc/IceCandidate.java",
    "api/org/webrtc/MediaCodecVideoDecoder.java",
    "api/org/webrtc/MediaCodecVideoEncoder.java",
    "api/org/webrtc/MediaConstraints.java",
    "api/org/webrtc/MediaSource.java",
    "api/org/webrtc/MediaStream.java",
    "api/org/webrtc/MediaStreamTrack.java",
    "api/org/webrtc/NetworkMonitor.java",
    "api/org/webrtc/NetworkMonitorAutoDetect.java",
    "api/org/webrtc/PeerConnection.java",
    "api/org/webrtc/PeerConnectionFactory.java",
    "api/org/webrtc/RendererCommon.java",
    "api/org/webrtc/RTCStats.java",
    "api/org/webrtc/RTCStatsCollectorCallback.java",
    "api/org/webrtc/RTCStatsReport.java",
    "api/org/webrtc/RtpParameters.java",
    "api/org/webrtc/RtpReceiver.java",
    "api/org/webrtc/RtpSender.java",
    "api/org/webrtc/ScreenCapturerAndroid.java",
    "api/org/webrtc/SdpObserver.java",
    "api/org/webrtc/SessionDescription.java",
    "api/org/webrtc/StatsObserver.java",
    "api/org/webrtc/StatsReport.java",
    "api/org/webrtc/SurfaceTextureHelper.java",
    "api/org/webrtc/SurfaceViewRenderer.java",
    "api/org/webrtc/VideoCapturer.java",
    "api/org/webrtc/VideoCodecInfo.java",
    "api/org/webrtc/VideoCodecStatus.java",
    "api/org/webrtc/VideoDecoder.java",
    "api/org/webrtc/VideoDecoderFactory.java",
    "api/org/webrtc/VideoEncoder.java",
    "api/org/webrtc/VideoEncoderFactory.java",
    "api/org/webrtc/VideoFileRenderer.java",
    "api/org/webrtc/VideoFrame.java",
    "api/org/webrtc/VideoRenderer.java",
    "api/org/webrtc/VideoSink.java",
    "api/org/webrtc/VideoSource.java",
    "api/org/webrtc/VideoTrack.java",
    "src/java/org/webrtc/AndroidVideoTrackSourceObserver.java",
    "src/java/org/webrtc/BaseBitrateAdjuster.java",
    "src/java/org/webrtc/BitrateAdjuster.java",
    "src/java/org/webrtc/Camera1Session.java",
    "src/java/org/webrtc/Camera2Session.java",
    "src/java/org/webrtc/CameraCapturer.java",
    "src/java/org/webrtc/CameraSession.java",
    "src/java/org/webrtc/DynamicBitrateAdjuster.java",
    "src/java/org/webrtc/EglBase10.java",
    "src/java/org/webrtc/EglBase14.java",
    "src/java/org/webrtc/FramerateBitrateAdjuster.java",
    "src/java/org/webrtc/HardwareVideoDecoder.java",
    "src/java/org/webrtc/HardwareVideoEncoder.java",
    "src/java/org/webrtc/Histogram.java",
    "src/java/org/webrtc/I420BufferImpl.java",
    "src/java/org/webrtc/JniCommon.java",
    "src/java/org/webrtc/MediaCodecUtils.java",
    "src/java/org/webrtc/NV12Buffer.java",
    "src/java/org/webrtc/NV21Buffer.java",
    "src/java/org/webrtc/TextureBufferImpl.java",
    "src/java/org/webrtc/VideoCodecType.java",
    "src/java/org/webrtc/VideoDecoderWrapperCallback.java",
    "src/java/org/webrtc/WrappedNativeI420Buffer.java",
    "src/java/org/webrtc/YuvConverter.java",
  ]

  deps = [
    "../../modules/audio_device:audio_device_java",
    "../../rtc_base:base_java",
  ]

  # TODO(sakal): Fix build hooks crbug.com/webrtc/8148
  no_build_hooks = true
}

android_library("libjingle_peerconnection_metrics_default_java") {
  java_files = [ "api/org/webrtc/Metrics.java" ]

  deps = [
    "../../rtc_base:base_java",
  ]

  # TODO(sakal): Fix build hooks crbug.com/webrtc/8148
  no_build_hooks = true
}

if (rtc_include_tests) {
  instrumentation_test_apk("libjingle_peerconnection_android_unittest") {
    apk_name = "libjingle_peerconnection_android_unittest"
    android_manifest = "instrumentationtests/AndroidManifest.xml"

    java_files = [
      "instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java",
      "instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java",
      "instrumentationtests/src/org/webrtc/Camera2CapturerTest.java",
      "instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java",
      "instrumentationtests/src/org/webrtc/EglRendererTest.java",
      "instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java",
      "instrumentationtests/src/org/webrtc/GlRectDrawerTest.java",
      "instrumentationtests/src/org/webrtc/HardwareVideoEncoderTest.java",
      "instrumentationtests/src/org/webrtc/HardwareVideoDecoderTest.java",
      "instrumentationtests/src/org/webrtc/MediaCodecVideoEncoderTest.java",
      "instrumentationtests/src/org/webrtc/NetworkMonitorTest.java",
      "instrumentationtests/src/org/webrtc/PeerConnectionTest.java",
      "instrumentationtests/src/org/webrtc/RendererCommonTest.java",
      "instrumentationtests/src/org/webrtc/SurfaceTextureHelperTest.java",
      "instrumentationtests/src/org/webrtc/SurfaceViewRendererOnMeasureTest.java",
      "instrumentationtests/src/org/webrtc/VideoFileRendererTest.java",
      "instrumentationtests/src/org/webrtc/WebRtcJniBootTest.java",
    ]

    data = [
      "../../sdk/android/instrumentationtests/src/org/webrtc/capturetestvideo.y4m",
    ]

    deps = [
      "../../rtc_base:base_java",
      "../../sdk/android:libjingle_peerconnection_java",
      "../../sdk/android:libjingle_peerconnection_metrics_default_java",
      "//base:base_java",
      "//base:base_java_test_support",
      "//third_party/android_support_test_runner:rules_java",
      "//third_party/android_support_test_runner:runner_java",
      "//third_party/junit",
    ]

    shared_libraries = [ "../../sdk/android:libjingle_peerconnection_so" ]

    # TODO(sakal): Fix build hooks crbug.com/webrtc/8148
    no_build_hooks = true
  }
}
