| # 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/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/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', |
| ], |
| 'sources': [ |
| 'video_capture_tests.isolate', |
| ], |
| }, |
| ], |
| }], |
| ], |
| }], |
| ], |
| } |
| |