• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# Copyright (c) 2014 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("../../build/webrtc.gni")
10
11source_set("video_render_module") {
12  sources = [
13    "external/video_render_external_impl.cc",
14    "external/video_render_external_impl.h",
15    "i_video_render.h",
16    "video_render.h",
17    "video_render_defines.h",
18    "video_render_impl.h",
19  ]
20
21  deps = [
22    "../..:webrtc_common",
23    "../../common_video",
24    "../../system_wrappers",
25    "../utility",
26  ]
27
28  configs += [ "../..:common_config" ]
29  public_configs = [ "../..:common_inherited_config" ]
30
31  if (is_clang) {
32    # Suppress warnings from Chrome's Clang plugins.
33    # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
34    configs -= [ "//build/config/clang:find_bad_constructs" ]
35  }
36}
37
38source_set("video_render") {
39  sources = [
40    "video_render_impl.cc",
41  ]
42  deps = [
43    ":video_render_module",
44    "../../system_wrappers",
45  ]
46
47  configs += [ "../..:common_config" ]
48  public_configs = [ "../..:common_inherited_config" ]
49
50  if (is_clang) {
51    # Suppress warnings from Chrome's Clang plugins.
52    # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
53    configs -= [ "//build/config/clang:find_bad_constructs" ]
54  }
55}
56
57if (!build_with_chromium) {
58  config("video_render_internal_impl_config") {
59    if (is_ios) {
60      libs = [
61        "OpenGLES.framework",
62        "QuartzCore.framework",
63      ]
64    }
65  }
66
67  source_set("video_render_internal_impl") {
68    libs = []
69    sources = [
70      "video_render_internal_impl.cc",
71    ]
72    deps = [
73      ":video_render_module",
74      "../../system_wrappers",
75    ]
76
77    if (is_linux) {
78      sources += [
79        "linux/video_render_linux_impl.cc",
80        "linux/video_render_linux_impl.h",
81        "linux/video_x11_channel.cc",
82        "linux/video_x11_channel.h",
83        "linux/video_x11_render.cc",
84        "linux/video_x11_render.h",
85      ]
86
87      deps += [ "../..:webrtc_common" ]
88
89      libs += [ "Xext" ]
90    }
91    if (is_mac) {
92      sources += [
93        "mac/cocoa_full_screen_window.h",
94        "mac/cocoa_full_screen_window.mm",
95        "mac/cocoa_render_view.h",
96        "mac/cocoa_render_view.mm",
97        "mac/video_render_agl.cc",
98        "mac/video_render_agl.h",
99        "mac/video_render_mac_carbon_impl.cc",
100        "mac/video_render_mac_carbon_impl.h",
101        "mac/video_render_mac_cocoa_impl.h",
102        "mac/video_render_mac_cocoa_impl.mm",
103        "mac/video_render_nsopengl.h",
104        "mac/video_render_nsopengl.mm",
105      ]
106
107      libs += [
108        "CoreVideo.framework",
109        "QTKit.framework",
110      ]
111    }
112    if (is_win) {
113      sources += [
114        "windows/i_video_render_win.h",
115        "windows/video_render_direct3d9.cc",
116        "windows/video_render_direct3d9.h",
117        "windows/video_render_windows_impl.cc",
118        "windows/video_render_windows_impl.h",
119      ]
120
121      directxsdk_exists =
122          exec_script("//build/dir_exists.py",
123                      [ rebase_path("//third_party/directxsdk/files",
124                                    root_build_dir) ],
125                      "trim string") == "True"
126      if (directxsdk_exists) {
127        directxsdk_path = "//third_party/directxsdk/files"
128      } else {
129        directxsdk_path =
130            exec_script("../../build/find_directx_sdk.py", [], "trim string")
131      }
132      include_dirs = [ directxsdk_path + "/Include" ]
133    }
134    if (is_android) {
135      sources += [
136        "android/video_render_android_impl.cc",
137        "android/video_render_android_impl.h",
138        "android/video_render_android_native_opengl2.cc",
139        "android/video_render_android_native_opengl2.h",
140        "android/video_render_android_surface_view.cc",
141        "android/video_render_android_surface_view.h",
142        "android/video_render_opengles20.cc",
143        "android/video_render_opengles20.h",
144      ]
145
146      libs += [ "GLESv2" ]
147    }
148    if (is_ios) {
149      sources += [
150        "ios/open_gles20.h",
151        "ios/open_gles20.mm",
152        "ios/video_render_ios_channel.h",
153        "ios/video_render_ios_channel.mm",
154        "ios/video_render_ios_gles20.h",
155        "ios/video_render_ios_gles20.mm",
156        "ios/video_render_ios_impl.h",
157        "ios/video_render_ios_impl.mm",
158        "ios/video_render_ios_view.h",
159        "ios/video_render_ios_view.mm",
160      ]
161
162      deps += [ "../..:webrtc_common" ]
163
164      cflags = [ "-fobjc-arc" ]  # CLANG_ENABLE_OBJC_ARC = YES.
165    }
166
167    all_dependent_configs = [ ":video_render_internal_impl_config" ]
168
169    configs += [ "../..:common_config" ]
170    public_configs = [ "../..:common_inherited_config" ]
171
172    if (is_clang) {
173      # Suppress warnings from Chrome's Clang plugins.
174      # See http://code.google.com/p/webrtc/issues/detail?id=163 for details.
175      configs -= [ "//build/config/clang:find_bad_constructs" ]
176    }
177  }
178}
179