GN: Add SDK tests to rtc_unittests.

In https://codereview.webrtc.org/2034923003 it was discovered
that a test binary rtc_sdk_peerconnection_objc_tests was
a dependency to rtc_unittests. Unfortunately gtest doesn't
include dependent executables into the same test executable;
only libraries (so theses tests weren't run).

This CL incorporates those tests into rtc_unittests and
does the same changes to the GN build.

BUG=webrtc:5949
TESTED=Built and ran rtc_unittests locally on Mac.
NOTRY=True

Review-Url: https://codereview.webrtc.org/2041743003
Cr-Commit-Position: refs/heads/master@{#13060}
diff --git a/webrtc/sdk/BUILD.gn b/webrtc/sdk/BUILD.gn
index fbca40d..f4975f2 100644
--- a/webrtc/sdk/BUILD.gn
+++ b/webrtc/sdk/BUILD.gn
@@ -8,8 +8,9 @@
 
 import("../build/webrtc.gni")
 import("//build_overrides/webrtc.gni")
+import("//build/config/mac/mac_sdk.gni")
 
-if (is_ios) {
+if (is_ios || (is_mac && mac_deployment_target == "10.7")) {
   config("rtc_sdk_common_objc_config") {
     include_dirs = [
       "objc/Framework/Classes",
@@ -21,8 +22,10 @@
     deps = [
       "../base:rtc_base",
     ]
-    cflags = [ "-fobjc-arc" ]
-    configs += [ "..:common_config" ]
+    configs += [
+      "..:common_config",
+      "//build/config/compiler:enable_arc",
+    ]
     public_configs = [
       "..:common_inherited_config",
       ":rtc_sdk_common_objc_config",
@@ -30,15 +33,11 @@
     sources = [
       "objc/Framework/Classes/NSString+StdString.h",
       "objc/Framework/Classes/NSString+StdString.mm",
-      "objc/Framework/Classes/RTCCameraPreviewView.m",
       "objc/Framework/Classes/RTCDispatcher.m",
       "objc/Framework/Classes/RTCFieldTrials.mm",
       "objc/Framework/Classes/RTCLogging.mm",
       "objc/Framework/Classes/RTCSSLAdapter.mm",
       "objc/Framework/Classes/RTCTracing.mm",
-      "objc/Framework/Classes/RTCUIApplication.h",
-      "objc/Framework/Classes/RTCUIApplication.mm",
-      "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
       "objc/Framework/Headers/WebRTC/RTCDispatcher.h",
       "objc/Framework/Headers/WebRTC/RTCFieldTrials.h",
       "objc/Framework/Headers/WebRTC/RTCLogging.h",
@@ -46,103 +45,114 @@
       "objc/Framework/Headers/WebRTC/RTCSSLAdapter.h",
       "objc/Framework/Headers/WebRTC/RTCTracing.h",
     ]
+    if (is_ios) {
+      sources += [
+        "objc/Framework/Classes/RTCCameraPreviewView.m",
+        "objc/Framework/Classes/RTCUIApplication.h",
+        "objc/Framework/Classes/RTCUIApplication.mm",
+        "objc/Framework/Headers/WebRTC/RTCCameraPreviewView.h",
+      ]
+      libs = [ "AVFoundation.framework" ]
+    }
     if (!build_with_chromium) {
       sources += [
         "objc/Framework/Classes/RTCFileLogger.mm",
         "objc/Framework/Headers/WebRTC/RTCFileLogger.h",
       ]
     }
-    libs = [ "AVFoundation.framework" ]
   }
 
   source_set("rtc_sdk_peerconnection_objc") {
-    deps = [
-      ":rtc_sdk_common_objc",
-      #"../../talk/libjingle:libjingle_peerconnection",
-    ]
-    configs += [ "//build/config/compiler:enable_arc" ]
-    cflags = [ "-Wobjc-missing-property-synthesis" ]
     sources = [
-      # Add these when there's a BUILD.gn for peer connection APIs
-      #"objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h",
-      #"objc/Framework/Classes/RTCAVFoundationVideoSource.mm",
-      #"objc/Framework/Classes/RTCAudioTrack+Private.h",
-      #"objc/Framework/Classes/RTCAudioTrack.mm",
-      #"objc/Framework/Classes/RTCConfiguration+Private.h",
-      #"objc/Framework/Classes/RTCConfiguration.mm",
-      #"objc/Framework/Classes/RTCDataChannel+Private.h",
-      #"objc/Framework/Classes/RTCDataChannel.mm",
-      #"objc/Framework/Classes/RTCDataChannelConfiguration+Private.h",
-      #"objc/Framework/Classes/RTCDataChannelConfiguration.mm",
-      #"objc/Framework/Classes/RTCIceCandidate+Private.h",
-      #"objc/Framework/Classes/RTCIceCandidate.mm",
-      #"objc/Framework/Classes/RTCIceServer+Private.h",
-      #"objc/Framework/Classes/RTCIceServer.mm",
-      #"objc/Framework/Classes/RTCMediaConstraints+Private.h",
-      #"objc/Framework/Classes/RTCMediaConstraints.mm",
-      #"objc/Framework/Classes/RTCMediaStream+Private.h",
-      #"objc/Framework/Classes/RTCMediaStream.mm",
-      #"objc/Framework/Classes/RTCMediaStreamTrack+Private.h",
-      #"objc/Framework/Classes/RTCMediaStreamTrack.mm",
-      #"objc/Framework/Classes/RTCOpenGLVideoRenderer.mm",
-      #"objc/Framework/Classes/RTCPeerConnection+Private.h",
-      #"objc/Framework/Classes/RTCPeerConnection.mm",
-      #"objc/Framework/Classes/RTCPeerConnectionFactory+Private.h",
-      #"objc/Framework/Classes/RTCPeerConnectionFactory.mm",
-      #"objc/Framework/Classes/RTCRtpEncodingParameters+Private.h",
-      #"objc/Framework/Classes/RTCRtpEncodingParameters.mm",
-      #"objc/Framework/Classes/RTCRtpParameters+Private.h",
-      #"objc/Framework/Classes/RTCRtpParameters.mm",
-      #"objc/Framework/Classes/RTCRtpReceiver+Private.h",
-      #"objc/Framework/Classes/RTCRtpReceiver.mm",
-      #"objc/Framework/Classes/RTCRtpSender+Private.h",
-      #"objc/Framework/Classes/RTCRtpSender.mm",
-      #"objc/Framework/Classes/RTCSessionDescription+Private.h",
-      #"objc/Framework/Classes/RTCSessionDescription.mm",
-      #"objc/Framework/Classes/RTCStatsReport+Private.h",
-      #"objc/Framework/Classes/RTCStatsReport.mm",
-      #"objc/Framework/Classes/RTCVideoFrame+Private.h",
-      #"objc/Framework/Classes/RTCVideoFrame.mm",
-      #"objc/Framework/Classes/RTCVideoRendererAdapter+Private.h",
-      #"objc/Framework/Classes/RTCVideoRendererAdapter.h",
-      #"objc/Framework/Classes/RTCVideoRendererAdapter.mm",
-      #"objc/Framework/Classes/RTCVideoSource+Private.h",
-      #"objc/Framework/Classes/RTCVideoSource.mm",
-      #"objc/Framework/Classes/RTCVideoTrack+Private.h",
-      #"objc/Framework/Classes/RTCVideoTrack.mm",
-      #"objc/Framework/Classes/avfoundationvideocapturer.h",
-      #"objc/Framework/Classes/avfoundationvideocapturer.mm",
-      #"objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
-      #"objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
-      #"objc/Framework/Headers/WebRTC/RTCConfiguration.h",
-      #"objc/Framework/Headers/WebRTC/RTCDataChannel.h",
-      #"objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
-      #"objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
-      #"objc/Framework/Headers/WebRTC/RTCIceServer.h",
-      #"objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
-      #"objc/Framework/Headers/WebRTC/RTCMediaStream.h",
-      #"objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
-      #"objc/Framework/Headers/WebRTC/RTCOpenGLVideoRenderer.h",
-      #"objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
-      #"objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
-      #"objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
-      #"objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
-      #"objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
-      #"objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
-      #"objc/Framework/Headers/WebRTC/RTCRtpSender.h",
-      #"objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
-      #"objc/Framework/Headers/WebRTC/RTCStatsReport.h",
-      #"objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
-      #"objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
-      #"objc/Framework/Headers/WebRTC/RTCVideoSource.h",
-      #"objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
+      "objc/Framework/Classes/RTCAudioTrack+Private.h",
+      "objc/Framework/Classes/RTCAudioTrack.mm",
+      "objc/Framework/Classes/RTCConfiguration+Private.h",
+      "objc/Framework/Classes/RTCConfiguration.mm",
+      "objc/Framework/Classes/RTCDataChannel+Private.h",
+      "objc/Framework/Classes/RTCDataChannel.mm",
+      "objc/Framework/Classes/RTCDataChannelConfiguration+Private.h",
+      "objc/Framework/Classes/RTCDataChannelConfiguration.mm",
+      "objc/Framework/Classes/RTCIceCandidate+Private.h",
+      "objc/Framework/Classes/RTCIceCandidate.mm",
+      "objc/Framework/Classes/RTCIceServer+Private.h",
+      "objc/Framework/Classes/RTCIceServer.mm",
+      "objc/Framework/Classes/RTCMediaConstraints+Private.h",
+      "objc/Framework/Classes/RTCMediaConstraints.mm",
+      "objc/Framework/Classes/RTCMediaStream+Private.h",
+      "objc/Framework/Classes/RTCMediaStream.mm",
+      "objc/Framework/Classes/RTCMediaStreamTrack+Private.h",
+      "objc/Framework/Classes/RTCMediaStreamTrack.mm",
+      "objc/Framework/Classes/RTCOpenGLVideoRenderer.h",
+      "objc/Framework/Classes/RTCOpenGLVideoRenderer.mm",
+      "objc/Framework/Classes/RTCPeerConnection+DataChannel.mm",
+      "objc/Framework/Classes/RTCPeerConnection+Private.h",
+      "objc/Framework/Classes/RTCPeerConnection+Stats.mm",
+      "objc/Framework/Classes/RTCPeerConnection.mm",
+      "objc/Framework/Classes/RTCPeerConnectionFactory+Private.h",
+      "objc/Framework/Classes/RTCPeerConnectionFactory.mm",
+      "objc/Framework/Classes/RTCRtpCodecParameters+Private.h",
+      "objc/Framework/Classes/RTCRtpCodecParameters.mm",
+      "objc/Framework/Classes/RTCRtpEncodingParameters+Private.h",
+      "objc/Framework/Classes/RTCRtpEncodingParameters.mm",
+      "objc/Framework/Classes/RTCRtpParameters+Private.h",
+      "objc/Framework/Classes/RTCRtpParameters.mm",
+      "objc/Framework/Classes/RTCRtpReceiver+Private.h",
+      "objc/Framework/Classes/RTCRtpReceiver.mm",
+      "objc/Framework/Classes/RTCRtpSender+Private.h",
+      "objc/Framework/Classes/RTCRtpSender.mm",
+      "objc/Framework/Classes/RTCSessionDescription+Private.h",
+      "objc/Framework/Classes/RTCSessionDescription.mm",
+      "objc/Framework/Classes/RTCStatsReport+Private.h",
+      "objc/Framework/Classes/RTCStatsReport.mm",
+      "objc/Framework/Classes/RTCVideoFrame+Private.h",
+      "objc/Framework/Classes/RTCVideoFrame.mm",
+      "objc/Framework/Classes/RTCVideoRendererAdapter+Private.h",
+      "objc/Framework/Classes/RTCVideoRendererAdapter.h",
+      "objc/Framework/Classes/RTCVideoRendererAdapter.mm",
+      "objc/Framework/Classes/RTCVideoSource+Private.h",
+      "objc/Framework/Classes/RTCVideoSource.mm",
+      "objc/Framework/Classes/RTCVideoTrack+Private.h",
+      "objc/Framework/Classes/RTCVideoTrack.mm",
+      "objc/Framework/Headers/WebRTC/RTCAudioTrack.h",
+      "objc/Framework/Headers/WebRTC/RTCConfiguration.h",
+      "objc/Framework/Headers/WebRTC/RTCDataChannel.h",
+      "objc/Framework/Headers/WebRTC/RTCDataChannelConfiguration.h",
+      "objc/Framework/Headers/WebRTC/RTCIceCandidate.h",
+      "objc/Framework/Headers/WebRTC/RTCIceServer.h",
+      "objc/Framework/Headers/WebRTC/RTCMediaConstraints.h",
+      "objc/Framework/Headers/WebRTC/RTCMediaStream.h",
+      "objc/Framework/Headers/WebRTC/RTCMediaStreamTrack.h",
+      "objc/Framework/Headers/WebRTC/RTCPeerConnection.h",
+      "objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h",
+      "objc/Framework/Headers/WebRTC/RTCRtpCodecParameters.h",
+      "objc/Framework/Headers/WebRTC/RTCRtpEncodingParameters.h",
+      "objc/Framework/Headers/WebRTC/RTCRtpParameters.h",
+      "objc/Framework/Headers/WebRTC/RTCRtpReceiver.h",
+      "objc/Framework/Headers/WebRTC/RTCRtpSender.h",
+      "objc/Framework/Headers/WebRTC/RTCSessionDescription.h",
+      "objc/Framework/Headers/WebRTC/RTCStatsReport.h",
+      "objc/Framework/Headers/WebRTC/RTCVideoFrame.h",
+      "objc/Framework/Headers/WebRTC/RTCVideoRenderer.h",
+      "objc/Framework/Headers/WebRTC/RTCVideoSource.h",
+      "objc/Framework/Headers/WebRTC/RTCVideoTrack.h",
     ]
 
     if (is_ios) {
       sources += [
+        "objc/Framework/Classes/RTCAVFoundationVideoSource+Private.h",
+        "objc/Framework/Classes/RTCAVFoundationVideoSource.mm",
         "objc/Framework/Classes/RTCEAGLVideoView.m",
+        "objc/Framework/Classes/avfoundationvideocapturer.h",
+        "objc/Framework/Classes/avfoundationvideocapturer.mm",
+        "objc/Framework/Headers/WebRTC/RTCAVFoundationVideoSource.h",
         "objc/Framework/Headers/WebRTC/RTCEAGLVideoView.h",
       ]
+      libs = [
+        "CoreGraphics.framework",
+        "GLKit.framework",
+        "OpenGLES.framework",
+        "QuartzCore.framework",
+      ]
     }
 
     if (is_mac) {
@@ -150,6 +160,29 @@
         "objc/Framework/Classes/RTCNSGLVideoView.m",
         "objc/Framework/Headers/WebRTC/RTCNSGLVideoView.h",
       ]
+      libs = [ "OpenGL.framework" ]
     }
+
+    configs += [
+      "..:common_objc",
+      "//build/config/compiler:enable_arc",
+    ]
+
+    public_configs = [ ":rtc_sdk_common_objc_config" ]
+
+    if (is_clang) {
+      # Suppress warnings from the Chromium Clang plugins.
+      # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
+      configs -= [ "//build/config/clang:find_bad_constructs" ]
+    }
+
+    libs += [ "stdc++" ]
+
+    deps = [
+      ":rtc_sdk_common_objc",
+      "../api:libjingle_peerconnection",
+    ]
   }
+
+  # TODO(tkchin): Add the rtc_sdk_framework_objc target.
 }