Index: webrtc/pc/BUILD.gn |
diff --git a/webrtc/pc/BUILD.gn b/webrtc/pc/BUILD.gn |
index 483485012da481803fe641f220ef643832af61bb..088477bcc908cafa32c9e6d919e4631b88ae8bc8 100644 |
--- a/webrtc/pc/BUILD.gn |
+++ b/webrtc/pc/BUILD.gn |
@@ -25,25 +25,18 @@ config("rtc_pc_config") { |
} |
} |
-rtc_static_library("rtc_pc") { |
- defines = [] |
+rtc_source_set("rtc_pc_common") { |
sources = [ |
"audiomonitor.cc", |
"audiomonitor.h", |
"bundlefilter.cc", |
"bundlefilter.h", |
- "channel.cc", |
- "channel.h", |
- "channelmanager.cc", |
- "channelmanager.h", |
"currentspeakermonitor.cc", |
"currentspeakermonitor.h", |
"externalhmac.cc", |
"externalhmac.h", |
"mediamonitor.cc", |
"mediamonitor.h", |
- "mediasession.cc", |
- "mediasession.h", |
"rtcpmuxfilter.cc", |
"rtcpmuxfilter.h", |
"rtptransport.cc", |
@@ -53,17 +46,64 @@ rtc_static_library("rtc_pc") { |
"voicechannel.h", |
] |
+ if (rtc_build_libsrtp) { |
+ deps = [ |
+ "//third_party/libsrtp", |
+ ] |
+ } |
+ |
+ public_configs = [ ":rtc_pc_config" ] |
+ |
+ 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_static_library("rtc_pc_datachannel_only") { |
+ sources = [ |
+ "channel.cc", |
+ "channel.h", |
+ "channelmanager.cc", |
+ "channelmanager.h", |
+ "mediasession.cc", |
+ "mediasession.h", |
+ ] |
+ |
deps = [ |
+ ":rtc_pc_common", |
"../api:call_api", |
"../base:rtc_base", |
- "../media", |
+ "../media:rtc_media_datachannel_only", |
] |
- if (rtc_build_libsrtp) { |
- deps += [ "//third_party/libsrtp" ] |
+ 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" ] |
} |
+} |
- public_configs = [ ":rtc_pc_config" ] |
+rtc_static_library("rtc_pc") { |
+ defines = [ |
+ "HAVE_WEBRTC_VOICE", |
+ "HAVE_WEBRTC_VIDEO", |
+ ] |
+ |
+ sources = [ |
+ "channel.cc", |
+ "channel.h", |
+ "channelmanager.cc", |
+ "channelmanager.h", |
+ "mediasession.cc", |
+ "mediasession.h", |
+ ] |
+ |
+ deps = [ |
+ ":rtc_pc_common", |
+ "../api:call_api", |
+ "../base:rtc_base", |
+ "../media:rtc_media", |
+ ] |
if (!build_with_chromium && is_clang) { |
# Suppress warnings from the Chromium Clang plugin (bugs.webrtc.org/163). |
@@ -80,7 +120,7 @@ config("libjingle_peerconnection_warnings_config") { |
} |
} |
-rtc_static_library("libjingle_peerconnection") { |
+rtc_source_set("libjingle_peerconnection_common") { |
cflags = [] |
sources = [ |
"audiotrack.cc", |
@@ -100,10 +140,6 @@ rtc_static_library("libjingle_peerconnection") { |
"mediastreamobserver.cc", |
"mediastreamobserver.h", |
"mediastreamtrack.h", |
- "peerconnection.cc", |
- "peerconnection.h", |
- "peerconnectionfactory.cc", |
- "peerconnectionfactory.h", |
"remoteaudiosource.cc", |
"remoteaudiosource.h", |
"rtcstatscollector.cc", |
@@ -141,12 +177,10 @@ rtc_static_library("libjingle_peerconnection") { |
} |
deps = [ |
- ":rtc_pc", |
"../api:call_api", |
"../api:rtc_stats_api", |
"../api/video_codecs:video_codecs_api", |
- "../call", |
- "../media", |
+ "../logging:rtc_event_log_api", |
"../stats", |
] |
@@ -168,6 +202,56 @@ rtc_static_library("libjingle_peerconnection") { |
} |
} |
+rtc_static_library("libjingle_peerconnection_datachannel_only") { |
+ sources = [ |
+ "peerconnection.cc", |
+ "peerconnection.h", |
+ "peerconnectionfactory.cc", |
+ "peerconnectionfactory.h", |
+ ] |
+ |
+ deps = [ |
+ ":rtc_pc_datachannel_only", |
+ ] |
+ |
+ public_deps = [ |
+ ":libjingle_peerconnection_common", |
+ ] |
+ |
+ 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_static_library("libjingle_peerconnection") { |
+ defines = [ |
+ "HAVE_WEBRTC_VOICE", |
+ "HAVE_WEBRTC_VIDEO", |
+ ] |
+ |
+ sources = [ |
+ "peerconnection.cc", |
+ "peerconnection.h", |
+ "peerconnectionfactory.cc", |
+ "peerconnectionfactory.h", |
+ ] |
+ |
+ deps = [ |
+ ":rtc_pc", |
+ "../call", |
+ ] |
+ |
+ public_deps = [ |
+ ":libjingle_peerconnection_common", |
+ ] |
+ |
+ 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 (rtc_include_tests) { |
config("rtc_pc_unittests_config") { |
# GN orders flags on a target before flags from configs. The default config |
@@ -223,7 +307,7 @@ if (rtc_include_tests) { |
} |
} |
- rtc_source_set("pc_test_utils") { |
+ rtc_source_set("pc_test_utils_common") { |
testonly = true |
sources = [ |
"test/fakeaudiocapturemodule.cc", |
@@ -243,8 +327,7 @@ if (rtc_include_tests) { |
"test/testsdpstrings.h", |
] |
- deps = [ |
- ":libjingle_peerconnection", |
+ public_deps = [ |
"../base:rtc_base_tests_utils", |
"//testing/gmock", |
] |
@@ -255,6 +338,28 @@ if (rtc_include_tests) { |
} |
} |
+ rtc_source_set("pc_datachannel_only_test_utils") { |
+ testonly = true |
+ deps = [ |
+ ":libjingle_peerconnection_datachannel_only", |
+ ] |
+ |
+ public_deps = [ |
+ ":pc_test_utils_common", |
+ ] |
+ } |
+ |
+ rtc_source_set("pc_test_utils") { |
+ testonly = true |
+ deps = [ |
+ ":libjingle_peerconnection", |
+ ] |
+ |
+ public_deps = [ |
+ ":pc_test_utils_common", |
+ ] |
+ } |
+ |
config("peerconnection_unittests_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 |
@@ -368,4 +473,64 @@ if (rtc_include_tests) { |
shard_timeout = 900 |
} |
} |
+ |
+ rtc_test("peerconnection_datachannel_only_unittests") { |
+ check_includes = false # TODO(kjellander): Remove (bugs.webrtc.org/6828) |
+ testonly = true |
+ sources = [ |
+ "peerconnectionendtoend_datachannel_only_unittest.cc", |
+ ] |
+ |
+ if (rtc_enable_sctp) { |
+ defines = [ "HAVE_SCTP" ] |
+ } |
+ |
+ configs += [ ":peerconnection_unittests_config" ] |
+ |
+ 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" ] |
+ } |
+ |
+ # 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 = [] |
+ if (is_android) { |
+ sources += [ |
+ "test/androidtestinitializer.cc", |
+ "test/androidtestinitializer.h", |
+ ] |
+ deps += [ |
+ "//testing/android/native_test:native_test_support", |
+ "//webrtc/sdk/android:libjingle_peerconnection_datachannel_only_jni", |
+ "//webrtc/sdk/android:libjingle_peerconnection_java", |
+ ] |
+ } |
+ |
+ deps += [ |
+ ":libjingle_peerconnection_datachannel_only", |
+ ":pc_datachannel_only_test_utils", |
+ "..:webrtc_common", |
+ "../api:fakemetricsobserver", |
+ "../base:rtc_base_tests_main", |
+ "../base:rtc_base_tests_utils", |
+ "../pc:rtc_pc_datachannel_only", |
+ "../system_wrappers:metrics_default", |
+ "//testing/gmock", |
+ ] |
+ |
+ if (is_android) { |
+ deps += [ "//testing/android/native_test:native_test_support" ] |
+ |
+ shard_timeout = 900 |
+ } |
+ } |
} |