blob: 58bdcebf5d09c8851240e49552d841656287d217 [file] [log] [blame]
xians@google.comd3185fe2011-09-12 12:24:39 +00001# Copyright (c) 2011 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.
niklase@google.com470e71d2011-07-07 08:21:25 +00008
9{
niklase@google.com470e71d2011-07-07 08:21:25 +000010 'targets': [
11 {
12 'target_name': 'video_render_module',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000013 'type': 'static_library',
niklase@google.com470e71d2011-07-07 08:21:25 +000014 'dependencies': [
xians@google.comd3185fe2011-09-12 12:24:39 +000015 'webrtc_utility',
andrew@webrtc.orgfa418ac2012-09-11 01:34:21 +000016 '<(webrtc_root)/common_video/common_video.gyp:common_video',
xians@google.comd3185fe2011-09-12 12:24:39 +000017 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
niklase@google.com470e71d2011-07-07 08:21:25 +000018 ],
19 'include_dirs': [
andrew@webrtc.org9841d922012-10-31 05:22:11 +000020 'include',
niklase@google.com470e71d2011-07-07 08:21:25 +000021 '../interface',
niklase@google.com470e71d2011-07-07 08:21:25 +000022 ],
23 'direct_dependent_settings': {
24 'include_dirs': [
andrew@webrtc.org9841d922012-10-31 05:22:11 +000025 'include',
niklase@google.com470e71d2011-07-07 08:21:25 +000026 '../interface',
niklase@google.com470e71d2011-07-07 08:21:25 +000027 ],
28 },
29 'sources': [
andrew@webrtc.org9841d922012-10-31 05:22:11 +000030 'android/video_render_android_impl.cc',
leozwang@webrtc.orgac9fd8a2012-03-19 21:09:42 +000031 'android/video_render_android_impl.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000032 'android/video_render_android_native_opengl2.cc',
leozwang@webrtc.orgac9fd8a2012-03-19 21:09:42 +000033 'android/video_render_android_native_opengl2.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000034 'android/video_render_android_surface_view.cc',
leozwang@webrtc.orgac9fd8a2012-03-19 21:09:42 +000035 'android/video_render_android_surface_view.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000036 'android/video_render_opengles20.cc',
leozwang@webrtc.orgac9fd8a2012-03-19 21:09:42 +000037 'android/video_render_opengles20.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000038 'external/video_render_external_impl.cc',
39 'external/video_render_external_impl.h',
40 'i_video_render.h',
41 'include/video_render.h',
42 'include/video_render_defines.h',
43 'incoming_video_stream.cc',
44 'incoming_video_stream.h',
fischman@webrtc.org36cf4d22013-09-12 17:39:53 +000045 'ios/open_gles20.h',
46 'ios/open_gles20.mm',
47 'ios/video_render_ios_channel.h',
48 'ios/video_render_ios_channel.mm',
49 'ios/video_render_ios_gles20.h',
50 'ios/video_render_ios_gles20.mm',
51 'ios/video_render_ios_impl.h',
52 'ios/video_render_ios_impl.mm',
53 'ios/video_render_ios_view.h',
54 'ios/video_render_ios_view.mm',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000055 'linux/video_render_linux_impl.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +000056 'linux/video_render_linux_impl.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000057 'linux/video_x11_channel.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +000058 'linux/video_x11_channel.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000059 'linux/video_x11_render.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +000060 'linux/video_x11_render.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000061 'mac/cocoa_full_screen_window.mm',
niklase@google.com470e71d2011-07-07 08:21:25 +000062 'mac/cocoa_full_screen_window.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000063 'mac/cocoa_render_view.mm',
niklase@google.com470e71d2011-07-07 08:21:25 +000064 'mac/cocoa_render_view.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000065 'mac/video_render_agl.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +000066 'mac/video_render_agl.h',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000067 'mac/video_render_mac_carbon_impl.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +000068 'mac/video_render_mac_carbon_impl.h',
69 'mac/video_render_mac_cocoa_impl.h',
andrew@webrtc.org199f4de2011-10-11 15:43:35 +000070 'mac/video_render_mac_cocoa_impl.mm',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000071 'mac/video_render_nsopengl.h',
72 'mac/video_render_nsopengl.mm',
73 'video_render_frames.cc',
74 'video_render_frames.h',
75 'video_render_impl.cc',
76 'video_render_impl.h',
77 'windows/i_video_render_win.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000078 'windows/video_render_direct3d9.cc',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000079 'windows/video_render_direct3d9.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000080 'windows/video_render_windows_impl.cc',
andrew@webrtc.org9841d922012-10-31 05:22:11 +000081 'windows/video_render_windows_impl.h',
niklase@google.com470e71d2011-07-07 08:21:25 +000082 ],
andrew@webrtc.org199f4de2011-10-11 15:43:35 +000083 # TODO(andrew): with the proper suffix, these files will be excluded
84 # automatically.
niklase@google.com470e71d2011-07-07 08:21:25 +000085 'conditions': [
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +000086 ['include_internal_video_render==1', {
andrew@webrtc.org9841d922012-10-31 05:22:11 +000087 'defines': ['WEBRTC_INCLUDE_INTERNAL_VIDEO_RENDER',],
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +000088 }],
leozwang@webrtc.org66487e12012-03-05 19:34:06 +000089 ['OS!="android" or include_internal_video_render==0', {
90 'sources!': [
leozwang@webrtc.orgac9fd8a2012-03-19 21:09:42 +000091 'android/video_render_android_impl.h',
92 'android/video_render_android_native_opengl2.h',
93 'android/video_render_android_surface_view.h',
94 'android/video_render_opengles20.h',
95 'android/video_render_android_impl.cc',
96 'android/video_render_android_native_opengl2.cc',
97 'android/video_render_android_surface_view.cc',
98 'android/video_render_opengles20.cc',
leozwang@webrtc.org66487e12012-03-05 19:34:06 +000099 ],
100 }],
fischman@webrtc.org36cf4d22013-09-12 17:39:53 +0000101 ['OS!="ios" or include_internal_video_render==0', {
102 'sources!': [
103 # iOS
104 'ios/open_gles20.h',
105 'ios/open_gles20.mm',
106 'ios/video_render_ios_channel.h',
107 'ios/video_render_ios_channel.mm',
108 'ios/video_render_ios_gles20.h',
109 'ios/video_render_ios_gles20.mm',
110 'ios/video_render_ios_impl.h',
111 'ios/video_render_ios_impl.mm',
112 'ios/video_render_ios_view.h',
113 'ios/video_render_ios_view.mm',
114 ],
115 }],
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +0000116 ['OS!="linux" or include_internal_video_render==0', {
niklase@google.com470e71d2011-07-07 08:21:25 +0000117 'sources!': [
118 'linux/video_render_linux_impl.h',
119 'linux/video_x11_channel.h',
120 'linux/video_x11_render.h',
121 'linux/video_render_linux_impl.cc',
122 'linux/video_x11_channel.cc',
123 'linux/video_x11_render.cc',
124 ],
125 }],
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +0000126 ['OS!="mac" or include_internal_video_render==0', {
niklase@google.com470e71d2011-07-07 08:21:25 +0000127 'sources!': [
128 'mac/cocoa_full_screen_window.h',
129 'mac/cocoa_render_view.h',
130 'mac/video_render_agl.h',
131 'mac/video_render_mac_carbon_impl.h',
132 'mac/video_render_mac_cocoa_impl.h',
133 'mac/video_render_nsopengl.h',
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000134 'mac/video_render_nsopengl.mm',
135 'mac/video_render_mac_cocoa_impl.mm',
niklase@google.com470e71d2011-07-07 08:21:25 +0000136 'mac/video_render_agl.cc',
137 'mac/video_render_mac_carbon_impl.cc',
138 'mac/cocoa_render_view.mm',
139 'mac/cocoa_full_screen_window.mm',
140 ],
141 }],
fischman@webrtc.org36cf4d22013-09-12 17:39:53 +0000142 ['OS=="ios"', {
143 'all_dependent_settings': {
144 'xcode_settings': {
145 'OTHER_LDFLAGS': [
146 '-framework OpenGLES',
147 '-framework QuartzCore',
148 '-framework UIKit',
149 ],
150 },
151 },
152 }],
kjellander@webrtc.org132eccb2012-02-29 20:55:25 +0000153 ['OS=="mac"', {
154 'direct_dependent_settings': {
andrew@webrtc.org9841d922012-10-31 05:22:11 +0000155 'include_dirs': ['mac',],
kjellander@webrtc.org132eccb2012-02-29 20:55:25 +0000156 },
157 }],
tommi@webrtc.orgd2c3bed2013-02-18 14:53:04 +0000158 ['OS=="win" and include_internal_video_render==1', {
159 'variables': {
160 # 'directx_sdk_path' will be overridden in the condition block
161 # below, but it must not be declared as empty here since gyp
162 # will check if the first character is '/' for some reason.
163 # If it's empty, we'll get an out-of-bounds error.
164 'directx_sdk_path': 'will_be_overridden',
165 'directx_sdk_default_path': '<(DEPTH)/third_party/directxsdk/files',
166 'conditions': [
167 ['"<!(python <(DEPTH)/build/dir_exists.py <(directx_sdk_default_path))"=="True"', {
168 'directx_sdk_path': '<(DEPTH)/third_party/directxsdk/files',
169 }, {
170 'directx_sdk_path': '$(DXSDK_DIR)',
171 }],
172 ],
173 },
174
kjellander@webrtc.org6ba79a82012-11-23 09:41:42 +0000175 'include_dirs': [
176 '<(directx_sdk_path)/Include',
177 ],
178 }],
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +0000179 ['OS!="win" or include_internal_video_render==0', {
niklase@google.com470e71d2011-07-07 08:21:25 +0000180 'sources!': [
181 'windows/i_video_render_win.h',
182 'windows/video_render_direct3d9.h',
niklase@google.com470e71d2011-07-07 08:21:25 +0000183 'windows/video_render_windows_impl.h',
184 'windows/video_render_direct3d9.cc',
niklase@google.com470e71d2011-07-07 08:21:25 +0000185 'windows/video_render_windows_impl.cc',
186 ],
187 }],
niklase@google.com470e71d2011-07-07 08:21:25 +0000188 ] # conditions
189 }, # video_render_module
niklase@google.com470e71d2011-07-07 08:21:25 +0000190 ], # targets
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000191
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000192 'conditions': [
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +0000193 ['include_internal_video_render==1', {
andrew@webrtc.org9841d922012-10-31 05:22:11 +0000194 'defines': ['WEBRTC_INCLUDE_INTERNAL_VIDEO_RENDER',],
wu@webrtc.orgf3f2f6a2011-10-19 18:42:17 +0000195 }],
mflodman@webrtc.org6af95942012-05-24 13:23:35 +0000196 ['include_tests==1', {
xians@google.com09228152011-08-08 11:44:07 +0000197 'targets': [
198 {
phoglund@webrtc.org32fe90b2013-08-19 11:40:19 +0000199 'target_name': 'video_render_tests',
xians@google.com09228152011-08-08 11:44:07 +0000200 'type': 'executable',
201 'dependencies': [
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000202 'video_render_module',
203 'webrtc_utility',
204 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
andrew@webrtc.orgfa418ac2012-09-11 01:34:21 +0000205 '<(webrtc_root)/common_video/common_video.gyp:common_video',
xians@google.com09228152011-08-08 11:44:07 +0000206 ],
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000207 'sources': [
andrew@webrtc.org9841d922012-10-31 05:22:11 +0000208 'test/testAPI/testAPI.cc',
209 'test/testAPI/testAPI.h',
210 'test/testAPI/testAPI_android.cc',
211 'test/testAPI/testAPI_mac.mm',
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000212 ],
xians@google.com09228152011-08-08 11:44:07 +0000213 'conditions': [
xians@google.com09228152011-08-08 11:44:07 +0000214 ['OS=="mac" or OS=="linux"', {
215 'cflags': [
216 '-Wno-write-strings',
217 ],
218 'ldflags': [
219 '-lpthread -lm',
220 ],
221 }],
222 ['OS=="linux"', {
223 'libraries': [
224 '-lrt',
225 '-lXext',
andrew@webrtc.org199f4de2011-10-11 15:43:35 +0000226 '-lX11',
xians@google.com09228152011-08-08 11:44:07 +0000227 ],
228 }],
229 ['OS=="mac"', {
230 'xcode_settings': {
xians@google.com09228152011-08-08 11:44:07 +0000231 'OTHER_LDFLAGS': [
232 '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL',
233 ],
234 },
235 }],
236 ] # conditions
237 }, # video_render_module_test
238 ], # targets
kjellander@webrtc.org33654222013-08-22 07:57:00 +0000239 'conditions': [
240 ['test_isolation_mode != "noop"', {
241 'targets': [
242 {
243 'target_name': 'video_render_tests_run',
244 'type': 'none',
245 'dependencies': [
246 '<(import_isolate_path):import_isolate_gypi',
247 'video_render_tests',
248 ],
249 'includes': [
250 'video_render_tests.isolate',
251 ],
252 'sources': [
253 'video_render_tests.isolate',
254 ],
255 },
256 ],
257 }],
258 ],
mflodman@webrtc.org6af95942012-05-24 13:23:35 +0000259 }], # include_tests==0
xians@google.com09228152011-08-08 11:44:07 +0000260 ], # conditions
niklase@google.com470e71d2011-07-07 08:21:25 +0000261}
262