| # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 
 | # | 
 | # Use of this source code is governed by a BSD-style license | 
 | # that can be found in the LICENSE file in the root of the source | 
 | # tree. An additional intellectual property rights grant can be found | 
 | # in the file PATENTS.  All contributing project authors may | 
 | # be found in the AUTHORS file in the root of the source tree. | 
 |  | 
 | { | 
 |   'targets': [ | 
 |     { | 
 |       # Note this library is missing an implementation for the video capture. | 
 |       # Targets must link with either 'video_capture_module_impl' or | 
 |       # 'video_capture_module_internal_impl' depending on whether they want to | 
 |       # use the internal capturer. | 
 |       'target_name': 'video_capture_module', | 
 |       'type': 'static_library', | 
 |       'dependencies': [ | 
 |         'webrtc_utility', | 
 |         '<(webrtc_root)/common_video/common_video.gyp:common_video', | 
 |         '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', | 
 |       ], | 
 |       'sources': [ | 
 |         'device_info_impl.cc', | 
 |         'device_info_impl.h', | 
 |         'include/video_capture.h', | 
 |         'include/video_capture_defines.h', | 
 |         'include/video_capture_factory.h', | 
 |         'video_capture_config.h', | 
 |         'video_capture_delay.h', | 
 |         'video_capture_factory.cc', | 
 |         'video_capture_impl.cc', | 
 |         'video_capture_impl.h', | 
 |       ], | 
 |     }, | 
 |     { | 
 |       # Default video capture module implementation that only supports external | 
 |       # capture. | 
 |       'target_name': 'video_capture_module_impl', | 
 |       'type': 'static_library', | 
 |       'dependencies': [ | 
 |         'video_capture_module', | 
 |       ], | 
 |       'sources': [ | 
 |         'external/device_info_external.cc', | 
 |         'external/video_capture_external.cc', | 
 |       ], | 
 |     }, | 
 |     { | 
 |       'target_name': 'video_capture_module_internal_impl', | 
 |       'type': 'static_library', | 
 |       'dependencies': [ | 
 |         'video_capture_module', | 
 |       ], | 
 |       'conditions': [ | 
 |         ['OS=="linux"', { | 
 |           'sources': [ | 
 |             'linux/device_info_linux.cc', | 
 |             'linux/device_info_linux.h', | 
 |             'linux/video_capture_linux.cc', | 
 |             'linux/video_capture_linux.h', | 
 |           ], | 
 |         }],  # linux | 
 |         ['OS=="mac"', { | 
 |           'sources': [ | 
 |             'mac/qtkit/video_capture_qtkit.h', | 
 |             'mac/qtkit/video_capture_qtkit.mm', | 
 |             'mac/qtkit/video_capture_qtkit_info.h', | 
 |             'mac/qtkit/video_capture_qtkit_info.mm', | 
 |             'mac/qtkit/video_capture_qtkit_info_objc.h', | 
 |             'mac/qtkit/video_capture_qtkit_info_objc.mm', | 
 |             'mac/qtkit/video_capture_qtkit_objc.h', | 
 |             'mac/qtkit/video_capture_qtkit_objc.mm', | 
 |             'mac/qtkit/video_capture_qtkit_utility.h', | 
 |             'mac/video_capture_mac.mm', | 
 |           ], | 
 |           'link_settings': { | 
 |             'xcode_settings': { | 
 |               'OTHER_LDFLAGS': [ | 
 |                 '-framework Cocoa', | 
 |                 '-framework CoreVideo', | 
 |                 '-framework QTKit', | 
 |               ], | 
 |             }, | 
 |           }, | 
 |         }],  # mac | 
 |         # Note that since winsdk_samples isn't pulled into chromium gyp will | 
 |         # fail to parse this rule and try to resolve the dependencies. This | 
 |         # is not a problem since the internal video capture implementation | 
 |         # should not be used in chrome - issue 3831. | 
 |         ['OS=="win" and build_with_chromium==0', { | 
 |           'dependencies': [ | 
 |             '<(DEPTH)/third_party/winsdk_samples/winsdk_samples.gyp:directshow_baseclasses', | 
 |           ], | 
 |           'sources': [ | 
 |             'windows/device_info_ds.cc', | 
 |             'windows/device_info_ds.h', | 
 |             'windows/device_info_mf.cc', | 
 |             'windows/device_info_mf.h', | 
 |             'windows/help_functions_ds.cc', | 
 |             'windows/help_functions_ds.h', | 
 |             'windows/sink_filter_ds.cc', | 
 |             'windows/sink_filter_ds.h', | 
 |             'windows/video_capture_ds.cc', | 
 |             'windows/video_capture_ds.h', | 
 |             'windows/video_capture_factory_windows.cc', | 
 |             'windows/video_capture_mf.cc', | 
 |             'windows/video_capture_mf.h', | 
 |           ], | 
 |           'link_settings': { | 
 |             'libraries': [ | 
 |               '-lStrmiids.lib', | 
 |             ], | 
 |           }, | 
 |         }],  # win | 
 |         ['OS=="android"', { | 
 |           'dependencies': [ | 
 |             '<(DEPTH)/third_party/icu/icu.gyp:icuuc', | 
 |             '<(DEPTH)/third_party/jsoncpp/jsoncpp.gyp:jsoncpp', | 
 |           ], | 
 |           'sources': [ | 
 |             'android/device_info_android.cc', | 
 |             'android/device_info_android.h', | 
 |             'android/video_capture_android.cc', | 
 |             'android/video_capture_android.h', | 
 |           ], | 
 |         }],  # android | 
 |         ['OS=="ios"', { | 
 |           'sources': [ | 
 |             'ios/device_info_ios.h', | 
 |             'ios/device_info_ios.mm', | 
 |             'ios/device_info_ios_objc.h', | 
 |             'ios/device_info_ios_objc.mm', | 
 |             'ios/rtc_video_capture_ios_objc.h', | 
 |             'ios/rtc_video_capture_ios_objc.mm', | 
 |             'ios/video_capture_ios.h', | 
 |             'ios/video_capture_ios.mm', | 
 |           ], | 
 |           'xcode_settings': { | 
 |             'CLANG_ENABLE_OBJC_ARC': 'YES', | 
 |           }, | 
 |           'all_dependent_settings': { | 
 |             'xcode_settings': { | 
 |               'OTHER_LDFLAGS': [ | 
 |                 '-framework AVFoundation', | 
 |                 '-framework CoreMedia', | 
 |                 '-framework CoreVideo', | 
 |                 '-framework UIKit', | 
 |               ], | 
 |             }, | 
 |           }, | 
 |         }],  # ios | 
 |       ], # conditions | 
 |     } | 
 |   ], | 
 |   'conditions': [ | 
 |     ['include_tests==1', { | 
 |       'targets': [ | 
 |         { | 
 |           'target_name': 'video_capture_tests', | 
 |           'type': '<(gtest_target_type)', | 
 |           'dependencies': [ | 
 |             'video_capture_module', | 
 | 	    'video_capture_module_internal_impl', | 
 |             'webrtc_utility', | 
 |             '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers', | 
 |             '<(DEPTH)/testing/gtest.gyp:gtest', | 
 |           ], | 
 |           'sources': [ | 
 |             'ensure_initialized.cc', | 
 |             'ensure_initialized.h', | 
 |             'test/video_capture_unittest.cc', | 
 |             'test/video_capture_main_mac.mm', | 
 |           ], | 
 |           'conditions': [ | 
 |             ['OS=="mac" or OS=="linux"', { | 
 |               'cflags': [ | 
 |                 '-Wno-write-strings', | 
 |               ], | 
 |               'ldflags': [ | 
 |                 '-lpthread -lm', | 
 |               ], | 
 |             }], | 
 |             ['OS=="linux"', { | 
 |               'libraries': [ | 
 |                 '-lrt', | 
 |                 '-lXext', | 
 |                 '-lX11', | 
 |               ], | 
 |             }], | 
 |             ['OS=="android"', { | 
 |               'dependencies': [ | 
 |                 '<(DEPTH)/testing/android/native_test.gyp:native_test_native_code', | 
 |               ], | 
 | 	      # Need to disable error due to the line in | 
 | 	      # base/android/jni_android.h triggering it: | 
 | 	      # const BASE_EXPORT jobject GetApplicationContext() | 
 | 	      # error: type qualifiers ignored on function return type | 
 | 	      'cflags': [ | 
 | 	        '-Wno-ignored-qualifiers', | 
 | 	      ], | 
 |             }], | 
 |             ['OS=="mac"', { | 
 |               'dependencies': [ | 
 |                 # Link with a special main for mac so we can use the webcam. | 
 |                 '<(webrtc_root)/test/test.gyp:test_support_main_threaded_mac', | 
 |               ], | 
 |               'xcode_settings': { | 
 |                 # TODO(andrew): CoreAudio and AudioToolbox shouldn't be needed. | 
 |                 'OTHER_LDFLAGS': [ | 
 |                   '-framework Foundation -framework AppKit -framework Cocoa -framework OpenGL -framework CoreVideo -framework CoreAudio -framework AudioToolbox', | 
 |                 ], | 
 |               }, | 
 |             }], # OS=="mac" | 
 |             ['OS!="mac"', { | 
 |               'dependencies': [ | 
 |                 # Otherwise, use the regular main. | 
 |                 '<(webrtc_root)/test/test.gyp:test_support_main', | 
 |               ], | 
 |             }], # OS!="mac" | 
 |           ] # conditions | 
 |         }, | 
 |       ], # targets | 
 |       'conditions': [ | 
 |         ['OS=="android"', { | 
 |           'targets': [ | 
 |             { | 
 |               'target_name': 'video_capture_tests_apk_target', | 
 |               'type': 'none', | 
 |               'dependencies': [ | 
 |                 '<(apk_tests_path):video_capture_tests_apk', | 
 |               ], | 
 |             }, | 
 |           ], | 
 |         }], | 
 |         ['test_isolation_mode != "noop"', { | 
 |           'targets': [ | 
 |             { | 
 |               'target_name': 'video_capture_tests_run', | 
 |               'type': 'none', | 
 |               'dependencies': [ | 
 |                 'video_capture_tests', | 
 |               ], | 
 |               'includes': [ | 
 |                 '../../build/isolate.gypi', | 
 |                 'video_capture_tests.isolate', | 
 |               ], | 
 |               'sources': [ | 
 |                 'video_capture_tests.isolate', | 
 |               ], | 
 |             }, | 
 |           ], | 
 |         }], | 
 |       ], | 
 |     }], | 
 |   ], | 
 | } | 
 |  |