webrtc/examples/BUILD.gn
Anders Carlsson dd8c16574e Enable building WebRTC without built-in software codecs
This CL adds a GN build flag to include builtin software codecs
(enabled by default).

When setting the flag to false, libvpx can also be excluded. The
benefit is that the resulting binary is smaller.

Replaces https://webrtc-review.googlesource.com/c/src/+/29203

Bug: webrtc:7925
Change-Id: Id330ea8a43169e449ee139eca18e4557cc932e10
Reviewed-on: https://webrtc-review.googlesource.com/36340
Commit-Queue: Anders Carlsson <andersc@webrtc.org>
Reviewed-by: Patrik Höglund <phoglund@webrtc.org>
Reviewed-by: Taylor Brandstetter <deadbeef@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Magnus Jedvert <magjed@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#21818}
2018-01-31 08:33:59 +00:00

767 lines
24 KiB
Text

# 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")
if (is_android) {
import("//build/config/android/config.gni")
import("//build/config/android/rules.gni")
} else if (is_mac) {
import("//build/config/mac/rules.gni")
} else if (is_ios) {
import("//build/config/ios/rules.gni")
}
group("examples") {
# This target shall build all targets in examples.
testonly = true
deps = []
if (is_android) {
deps += [
":AppRTCMobile",
":AppRTCMobileTest",
":AppRTCMobileTestStubbedVideoIO",
]
}
if (!build_with_chromium) {
deps += [ ":stun_prober" ]
}
if (is_ios || (is_mac && target_cpu != "x86")) {
deps += [ ":AppRTCMobile" ]
}
if (is_linux || is_win) {
deps += [
":peerconnection_client",
":peerconnection_server",
":relayserver",
":stunserver",
":turnserver",
]
}
}
if (is_android) {
rtc_android_apk("AppRTCMobile") {
testonly = true
apk_name = "AppRTCMobile"
android_manifest = "androidapp/AndroidManifest.xml"
deps = [
":AppRTCMobile_javalib",
":AppRTCMobile_resources",
"../rtc_base:base_java",
"//base:base_java",
]
shared_libraries = [ "../sdk/android:libjingle_peerconnection_so" ]
}
rtc_android_library("AppRTCMobile_javalib") {
testonly = true
android_manifest_for_lint = "androidapp/AndroidManifest.xml"
java_files = [
"androidapp/src/org/appspot/apprtc/AppRTCAudioManager.java",
"androidapp/src/org/appspot/apprtc/AppRTCBluetoothManager.java",
"androidapp/src/org/appspot/apprtc/AppRTCClient.java",
"androidapp/src/org/appspot/apprtc/AppRTCProximitySensor.java",
"androidapp/src/org/appspot/apprtc/CallActivity.java",
"androidapp/src/org/appspot/apprtc/CallFragment.java",
"androidapp/src/org/appspot/apprtc/CaptureQualityController.java",
"androidapp/src/org/appspot/apprtc/ConnectActivity.java",
"androidapp/src/org/appspot/apprtc/CpuMonitor.java",
"androidapp/src/org/appspot/apprtc/DirectRTCClient.java",
"androidapp/src/org/appspot/apprtc/HudFragment.java",
"androidapp/src/org/appspot/apprtc/PeerConnectionClient.java",
"androidapp/src/org/appspot/apprtc/RoomParametersFetcher.java",
"androidapp/src/org/appspot/apprtc/SettingsActivity.java",
"androidapp/src/org/appspot/apprtc/SettingsFragment.java",
"androidapp/src/org/appspot/apprtc/TCPChannelClient.java",
"androidapp/src/org/appspot/apprtc/UnhandledExceptionHandler.java",
"androidapp/src/org/appspot/apprtc/WebSocketChannelClient.java",
"androidapp/src/org/appspot/apprtc/WebSocketRTCClient.java",
"androidapp/src/org/appspot/apprtc/util/AppRTCUtils.java",
"androidapp/src/org/appspot/apprtc/util/AsyncHttpURLConnection.java",
]
deps = [
":AppRTCMobile_resources",
"../modules/audio_device:audio_device_java",
"../rtc_base:base_java",
"../sdk/android:libjingle_peerconnection_java",
"../sdk/android:libjingle_peerconnection_metrics_default_java",
"androidapp/third_party/autobanh:autobanh_java",
]
}
android_resources("AppRTCMobile_resources") {
testonly = true
resource_dirs = [ "androidapp/res" ]
custom_package = "org.appspot.apprtc"
}
rtc_instrumentation_test_apk("AppRTCMobileTest") {
apk_name = "AppRTCMobileTest"
android_manifest = "androidtests/AndroidManifest.xml"
java_files = [
"androidtests/src/org/appspot/apprtc/test/PeerConnectionClientTest.java",
]
apk_under_test = ":AppRTCMobile"
deps = [
":AppRTCMobile_javalib",
"../sdk/android:libjingle_peerconnection_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/junit",
]
}
rtc_instrumentation_test_apk("AppRTCMobileTestStubbedVideoIO") {
apk_name = "AppRTCMobileTestStubbedVideoIO"
android_manifest = "androidtests/AndroidManifest.xml"
java_files = [ "androidtests/src/org/appspot/apprtc/test/CallActivityStubbedInputOutputTest.java" ]
apk_under_test = ":AppRTCMobile"
deps = [
":AppRTCMobile_javalib",
"../sdk/android:libjingle_peerconnection_java",
"//third_party/android_support_test_runner:rules_java",
"//third_party/android_support_test_runner:runner_java",
"//third_party/espresso:espresso_all_java",
"//third_party/hamcrest:hamcrest_java",
"//third_party/junit",
]
data = [
"../build/android/adb_reverse_forwarder.py",
"../examples/androidtests/video_quality_loopback_test.py",
"../resources/reference_video_640x360_30fps.y4m",
"../rtc_tools/barcode_tools/barcode_decoder.py",
"../rtc_tools/barcode_tools/helper_functions.py",
"../rtc_tools/compare_videos.py",
"../rtc_tools/testing/prebuilt_apprtc.zip",
"../rtc_tools/testing/golang/linux/go.tar.gz",
"../rtc_tools/testing/build_apprtc.py",
"../rtc_tools/testing/utils.py",
"../tools_webrtc/video_quality_toolchain/linux/ffmpeg",
"../tools_webrtc/video_quality_toolchain/linux/frame_analyzer",
"../tools_webrtc/video_quality_toolchain/linux/zxing",
]
}
}
if (is_ios || (is_mac && target_cpu != "x86")) {
config("apprtc_common_config") {
include_dirs = [ "objc/AppRTCMobile/common" ]
}
rtc_static_library("apprtc_common") {
testonly = true
sources = [
"objc/AppRTCMobile/common/ARDUtilities.h",
"objc/AppRTCMobile/common/ARDUtilities.m",
]
public_configs = [ ":apprtc_common_config" ]
if (is_ios) {
deps = [
":AppRTCMobile_ios_frameworks",
"../sdk:common_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:runtime_enabled_features_default",
]
} else {
deps = [
"../sdk:common_objc",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
}
}
config("apprtc_signaling_config") {
include_dirs = [ "objc/AppRTCMobile" ]
# GN orders flags on a target before flags from configs. The default config
# adds these flags so to cancel them out they need to come from a config and
# cannot be on the target directly.
cflags = [
"-Wno-sign-compare",
"-Wno-unused-variable",
]
}
rtc_static_library("apprtc_signaling") {
testonly = true
sources = [
"objc/AppRTCMobile/ARDAppClient+Internal.h",
"objc/AppRTCMobile/ARDAppClient.h",
"objc/AppRTCMobile/ARDAppClient.m",
"objc/AppRTCMobile/ARDAppEngineClient.h",
"objc/AppRTCMobile/ARDAppEngineClient.m",
"objc/AppRTCMobile/ARDBitrateTracker.h",
"objc/AppRTCMobile/ARDBitrateTracker.m",
"objc/AppRTCMobile/ARDCaptureController.h",
"objc/AppRTCMobile/ARDCaptureController.m",
"objc/AppRTCMobile/ARDJoinResponse+Internal.h",
"objc/AppRTCMobile/ARDJoinResponse.h",
"objc/AppRTCMobile/ARDJoinResponse.m",
"objc/AppRTCMobile/ARDMessageResponse+Internal.h",
"objc/AppRTCMobile/ARDMessageResponse.h",
"objc/AppRTCMobile/ARDMessageResponse.m",
"objc/AppRTCMobile/ARDRoomServerClient.h",
"objc/AppRTCMobile/ARDSettingsModel+Private.h",
"objc/AppRTCMobile/ARDSettingsModel.h",
"objc/AppRTCMobile/ARDSettingsModel.m",
"objc/AppRTCMobile/ARDSettingsStore.h",
"objc/AppRTCMobile/ARDSettingsStore.m",
"objc/AppRTCMobile/ARDSignalingChannel.h",
"objc/AppRTCMobile/ARDSignalingMessage.h",
"objc/AppRTCMobile/ARDSignalingMessage.m",
"objc/AppRTCMobile/ARDStatsBuilder.h",
"objc/AppRTCMobile/ARDStatsBuilder.m",
"objc/AppRTCMobile/ARDTURNClient+Internal.h",
"objc/AppRTCMobile/ARDTURNClient.h",
"objc/AppRTCMobile/ARDTURNClient.m",
"objc/AppRTCMobile/ARDWebSocketChannel.h",
"objc/AppRTCMobile/ARDWebSocketChannel.m",
"objc/AppRTCMobile/RTCIceCandidate+JSON.h",
"objc/AppRTCMobile/RTCIceCandidate+JSON.m",
"objc/AppRTCMobile/RTCIceServer+JSON.h",
"objc/AppRTCMobile/RTCIceServer+JSON.m",
"objc/AppRTCMobile/RTCMediaConstraints+JSON.h",
"objc/AppRTCMobile/RTCMediaConstraints+JSON.m",
"objc/AppRTCMobile/RTCSessionDescription+JSON.h",
"objc/AppRTCMobile/RTCSessionDescription+JSON.m",
]
public_configs = [ ":apprtc_signaling_config" ]
deps = [
":apprtc_common",
":socketrocket",
]
if (is_ios) {
deps += [
":AppRTCMobile_ios_frameworks",
"../sdk:framework_objc",
]
} else {
deps += [ "../sdk:peerconnection_objc" ]
}
libs = [ "QuartzCore.framework" ]
}
if (is_ios) {
rtc_static_library("AppRTCMobile_lib") {
testonly = true
sources = [
"objc/AppRTCMobile/ios/ARDAppDelegate.h",
"objc/AppRTCMobile/ios/ARDAppDelegate.m",
"objc/AppRTCMobile/ios/ARDFileCaptureController.h",
"objc/AppRTCMobile/ios/ARDFileCaptureController.m",
"objc/AppRTCMobile/ios/ARDMainView.h",
"objc/AppRTCMobile/ios/ARDMainView.m",
"objc/AppRTCMobile/ios/ARDMainViewController.h",
"objc/AppRTCMobile/ios/ARDMainViewController.m",
"objc/AppRTCMobile/ios/ARDSettingsViewController.h",
"objc/AppRTCMobile/ios/ARDSettingsViewController.m",
"objc/AppRTCMobile/ios/ARDStatsView.h",
"objc/AppRTCMobile/ios/ARDStatsView.m",
"objc/AppRTCMobile/ios/ARDVideoCallView.h",
"objc/AppRTCMobile/ios/ARDVideoCallView.m",
"objc/AppRTCMobile/ios/ARDVideoCallViewController.h",
"objc/AppRTCMobile/ios/ARDVideoCallViewController.m",
"objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.h",
"objc/AppRTCMobile/ios/RTCVideoCodecInfo+HumanReadable.m",
"objc/AppRTCMobile/ios/UIImage+ARDUtilities.h",
"objc/AppRTCMobile/ios/UIImage+ARDUtilities.m",
]
deps = [
":AppRTCMobile_ios_frameworks",
":apprtc_common",
":apprtc_signaling",
"../sdk:framework_objc",
]
}
ios_app_bundle("AppRTCMobile") {
testonly = true
sources = [
"objc/AppRTCMobile/ios/main.m",
]
info_plist = "objc/AppRTCMobile/ios/Info.plist"
configs += [ "..:common_config" ]
public_configs = [ "..:common_inherited_config" ]
deps = [
":AppRTCMobile_ios_bundle_data",
":AppRTCMobile_ios_frameworks",
":AppRTCMobile_lib",
"../sdk:framework_objc",
]
if (target_cpu == "x86") {
deps += [ "//testing/iossim:iossim" ]
}
}
bundle_data("AppRTCMobile_ios_frameworks") {
deps = [
"../sdk:framework_objc+link",
]
sources = [
"$root_build_dir/WebRTC.framework",
]
outputs = [
"{{bundle_resources_dir}}/Frameworks/{{source_file_part}}",
]
}
bundle_data("AppRTCMobile_ios_bundle_data") {
sources = [
"objc/AppRTCMobile/ios/resources/Roboto-Regular.ttf",
# Sample video taken from https://media.xiph.org/video/derf/
"objc/AppRTCMobile/ios/resources/foreman.mp4",
"objc/AppRTCMobile/ios/resources/iPhone5@2x.png",
"objc/AppRTCMobile/ios/resources/iPhone6@2x.png",
"objc/AppRTCMobile/ios/resources/iPhone6p@3x.png",
"objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp.png",
"objc/AppRTCMobile/ios/resources/ic_call_end_black_24dp@2x.png",
"objc/AppRTCMobile/ios/resources/ic_clear_black_24dp.png",
"objc/AppRTCMobile/ios/resources/ic_clear_black_24dp@2x.png",
"objc/AppRTCMobile/ios/resources/ic_settings_black_24dp.png",
"objc/AppRTCMobile/ios/resources/ic_settings_black_24dp@2x.png",
"objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp.png",
"objc/AppRTCMobile/ios/resources/ic_surround_sound_black_24dp@2x.png",
"objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp.png",
"objc/AppRTCMobile/ios/resources/ic_switch_video_black_24dp@2x.png",
"objc/AppRTCMobile/ios/resources/mozart.mp3",
"objc/Icon-120.png",
"objc/Icon-180.png",
"objc/Icon.png",
]
outputs = [
"{{bundle_resources_dir}}/{{source_file_part}}",
]
}
}
if (is_mac) {
rtc_static_library("AppRTCMobile_lib") {
testonly = true
sources = [
"objc/AppRTCMobile/mac/APPRTCAppDelegate.h",
"objc/AppRTCMobile/mac/APPRTCAppDelegate.m",
"objc/AppRTCMobile/mac/APPRTCViewController.h",
"objc/AppRTCMobile/mac/APPRTCViewController.m",
]
configs += [ "..:common_objc" ]
deps = [
":apprtc_common",
":apprtc_signaling",
"../sdk:metal_objc",
"../sdk:ui_objc",
]
}
mac_app_bundle("AppRTCMobile") {
testonly = true
output_name = "AppRTCMobile"
sources = [
"objc/AppRTCMobile/mac/main.m",
]
public_configs = [ "..:common_inherited_config" ]
info_plist = "objc/AppRTCMobile/mac/Info.plist"
libs = [ "AppKit.framework" ]
deps = [
":AppRTCMobile_lib",
]
}
}
config("socketrocket_include_config") {
include_dirs = [ "objc/AppRTCMobile/third_party/SocketRocket" ]
}
config("socketrocket_warning_config") {
# GN orders flags on a target before flags from configs. The default config
# adds these flags so to cancel them out they need to come from a config and
# cannot be on the target directly.
cflags = [
"-Wno-deprecated-declarations",
"-Wno-nonnull",
"-Wno-semicolon-before-method-body",
"-Wno-unused-variable",
]
cflags_objc = [
# Enabled for cflags_objc in build/config/compiler/BUILD.gn.
"-Wno-objc-missing-property-synthesis",
]
}
rtc_static_library("socketrocket") {
testonly = true
sources = [
"objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.h",
"objc/AppRTCMobile/third_party/SocketRocket/SRWebSocket.m",
]
configs += [ ":socketrocket_warning_config" ]
public_configs = [ ":socketrocket_include_config" ]
libs = [
"CFNetwork.framework",
"icucore",
]
}
if (rtc_include_tests) {
# TODO(kthelgason): compile xctests on mac when chromium supports it.
if (is_ios) {
rtc_source_set("apprtcmobile_test_sources") {
testonly = true
include_dirs = [
"objc/AppRTCMobile",
"objc/AppRTCMobile/ios",
]
testonly = true
sources = [
"objc/AppRTCMobile/tests/ARDAppClient_xctest.mm",
"objc/AppRTCMobile/tests/ARDFileCaptureController_xctest.mm",
"objc/AppRTCMobile/tests/ARDSettingsModel_xctest.mm",
]
deps = [
":AppRTCMobile_ios_frameworks",
":AppRTCMobile_lib",
"../rtc_base:rtc_base",
"../sdk:framework_objc",
"//build/config/ios:xctest",
"//third_party/ocmock",
]
}
rtc_ios_xctest_test("apprtcmobile_tests") {
info_plist = "objc/AppRTCMobile/ios/Info.plist"
sources = [
"objc/AppRTCMobile/ios/main.m",
]
deps = [
":apprtcmobile_test_sources",
"../sdk:framework_objc",
]
ldflags = [ "-all_load" ]
}
}
}
}
if (is_linux || is_win) {
config("peerconnection_client_warnings_config") {
cflags = []
if (is_win && is_clang) {
cflags += [
# Disable warnings failing when compiling with Clang on Windows.
# https://bugs.chromium.org/p/webrtc/issues/detail?id=5366
"-Wno-format",
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=6271
# for -Wno-reorder and -Wno-sign-compare
"-Wno-reorder",
"-Wno-sign-compare",
]
}
if (is_linux && target_cpu == "x86") {
cflags += [
# Needed to compile on Linux 32-bit.
"-Wno-sentinel",
]
}
if (is_clang) {
# TODO(ehmaldonado): Make peerconnection_client compile with the standard
# set of warnings.
# See https://bugs.chromium.org/p/webrtc/issues/detail?id=6306
cflags += [ "-Wno-inconsistent-missing-override" ]
}
}
rtc_executable("peerconnection_client") {
testonly = true
sources = [
"peerconnection/client/conductor.cc",
"peerconnection/client/conductor.h",
"peerconnection/client/defaults.cc",
"peerconnection/client/defaults.h",
"peerconnection/client/peer_connection_client.cc",
"peerconnection/client/peer_connection_client.h",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../api:libjingle_peerconnection_api",
"../api:video_frame_api_i420",
"../rtc_base:checks",
"../rtc_base:stringutils",
]
if (is_win) {
sources += [
"peerconnection/client/flagdefs.h",
"peerconnection/client/main.cc",
"peerconnection/client/main_wnd.cc",
"peerconnection/client/main_wnd.h",
]
cflags = [ "/wd4245" ]
configs += [ "//build/config/win:windowed" ]
deps += [ "../media:rtc_media_base" ]
}
if (is_linux) {
sources += [
"peerconnection/client/linux/main.cc",
"peerconnection/client/linux/main_wnd.cc",
"peerconnection/client/linux/main_wnd.h",
]
cflags = [ "-Wno-deprecated-declarations" ]
libs = [
"X11",
"Xcomposite",
"Xext",
"Xrender",
]
deps += [ "//build/config/linux/gtk" ]
}
configs += [ ":peerconnection_client_warnings_config" ]
deps += [
"../api:libjingle_peerconnection_test_api",
"../api:peerconnection_and_implicit_call_api",
"../api:video_frame_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../media:rtc_audio_video",
"../modules/video_capture:video_capture_module",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base:rtc_json",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
"//third_party/libyuv",
]
}
rtc_executable("peerconnection_server") {
testonly = true
sources = [
"peerconnection/server/data_socket.cc",
"peerconnection/server/data_socket.h",
"peerconnection/server/main.cc",
"peerconnection/server/peer_channel.cc",
"peerconnection/server/peer_channel.h",
"peerconnection/server/utils.cc",
"peerconnection/server/utils.h",
]
deps = [
"..:webrtc_common",
"../rtc_base:rtc_base_approved",
"../rtc_base:stringutils",
"../rtc_tools:command_line_parser",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("relayserver") {
testonly = true
sources = [
"relayserver/relayserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("turnserver") {
testonly = true
sources = [
"turnserver/turnserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
rtc_executable("stunserver") {
testonly = true
sources = [
"stunserver/stunserver_main.cc",
]
deps = [
"../p2p:rtc_p2p",
"../pc:rtc_pc",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
}
}
if (is_win || is_android) {
rtc_shared_library("webrtc_unity_plugin") {
testonly = true
sources = [
"unityplugin/simple_peer_connection.cc",
"unityplugin/simple_peer_connection.h",
"unityplugin/unity_plugin_apis.cc",
"unityplugin/unity_plugin_apis.h",
"unityplugin/video_observer.cc",
"unityplugin/video_observer.h",
]
if (is_android) {
sources += [
"unityplugin/classreferenceholder.cc",
"unityplugin/classreferenceholder.h",
"unityplugin/jni_onload.cc",
]
suppressed_configs += [ "//build/config/android:hide_all_but_jni_onload" ]
}
if (!build_with_chromium && is_clang) {
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163).
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
if (is_win) {
cflags = [ "/wd4245" ]
configs += [
"//build/config/win:windowed",
":peerconnection_client_warnings_config",
]
}
deps = [
"../api:libjingle_peerconnection_api",
"../api:libjingle_peerconnection_test_api",
"../api:peerconnection_and_implicit_call_api",
"../api:video_frame_api",
"../api/audio_codecs:builtin_audio_decoder_factory",
"../api/audio_codecs:builtin_audio_encoder_factory",
"../media:rtc_audio_video",
"../media:rtc_internal_video_codecs",
"../media:rtc_media",
"../media:rtc_media_base",
"../modules/audio_device:audio_device",
"../modules/audio_processing:audio_processing",
"../modules/video_capture:video_capture_module",
"../pc:libjingle_peerconnection",
"../rtc_base:rtc_base",
"../system_wrappers:field_trial_default",
"../system_wrappers:metrics_default",
"../system_wrappers:runtime_enabled_features_default",
]
if (is_android) {
deps += [ "../sdk/android:libjingle_peerconnection_jni" ]
}
}
}
if (is_android) {
rtc_android_library("webrtc_unity_java") {
java_files = [ "unityplugin/java/src/org/webrtc/UnityUtility.java" ]
deps = [
"../rtc_base:base_java",
"../sdk/android:libjingle_peerconnection_java",
]
}
dist_jar("libwebrtc_unity") {
_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
use_unprocessed_jars = true
requires_android = true
deps = [
":webrtc_unity_java",
"../modules/audio_device:audio_device_java",
"../rtc_base:base_java",
"../sdk/android:libjingle_peerconnection_java",
"../sdk/android:libjingle_peerconnection_metrics_default_java",
]
}
}
if (!build_with_chromium) {
# Doesn't build within Chrome on Win.
rtc_executable("stun_prober") {
testonly = true
sources = [
"stunprober/main.cc",
]
if (!build_with_chromium && is_clang) {
# Suppress warnings from Chrome's Clang plugins.
# See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
suppressed_configs += [ "//build/config/clang:find_bad_constructs" ]
}
deps = [
"../p2p:libstunprober",
"../p2p:rtc_p2p",
"../rtc_base:checks",
"../rtc_base:rtc_base",
"../rtc_base:rtc_base_approved",
"../rtc_base:stringutils",
"../system_wrappers:field_trial_default",
]
}
}