1# Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. 2# 3# Use of this source code is governed by a BSD-style license 4# that can be found in the LICENSE file in the root of the source 5# tree. An additional intellectual property rights grant can be found 6# in the file PATENTS. All contributing project authors may 7# be found in the AUTHORS file in the root of the source tree. 8 9import("//webrtc/build/webrtc.gni") 10import("//build/config/android/config.gni") 11import("//build/config/android/rules.gni") 12 13config("libjingle_peerconnection_jni_warnings_config") { 14 # The warnings below are enabled by default. Since GN orders compiler flags 15 # for a target before flags from configs, the only way to disable such 16 # warnings is by having them in a separate config, loaded from the target. 17 if (!is_win) { 18 cflags = [ 19 "-Wno-sign-compare", 20 "-Wno-unused-variable", 21 ] 22 } 23} 24 25rtc_static_library("libjingle_peerconnection_jni") { 26 sources = [ 27 "src/jni/androidhistogram_jni.cc", 28 "src/jni/androidmediacodeccommon.h", 29 "src/jni/androidmediadecoder_jni.cc", 30 "src/jni/androidmediadecoder_jni.h", 31 "src/jni/androidmediaencoder_jni.cc", 32 "src/jni/androidmediaencoder_jni.h", 33 "src/jni/androidnetworkmonitor_jni.cc", 34 "src/jni/androidnetworkmonitor_jni.h", 35 "src/jni/androidvideotracksource.cc", 36 "src/jni/androidvideotracksource.h", 37 "src/jni/androidvideotracksource_jni.cc", 38 "src/jni/classreferenceholder.cc", 39 "src/jni/classreferenceholder.h", 40 "src/jni/jni_helpers.cc", 41 "src/jni/jni_helpers.h", 42 "src/jni/native_handle_impl.cc", 43 "src/jni/native_handle_impl.h", 44 "src/jni/peerconnection_jni.cc", 45 "src/jni/surfacetexturehelper_jni.cc", 46 "src/jni/surfacetexturehelper_jni.h", 47 ] 48 49 configs += [ ":libjingle_peerconnection_jni_warnings_config" ] 50 51 if (is_clang) { 52 # Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). 53 suppressed_configs += [ 54 "//build/config/clang:extra_warnings", 55 "//build/config/clang:find_bad_constructs", 56 ] 57 } 58 59 # TODO(jschuh): Bug 1348: fix this warning. 60 configs += [ "//build/config/compiler:no_size_t_to_int_warning" ] 61 62 if (is_win) { 63 cflags += [ 64 "/wd4245", # conversion from "int" to "size_t", signed/unsigned mismatch. 65 "/wd4389", # signed/unsigned mismatch. 66 ] 67 } 68 69 deps = [ 70 "//webrtc/api:libjingle_peerconnection", 71 ] 72 73 if (rtc_build_libyuv) { 74 deps += [ "$rtc_libyuv_dir" ] 75 public_deps = [ 76 "$rtc_libyuv_dir", 77 ] 78 } else { 79 # Need to add a directory normally exported by libyuv. 80 include_dirs = [ "$rtc_libyuv_dir/include" ] 81 } 82} 83 84rtc_static_library("libjingle_peerconnection_metrics_default_jni") { 85 sources = [ 86 "src/jni/androidmetrics_jni.cc", 87 ] 88 89 configs += [ ":libjingle_peerconnection_jni_warnings_config" ] 90 91 deps = [ 92 "//webrtc/api:libjingle_peerconnection", 93 "//webrtc/system_wrappers:field_trial_default", 94 "//webrtc/system_wrappers:metrics_default", 95 ] 96} 97 98rtc_shared_library("libjingle_peerconnection_so") { 99 sources = [ 100 "src/jni/jni_onload.cc", 101 ] 102 103 suppressed_configs += [ "//build/config/android:hide_native_jni_exports" ] 104 105 deps = [ 106 ":libjingle_peerconnection_jni", 107 ":libjingle_peerconnection_metrics_default_jni", 108 "//webrtc/api:libjingle_peerconnection", 109 ] 110 output_extension = "so" 111} 112 113android_library("libjingle_peerconnection_java") { 114 java_files = [ 115 "api/org/webrtc/AudioSource.java", 116 "api/org/webrtc/AudioTrack.java", 117 "api/org/webrtc/CallSessionFileRotatingLogSink.java", 118 "api/org/webrtc/Camera1Capturer.java", 119 "api/org/webrtc/Camera1Enumerator.java", 120 "api/org/webrtc/Camera1Session.java", 121 "api/org/webrtc/Camera2Capturer.java", 122 "api/org/webrtc/Camera2Enumerator.java", 123 "api/org/webrtc/Camera2Session.java", 124 "api/org/webrtc/CameraCapturer.java", 125 "api/org/webrtc/CameraEnumerationAndroid.java", 126 "api/org/webrtc/CameraEnumerator.java", 127 "api/org/webrtc/CameraSession.java", 128 "api/org/webrtc/CameraVideoCapturer.java", 129 "api/org/webrtc/DataChannel.java", 130 "api/org/webrtc/EglBase.java", 131 "api/org/webrtc/EglBase10.java", 132 "api/org/webrtc/EglBase14.java", 133 "api/org/webrtc/EglRenderer.java", 134 "api/org/webrtc/FileVideoCapturer.java", 135 "api/org/webrtc/GlRectDrawer.java", 136 "api/org/webrtc/GlShader.java", 137 "api/org/webrtc/GlTextureFrameBuffer.java", 138 "api/org/webrtc/GlUtil.java", 139 "api/org/webrtc/Histogram.java", 140 "api/org/webrtc/IceCandidate.java", 141 "api/org/webrtc/MediaCodecVideoDecoder.java", 142 "api/org/webrtc/MediaCodecVideoEncoder.java", 143 "api/org/webrtc/MediaConstraints.java", 144 "api/org/webrtc/MediaSource.java", 145 "api/org/webrtc/MediaStream.java", 146 "api/org/webrtc/MediaStreamTrack.java", 147 "api/org/webrtc/NetworkMonitor.java", 148 "api/org/webrtc/NetworkMonitorAutoDetect.java", 149 "api/org/webrtc/PeerConnection.java", 150 "api/org/webrtc/PeerConnectionFactory.java", 151 "api/org/webrtc/RendererCommon.java", 152 "api/org/webrtc/RtpParameters.java", 153 "api/org/webrtc/RtpReceiver.java", 154 "api/org/webrtc/RtpSender.java", 155 "api/org/webrtc/ScreenCapturerAndroid.java", 156 "api/org/webrtc/SdpObserver.java", 157 "api/org/webrtc/SessionDescription.java", 158 "api/org/webrtc/StatsObserver.java", 159 "api/org/webrtc/StatsReport.java", 160 "api/org/webrtc/SurfaceTextureHelper.java", 161 "api/org/webrtc/SurfaceViewRenderer.java", 162 "api/org/webrtc/VideoCapturer.java", 163 "api/org/webrtc/VideoCapturerAndroid.java", 164 "api/org/webrtc/VideoFileRenderer.java", 165 "api/org/webrtc/VideoRenderer.java", 166 "api/org/webrtc/VideoRendererGui.java", 167 "api/org/webrtc/VideoSource.java", 168 "api/org/webrtc/VideoTrack.java", 169 "api/org/webrtc/YuvConverter.java", 170 ] 171 172 deps = [ 173 "//webrtc/base:base_java", 174 ] 175 176 srcjar_deps = [ "//webrtc/modules/audio_device:audio_device_java" ] 177} 178 179android_library("libjingle_peerconnection_metrics_default_java") { 180 java_files = [ "api/org/webrtc/Metrics.java" ] 181 182 deps = [ 183 "//webrtc/base:base_java", 184 ] 185} 186 187if (rtc_include_tests) { 188 instrumentation_test_apk("libjingle_peerconnection_android_unittest") { 189 apk_name = "libjingle_peerconnection_android_unittest" 190 android_manifest = "instrumentationtests/AndroidManifest.xml" 191 192 java_files = [ 193 "instrumentationtests/src/org/webrtc/Camera1CapturerUsingByteBufferTest.java", 194 "instrumentationtests/src/org/webrtc/Camera1CapturerUsingTextureTest.java", 195 "instrumentationtests/src/org/webrtc/Camera2CapturerTest.java", 196 "instrumentationtests/src/org/webrtc/CameraVideoCapturerTestFixtures.java", 197 "instrumentationtests/src/org/webrtc/EglRendererTest.java", 198 "instrumentationtests/src/org/webrtc/FileVideoCapturerTest.java", 199 "instrumentationtests/src/org/webrtc/GlRectDrawerTest.java", 200 "instrumentationtests/src/org/webrtc/MediaCodecVideoEncoderTest.java", 201 "instrumentationtests/src/org/webrtc/NetworkMonitorTest.java", 202 "instrumentationtests/src/org/webrtc/PeerConnectionTest.java", 203 "instrumentationtests/src/org/webrtc/RendererCommonTest.java", 204 "instrumentationtests/src/org/webrtc/SurfaceTextureHelperTest.java", 205 "instrumentationtests/src/org/webrtc/SurfaceViewRendererOnMeasureTest.java", 206 "instrumentationtests/src/org/webrtc/VideoFileRendererTest.java", 207 "instrumentationtests/src/org/webrtc/WebRtcJniBootTest.java", 208 ] 209 210 data = [ 211 "//webrtc/sdk/android/instrumentationtests/src/org/webrtc/capturetestvideo.y4m", 212 ] 213 214 deps = [ 215 "//base:base_java", 216 "//base:base_java_test_support", 217 "//third_party/android_support_test_runner:rules_java", 218 "//third_party/android_support_test_runner:runner_java", 219 "//third_party/junit", 220 "//webrtc/base:base_java", 221 "//webrtc/sdk/android:libjingle_peerconnection_java", 222 "//webrtc/sdk/android:libjingle_peerconnection_metrics_default_java", 223 ] 224 225 shared_libraries = [ "//webrtc/sdk/android:libjingle_peerconnection_so" ] 226 } 227} 228