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