GN: Change rtc_source_set targets --> rtc_static_library
This changes most non-test related rtc_source_set targets to be
rtc_static_library instead. Targets without any .cc files are excluded.
This should bring back the build behavior we used to have with GYP
(i.e. same symbols exported in the libjingle_peerconnection.a file, which
are used by some downstream projects).
After doing an Android build with these changes:
$ nm --defined-only -g -C out/Release/lib.unstripped/libjingle_peerconnection_so.so | grep -i createpeerconnectionf
00077c51 T Java_org_webrtc_PeerConnectionFactory_nativeCreatePeerConnectionFactory
$ nm --defined-only -g -C out/Release/obj/webrtc/api/libjingle_peerconnection.a | grep -i createpeerconnectionf
00000001 T webrtc::CreatePeerConnectionFactory(rtc::Thread*, rtc::Thread*, rtc::Thread*, webrtc::AudioDeviceModule*, cricket::WebRtcVideoEncoderFactory*, cricket::WebRtcVideoDecoderFactory*)
00000001 T webrtc::CreatePeerConnectionFactory()
See https://chromium.googlesource.com/chromium/src/+/master/tools/gn/docs/cookbook.md#Note-on-static-libraries
for more details on this.
NOTICE: This should be further cleaned up in the future, to reduce
binary bloat and unnecessary linking time. Right now it's more
important to restore the desired build output though.
BUG=webrtc:6410, chromium:630755
Review-Url: https://codereview.webrtc.org/2361623004
Cr-Commit-Position: refs/heads/master@{#14364}
diff --git a/webrtc/modules/video_coding/BUILD.gn b/webrtc/modules/video_coding/BUILD.gn
index 3db9b02..d9b392d 100644
--- a/webrtc/modules/video_coding/BUILD.gn
+++ b/webrtc/modules/video_coding/BUILD.gn
@@ -8,7 +8,7 @@
import("../../build/webrtc.gni")
-rtc_source_set("video_coding") {
+rtc_static_library("video_coding") {
sources = [
"codec_database.cc",
"codec_database.h",
@@ -95,7 +95,7 @@
]
}
-rtc_source_set("video_coding_utility") {
+rtc_static_library("video_coding_utility") {
sources = [
"utility/frame_dropper.cc",
"utility/frame_dropper.h",
@@ -127,7 +127,7 @@
]
}
-rtc_source_set("webrtc_h264") {
+rtc_static_library("webrtc_h264") {
sources = [
"codecs/h264/h264.cc",
"codecs/h264/include/h264.h",
@@ -178,7 +178,7 @@
}
}
- rtc_source_set("webrtc_h264_video_toolbox") {
+ rtc_static_library("webrtc_h264_video_toolbox") {
sources = [
"codecs/h264/h264_video_toolbox_decoder.cc",
"codecs/h264/h264_video_toolbox_decoder.h",
@@ -223,7 +223,7 @@
}
}
-rtc_source_set("webrtc_i420") {
+rtc_static_library("webrtc_i420") {
sources = [
"codecs/i420/i420.cc",
"codecs/i420/include/i420.h",
@@ -240,7 +240,7 @@
]
}
-rtc_source_set("webrtc_vp8") {
+rtc_static_library("webrtc_vp8") {
sources = [
"codecs/vp8/default_temporal_layers.cc",
"codecs/vp8/default_temporal_layers.h",
@@ -278,7 +278,7 @@
}
}
-rtc_source_set("webrtc_vp9") {
+rtc_static_library("webrtc_vp9") {
sources = [
"codecs/vp9/include/vp9.h",
"codecs/vp9/screenshare_layers.cc",