kjellander | a96e2d7 | 2016-02-04 23:52:28 -0800 | [diff] [blame^] | 1 | # Copyright (c) 2016 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 | |
| 9 | { |
| 10 | 'includes': [ '../build/common.gypi', ], |
| 11 | 'targets': [ |
| 12 | { |
| 13 | 'target_name': 'rtc_media', |
| 14 | 'type': 'static_library', |
| 15 | 'dependencies': [ |
| 16 | '<(webrtc_root)/base/base.gyp:rtc_base', |
| 17 | '<(webrtc_root)/common.gyp:webrtc_common', |
| 18 | '<(webrtc_root)/modules/modules.gyp:video_render_module', |
| 19 | '<(webrtc_root)/webrtc.gyp:webrtc', |
| 20 | '<(webrtc_root)/voice_engine/voice_engine.gyp:voice_engine', |
| 21 | '<(webrtc_root)/sound/sound.gyp:rtc_sound', |
| 22 | '<(webrtc_root)/system_wrappers/system_wrappers.gyp:metrics_default', |
| 23 | '<(webrtc_root)/system_wrappers/system_wrappers.gyp:system_wrappers', |
| 24 | '<(webrtc_root)/libjingle/xmllite/xmllite.gyp:rtc_xmllite', |
| 25 | '<(webrtc_root)/libjingle/xmpp/xmpp.gyp:rtc_xmpp', |
| 26 | '<(webrtc_root)/p2p/p2p.gyp:rtc_p2p', |
| 27 | ], |
| 28 | 'direct_dependent_settings': { |
| 29 | 'include_dirs': [ |
| 30 | '<(libyuv_dir)/include', |
| 31 | ], |
| 32 | }, |
| 33 | 'sources': [ |
| 34 | 'base/audioframe.h', |
| 35 | 'base/audiorenderer.h', |
| 36 | 'base/capturemanager.cc', |
| 37 | 'base/capturemanager.h', |
| 38 | 'base/capturerenderadapter.cc', |
| 39 | 'base/capturerenderadapter.h', |
| 40 | 'base/codec.cc', |
| 41 | 'base/codec.h', |
| 42 | 'base/constants.cc', |
| 43 | 'base/constants.h', |
| 44 | 'base/cpuid.cc', |
| 45 | 'base/cpuid.h', |
| 46 | 'base/cryptoparams.h', |
| 47 | 'base/device.h', |
| 48 | 'base/fakescreencapturerfactory.h', |
| 49 | 'base/hybriddataengine.h', |
| 50 | 'base/mediachannel.h', |
| 51 | 'base/mediacommon.h', |
| 52 | 'base/mediaengine.cc', |
| 53 | 'base/mediaengine.h', |
| 54 | 'base/rtpdataengine.cc', |
| 55 | 'base/rtpdataengine.h', |
| 56 | 'base/rtpdump.cc', |
| 57 | 'base/rtpdump.h', |
| 58 | 'base/rtputils.cc', |
| 59 | 'base/rtputils.h', |
| 60 | 'base/screencastid.h', |
| 61 | 'base/streamparams.cc', |
| 62 | 'base/streamparams.h', |
| 63 | 'base/turnutils.cc', |
| 64 | 'base/turnutils.h', |
| 65 | 'base/videoadapter.cc', |
| 66 | 'base/videoadapter.h', |
| 67 | 'base/videocapturer.cc', |
| 68 | 'base/videocapturer.h', |
| 69 | 'base/videocapturerfactory.h', |
| 70 | 'base/videocommon.cc', |
| 71 | 'base/videocommon.h', |
| 72 | 'base/videoframe.cc', |
| 73 | 'base/videoframe.h', |
| 74 | 'base/videoframefactory.cc', |
| 75 | 'base/videoframefactory.h', |
| 76 | 'base/videorenderer.h', |
| 77 | 'base/yuvframegenerator.cc', |
| 78 | 'base/yuvframegenerator.h', |
| 79 | 'devices/deviceinfo.h', |
| 80 | 'devices/devicemanager.cc', |
| 81 | 'devices/devicemanager.h', |
| 82 | 'devices/dummydevicemanager.h', |
| 83 | 'devices/filevideocapturer.cc', |
| 84 | 'devices/filevideocapturer.h', |
| 85 | 'devices/videorendererfactory.h', |
| 86 | 'devices/yuvframescapturer.cc', |
| 87 | 'devices/yuvframescapturer.h', |
| 88 | 'sctp/sctpdataengine.cc', |
| 89 | 'sctp/sctpdataengine.h', |
| 90 | 'webrtc/nullwebrtcvideoengine.h', |
| 91 | 'webrtc/simulcast.cc', |
| 92 | 'webrtc/simulcast.h', |
| 93 | 'webrtc/webrtccommon.h', |
| 94 | 'webrtc/webrtcmediaengine.cc', |
| 95 | 'webrtc/webrtcmediaengine.h', |
| 96 | 'webrtc/webrtcmediaengine.cc', |
| 97 | 'webrtc/webrtcvideocapturer.cc', |
| 98 | 'webrtc/webrtcvideocapturer.h', |
| 99 | 'webrtc/webrtcvideocapturerfactory.h', |
| 100 | 'webrtc/webrtcvideocapturerfactory.cc', |
| 101 | 'webrtc/webrtcvideodecoderfactory.h', |
| 102 | 'webrtc/webrtcvideoencoderfactory.h', |
| 103 | 'webrtc/webrtcvideoengine2.cc', |
| 104 | 'webrtc/webrtcvideoengine2.h', |
| 105 | 'webrtc/webrtcvideoframe.cc', |
| 106 | 'webrtc/webrtcvideoframe.h', |
| 107 | 'webrtc/webrtcvideoframefactory.cc', |
| 108 | 'webrtc/webrtcvideoframefactory.h', |
| 109 | 'webrtc/webrtcvoe.h', |
| 110 | 'webrtc/webrtcvoiceengine.cc', |
| 111 | 'webrtc/webrtcvoiceengine.h', |
| 112 | ], |
| 113 | # TODO(kjellander): Make the code compile without disabling these flags. |
| 114 | # See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307 |
| 115 | 'cflags': [ |
| 116 | '-Wno-deprecated-declarations', |
| 117 | ], |
| 118 | 'cflags!': [ |
| 119 | '-Wextra', |
| 120 | ], |
| 121 | 'cflags_cc!': [ |
| 122 | '-Wnon-virtual-dtor', |
| 123 | '-Woverloaded-virtual', |
| 124 | ], |
| 125 | 'msvs_disabled_warnings': [ |
| 126 | 4245, # conversion from 'int' to 'size_t', signed/unsigned mismatch. |
| 127 | 4267, # conversion from 'size_t' to 'int', possible loss of data. |
| 128 | 4389, # signed/unsigned mismatch. |
| 129 | ], |
| 130 | 'conditions': [ |
| 131 | ['build_libyuv==1', { |
| 132 | 'dependencies': ['<(DEPTH)/third_party/libyuv/libyuv.gyp:libyuv',], |
| 133 | }], |
| 134 | ['build_usrsctp==1', { |
| 135 | 'include_dirs': [ |
| 136 | # TODO(jiayl): move this into the direct_dependent_settings of |
| 137 | # usrsctp.gyp. |
| 138 | '<(DEPTH)/third_party/usrsctp/usrsctplib', |
| 139 | ], |
| 140 | 'dependencies': [ |
| 141 | '<(DEPTH)/third_party/usrsctp/usrsctp.gyp:usrsctplib', |
| 142 | ], |
| 143 | }], |
| 144 | ['build_with_chromium==1', { |
| 145 | 'dependencies': [ |
| 146 | '<(webrtc_root)/modules/modules.gyp:video_capture', |
| 147 | '<(webrtc_root)/modules/modules.gyp:video_render', |
| 148 | ], |
| 149 | }, { |
| 150 | 'defines': [ |
| 151 | 'HAVE_WEBRTC_VIDEO', |
| 152 | 'HAVE_WEBRTC_VOICE', |
| 153 | ], |
| 154 | 'direct_dependent_settings': { |
| 155 | 'defines': [ |
| 156 | 'HAVE_WEBRTC_VIDEO', |
| 157 | 'HAVE_WEBRTC_VOICE', |
| 158 | ], |
| 159 | }, |
| 160 | 'dependencies': [ |
| 161 | '<(webrtc_root)/modules/modules.gyp:video_capture_module_internal_impl', |
| 162 | '<(webrtc_root)/modules/modules.gyp:video_render_module_internal_impl', |
| 163 | ], |
| 164 | }], |
| 165 | ['OS=="linux"', { |
| 166 | 'sources': [ |
| 167 | 'devices/libudevsymboltable.cc', |
| 168 | 'devices/libudevsymboltable.h', |
| 169 | 'devices/linuxdeviceinfo.cc', |
| 170 | 'devices/linuxdevicemanager.cc', |
| 171 | 'devices/linuxdevicemanager.h', |
| 172 | 'devices/v4llookup.cc', |
| 173 | 'devices/v4llookup.h', |
| 174 | ], |
| 175 | 'conditions': [ |
| 176 | ['use_gtk==1', { |
| 177 | 'sources': [ |
| 178 | 'devices/gtkvideorenderer.cc', |
| 179 | 'devices/gtkvideorenderer.h', |
| 180 | ], |
| 181 | 'cflags': [ |
| 182 | '<!@(pkg-config --cflags gobject-2.0 gthread-2.0 gtk+-2.0)', |
| 183 | ], |
| 184 | }], |
| 185 | ], |
| 186 | 'include_dirs': [ |
| 187 | 'third_party/libudev' |
| 188 | ], |
| 189 | 'libraries': [ |
| 190 | '-lrt', |
| 191 | ], |
| 192 | }], |
| 193 | ['OS=="win"', { |
| 194 | 'sources': [ |
| 195 | 'devices/gdivideorenderer.cc', |
| 196 | 'devices/gdivideorenderer.h', |
| 197 | 'devices/win32deviceinfo.cc', |
| 198 | 'devices/win32devicemanager.cc', |
| 199 | 'devices/win32devicemanager.h', |
| 200 | ], |
| 201 | 'msvs_settings': { |
| 202 | 'VCLibrarianTool': { |
| 203 | 'AdditionalDependencies': [ |
| 204 | 'd3d9.lib', |
| 205 | 'gdi32.lib', |
| 206 | 'strmiids.lib', |
| 207 | 'winmm.lib', |
| 208 | ], |
| 209 | }, |
| 210 | }, |
| 211 | }], |
| 212 | ['OS=="mac"', { |
| 213 | 'sources': [ |
| 214 | 'devices/macdeviceinfo.cc', |
| 215 | 'devices/macdevicemanager.cc', |
| 216 | 'devices/macdevicemanager.h', |
| 217 | 'devices/macdevicemanagermm.mm', |
| 218 | ], |
| 219 | 'conditions': [ |
| 220 | ['target_arch=="ia32"', { |
| 221 | 'sources': [ |
| 222 | 'devices/carbonvideorenderer.cc', |
| 223 | 'devices/carbonvideorenderer.h', |
| 224 | ], |
| 225 | 'link_settings': { |
| 226 | 'xcode_settings': { |
| 227 | 'OTHER_LDFLAGS': [ |
| 228 | '-framework Carbon', |
| 229 | ], |
| 230 | }, |
| 231 | }, |
| 232 | }], |
| 233 | ], |
| 234 | 'xcode_settings': { |
| 235 | 'WARNING_CFLAGS': [ |
| 236 | # TODO(ronghuawu): Update macdevicemanager.cc to stop using |
| 237 | # deprecated functions and remove this flag. |
| 238 | '-Wno-deprecated-declarations', |
| 239 | ], |
| 240 | # Disable partial availability warning to prevent errors |
| 241 | # in macdevicemanagermm.mm using AVFoundation. |
| 242 | # https://code.google.com/p/webrtc/issues/detail?id=4695 |
| 243 | 'WARNING_CFLAGS!': ['-Wpartial-availability'], |
| 244 | }, |
| 245 | 'link_settings': { |
| 246 | 'xcode_settings': { |
| 247 | 'OTHER_LDFLAGS': [ |
| 248 | '-weak_framework AVFoundation', |
| 249 | '-framework Cocoa', |
| 250 | '-framework CoreAudio', |
| 251 | '-framework CoreVideo', |
| 252 | '-framework OpenGL', |
| 253 | '-framework QTKit', |
| 254 | ], |
| 255 | }, |
| 256 | }, |
| 257 | }], |
| 258 | ['OS=="ios"', { |
| 259 | 'sources': [ |
| 260 | 'devices/mobiledevicemanager.cc', |
| 261 | ], |
| 262 | 'include_dirs': [ |
| 263 | # TODO(sjlee) Remove when vp8 is building for iOS. vp8 pulls in |
| 264 | # libjpeg which pulls in libyuv which currently disabled. |
| 265 | '../../third_party/libyuv/include', |
| 266 | ], |
| 267 | # TODO(kjellander): Make the code compile without disabling these. |
| 268 | # See https://bugs.chromium.org/p/webrtc/issues/detail?id=3307 |
| 269 | 'cflags': [ |
| 270 | '-Wno-unused-const-variable', |
| 271 | ], |
| 272 | 'xcode_settings': { |
| 273 | 'WARNING_CFLAGS': [ |
| 274 | '-Wno-unused-const-variable', |
| 275 | ], |
| 276 | }, |
| 277 | }], |
| 278 | ['OS=="ios" or (OS=="mac" and target_arch!="ia32")', { |
| 279 | 'defines': [ |
| 280 | 'CARBON_DEPRECATED=YES', |
| 281 | ], |
| 282 | }], |
| 283 | ['OS=="android"', { |
| 284 | 'sources': [ |
| 285 | 'devices/mobiledevicemanager.cc', |
| 286 | ], |
| 287 | }], |
| 288 | ], |
| 289 | }, # target rtc_media |
| 290 | ], # targets. |
| 291 | } |