blob: eb3bc9a29d178c96b58f9c3bfc83edf4a61a5e8e [file] [log] [blame]
sergeyu@chromium.orgea2ea7b2013-04-17 18:21:42 +00001# Copyright (c) 2013 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{
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000010 'targets': [
11 {
12 'target_name': 'desktop_capture',
13 'type': 'static_library',
14 'dependencies': [
15 '<(webrtc_root)/system_wrappers/source/system_wrappers.gyp:system_wrappers',
16 ],
17 'sources': [
sergeyu@chromium.orgba6d56c2013-10-16 02:48:41 +000018 "desktop_and_cursor_composer.cc",
19 "desktop_and_cursor_composer.h",
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000020 "desktop_capture_types.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000021 "desktop_capturer.h",
22 "desktop_frame.cc",
23 "desktop_frame.h",
24 "desktop_frame_win.cc",
25 "desktop_frame_win.h",
26 "desktop_geometry.cc",
27 "desktop_geometry.h",
sergeyu@chromium.org91685dc2013-10-12 22:40:05 +000028 "desktop_capture_options.h",
29 "desktop_capture_options.cc",
30 "desktop_capturer.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000031 "desktop_region.cc",
32 "desktop_region.h",
33 "differ.cc",
34 "differ.h",
35 "differ_block.cc",
36 "differ_block.h",
37 "mac/desktop_configuration.h",
38 "mac/desktop_configuration.mm",
39 "mac/scoped_pixel_buffer_object.cc",
40 "mac/scoped_pixel_buffer_object.h",
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +000041 "mouse_cursor.cc",
42 "mouse_cursor.h",
43 "mouse_cursor_monitor.h",
44 "mouse_cursor_monitor_mac.mm",
45 "mouse_cursor_monitor_win.cc",
46 "mouse_cursor_monitor_x11.cc",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000047 "mouse_cursor_shape.h",
48 "screen_capture_frame_queue.cc",
49 "screen_capture_frame_queue.h",
sergeyu@chromium.org91685dc2013-10-12 22:40:05 +000050 "screen_capturer.cc",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000051 "screen_capturer.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000052 "screen_capturer_helper.cc",
53 "screen_capturer_helper.h",
54 "screen_capturer_mac.mm",
55 "screen_capturer_win.cc",
56 "screen_capturer_x11.cc",
57 "shared_desktop_frame.cc",
58 "shared_desktop_frame.h",
59 "shared_memory.cc",
60 "shared_memory.h",
alexeypa@chromium.orge8c9ecd2013-06-10 22:29:17 +000061 "win/cursor.cc",
62 "win/cursor.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000063 "win/desktop.cc",
64 "win/desktop.h",
alexeypa@chromium.orge8c9ecd2013-06-10 22:29:17 +000065 "win/scoped_gdi_object.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000066 "win/scoped_thread_desktop.cc",
67 "win/scoped_thread_desktop.h",
sergeyu@chromium.org91685dc2013-10-12 22:40:05 +000068 "window_capturer.cc",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000069 "window_capturer.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000070 "window_capturer_mac.cc",
71 "window_capturer_win.cc",
sergeyu@chromium.orge562e022013-08-23 18:22:12 +000072 "window_capturer_x11.cc",
sergeyu@chromium.org91685dc2013-10-12 22:40:05 +000073 "x11/shared_x_display.h",
74 "x11/shared_x_display.cc",
sergeyu@chromium.orge562e022013-08-23 18:22:12 +000075 "x11/x_error_trap.cc",
76 "x11/x_error_trap.h",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000077 "x11/x_server_pixel_buffer.cc",
78 "x11/x_server_pixel_buffer.h",
79 ],
80 'conditions': [
81 ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', {
82 'dependencies': [
83 'desktop_capture_differ_sse2',
84 ],
85 }],
86 ['use_x11 == 1', {
87 'link_settings': {
88 'libraries': [
89 '-lX11',
sergeyu@chromium.orge562e022013-08-23 18:22:12 +000090 '-lXcomposite',
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000091 '-lXdamage',
92 '-lXext',
93 '-lXfixes',
sergeyu@chromium.orge562e022013-08-23 18:22:12 +000094 '-lXrender',
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +000095 ],
96 },
97 }],
98 ['OS!="win" and OS!="mac" and use_x11==0', {
99 'sources': [
sergeyu@chromium.orgaf54d4b2013-10-16 02:42:38 +0000100 "mouse_cursor_monitor_null.cc",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000101 "screen_capturer_null.cc",
sergeyu@chromium.orge562e022013-08-23 18:22:12 +0000102 "window_capturer_null.cc",
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000103 ],
104 }],
105 ['OS=="mac"', {
106 'link_settings': {
107 'libraries': [
108 '$(SDKROOT)/System/Library/Frameworks/AppKit.framework',
109 '$(SDKROOT)/System/Library/Frameworks/IOKit.framework',
110 '$(SDKROOT)/System/Library/Frameworks/OpenGL.framework',
111 ],
112 },
113 }],
114 ],
115 },
116 ], # targets
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000117 'conditions': [
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000118 ['OS!="ios" and (target_arch=="ia32" or target_arch=="x64")', {
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000119 'targets': [
120 {
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000121 # Have to be compiled as a separate target because it needs to be
122 # compiled with SSE2 enabled.
123 'target_name': 'desktop_capture_differ_sse2',
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000124 'type': 'static_library',
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000125 'sources': [
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000126 "differ_block_sse2.cc",
127 "differ_block_sse2.h",
128 ],
129 'conditions': [
130 [ 'os_posix == 1 and OS != "mac"', {
131 'cflags': [
132 '-msse2',
133 ],
134 }],
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000135 ],
136 },
137 ], # targets
sergeyu@chromium.org6c82a7e2013-06-04 18:51:23 +0000138 }],
sergeyu@chromium.orge032f9f2013-05-19 07:02:48 +0000139 ],
sergeyu@chromium.orgea2ea7b2013-04-17 18:21:42 +0000140}