| # Copyright (c) 2014 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. |
| |
| import("../../build/webrtc.gni") |
| |
| # Note this target is missing an implementation for the video capture. |
| # Targets must link with either 'video_capture' or |
| # 'video_capture_internal_impl' depending on whether they want to |
| # use the internal capturer. |
| rtc_source_set("video_capture_module") { |
| sources = [ |
| "device_info_impl.cc", |
| "device_info_impl.h", |
| "video_capture.h", |
| "video_capture_config.h", |
| "video_capture_defines.h", |
| "video_capture_delay.h", |
| "video_capture_factory.cc", |
| "video_capture_factory.h", |
| "video_capture_impl.cc", |
| "video_capture_impl.h", |
| ] |
| |
| deps = [ |
| "../..:webrtc_common", |
| "../../common_video", |
| "../../system_wrappers", |
| "../utility", |
| ] |
| |
| if (is_clang) { |
| # Suppress warnings from Chrome's Clang plugins. |
| # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. |
| suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] |
| } |
| } |
| |
| rtc_source_set("video_capture") { |
| sources = [ |
| "external/device_info_external.cc", |
| "external/video_capture_external.cc", |
| ] |
| |
| deps = [ |
| ":video_capture_module", |
| "../../system_wrappers", |
| ] |
| |
| if (is_clang) { |
| # Suppress warnings from Chrome's Clang plugins. |
| # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. |
| suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] |
| } |
| } |
| |
| if (!build_with_chromium) { |
| config("video_capture_internal_impl_config") { |
| if (is_ios) { |
| libs = [ |
| "AVFoundation.framework", |
| "CoreMedia.framework", |
| "CoreVideo.framework", |
| ] |
| } |
| } |
| |
| config("video_capture_internal_impl_warnings_config") { |
| if (is_win && is_clang) { |
| cflags = [ |
| "-Wno-comment", |
| "-Wno-ignored-attributes", |
| |
| # See https://bugs.chromium.org/p/webrtc/issues/detail?id=6269 |
| # for -Wno-ignored-qualifiers |
| "-Wno-ignored-qualifiers", |
| "-Wno-microsoft-extra-qualification", |
| "-Wno-missing-braces", |
| "-Wno-overloaded-virtual", |
| "-Wno-reorder", |
| "-Wno-writable-strings", |
| ] |
| } |
| } |
| |
| rtc_source_set("video_capture_internal_impl") { |
| configs += [ ":video_capture_internal_impl_warnings_config" ] |
| |
| deps = [ |
| ":video_capture_module", |
| "../../system_wrappers", |
| ] |
| |
| if (is_linux) { |
| sources = [ |
| "linux/device_info_linux.cc", |
| "linux/device_info_linux.h", |
| "linux/video_capture_linux.cc", |
| "linux/video_capture_linux.h", |
| ] |
| deps += [ "../..:webrtc_common" ] |
| } |
| if (is_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", |
| ] |
| |
| libs = [ |
| # For NSAlert in video_capture_qtkit_info_objc.mm. |
| "Cocoa.framework", |
| |
| # For GetGestalt in video_capture_mac.mm. |
| "CoreServices.framework", |
| "CoreVideo.framework", |
| "QTKit.framework", |
| ] |
| } |
| if (is_win) { |
| 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", |
| ] |
| |
| libs = [ "Strmiids.lib" ] |
| |
| deps += [ "//third_party/winsdk_samples" ] |
| } |
| if (is_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", |
| ] |
| |
| cflags = [ |
| "-fobjc-arc", # CLANG_ENABLE_OBJC_ARC = YES. |
| |
| # To avoid warnings for deprecated videoMinFrameDuration and |
| # videoMaxFrameDuration properties in iOS 7.0. |
| # See webrtc:3705 for more details. |
| "-Wno-deprecated-declarations", |
| ] |
| } |
| |
| all_dependent_configs = [ ":video_capture_internal_impl_config" ] |
| |
| if (is_clang) { |
| # Suppress warnings from Chrome's Clang plugins. |
| # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. |
| suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] |
| } |
| } |
| |
| if (!is_android && rtc_include_tests) { |
| rtc_test("video_capture_tests") { |
| sources = [ |
| "test/video_capture_main_mac.mm", |
| "test/video_capture_unittest.cc", |
| ] |
| |
| cflags = [] |
| if (is_linux || is_mac) { |
| cflags += [ "-Wno-write-strings" ] |
| } |
| |
| ldflags = [] |
| if (is_linux || is_mac) { |
| ldflags += [ |
| "-lpthread", |
| "-lm", |
| ] |
| } |
| if (is_linux) { |
| ldflags += [ |
| "-lrt", |
| "-lXext", |
| "-lX11", |
| ] |
| } |
| |
| deps = [ |
| ":video_capture_internal_impl", |
| ":video_capture_module", |
| "../../system_wrappers:system_wrappers_default", |
| "../../test:video_test_common", |
| "../utility", |
| "//testing/gtest", |
| ] |
| if (is_mac) { |
| deps += [ "//webrtc/test:test_support_main_threaded_mac" ] |
| } else { |
| deps += [ "//webrtc/test:test_support_main" ] |
| } |
| |
| if (is_clang) { |
| # Suppress warnings from Chrome's Clang plugins. |
| # See http://code.google.com/p/webrtc/issues/detail?id=163 for details. |
| suppressed_configs += [ "//build/config/clang:find_bad_constructs" ] |
| } |
| } |
| } |
| } |