Upstream version 10.39.225.0
[platform/framework/web/crosswalk.git] / src / third_party / webrtc / system_wrappers / source / system_wrappers.gyp
1 # Copyright (c) 2012 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': 'system_wrappers',
14       'type': 'static_library',
15       'include_dirs': [
16         'spreadsortlib',
17         '../interface',
18       ],
19       'dependencies': [
20         '../../base/base.gyp:rtc_base_approved',
21       ],
22       'direct_dependent_settings': {
23         'include_dirs': [
24           '../interface',
25         ],
26       },
27       'sources': [
28         '../interface/aligned_malloc.h',
29         '../interface/atomic32.h',
30         '../interface/clock.h',
31         '../interface/compile_assert.h',
32         '../interface/condition_variable_wrapper.h',
33         '../interface/cpu_info.h',
34         '../interface/cpu_features_wrapper.h',
35         '../interface/critical_section_wrapper.h',
36         '../interface/data_log.h',
37         '../interface/data_log_c.h',
38         '../interface/data_log_impl.h',
39         '../interface/event_tracer.h',
40         '../interface/event_wrapper.h',
41         '../interface/field_trial.h',
42         '../interface/file_wrapper.h',
43         '../interface/fix_interlocked_exchange_pointer_win.h',
44         '../interface/logcat_trace_context.h',
45         '../interface/logging.h',
46         '../interface/ref_count.h',
47         '../interface/rtp_to_ntp.h',
48         '../interface/rw_lock_wrapper.h',
49         '../interface/scoped_ptr.h',
50         '../interface/scoped_refptr.h',
51         '../interface/scoped_vector.h',
52         '../interface/sleep.h',
53         '../interface/sort.h',
54         '../interface/static_instance.h',
55         '../interface/stl_util.h',
56         '../interface/stringize_macros.h',
57         '../interface/thread_wrapper.h',
58         '../interface/tick_util.h',
59         '../interface/timestamp_extrapolator.h',
60         '../interface/trace.h',
61         '../interface/trace_event.h',
62         '../interface/utf_util_win.h',
63         'aligned_malloc.cc',
64         'atomic32_mac.cc',
65         'atomic32_posix.cc',
66         'atomic32_win.cc',
67         'clock.cc',
68         'condition_variable.cc',
69         'condition_variable_posix.cc',
70         'condition_variable_posix.h',
71         'condition_variable_event_win.cc',
72         'condition_variable_event_win.h',
73         'condition_variable_native_win.cc',
74         'condition_variable_native_win.h',
75         'cpu_info.cc',
76         'cpu_features.cc',
77         'critical_section.cc',
78         'critical_section_posix.cc',
79         'critical_section_posix.h',
80         'critical_section_win.cc',
81         'critical_section_win.h',
82         'data_log.cc',
83         'data_log_c.cc',
84         'data_log_no_op.cc',
85         'event.cc',
86         'event_posix.cc',
87         'event_posix.h',
88         'event_tracer.cc',
89         'event_win.cc',
90         'event_win.h',
91         'file_impl.cc',
92         'file_impl.h',
93         'logcat_trace_context.cc',
94         'logging.cc',
95         'rtp_to_ntp.cc',
96         'rw_lock.cc',
97         'rw_lock_generic.cc',
98         'rw_lock_generic.h',
99         'rw_lock_posix.cc',
100         'rw_lock_posix.h',
101         'rw_lock_win.cc',
102         'rw_lock_win.h',
103         'set_thread_name_win.h',
104         'sleep.cc',
105         'sort.cc',
106         'tick_util.cc',
107         'thread.cc',
108         'thread_posix.cc',
109         'thread_posix.h',
110         'thread_win.cc',
111         'thread_win.h',
112         'timestamp_extrapolator.cc',
113         'trace_impl.cc',
114         'trace_impl.h',
115         'trace_posix.cc',
116         'trace_posix.h',
117         'trace_win.cc',
118         'trace_win.h',
119       ],
120       'conditions': [
121         ['enable_data_logging==1', {
122           'sources!': [ 'data_log_no_op.cc', ],
123         }, {
124           'sources!': [ 'data_log.cc', ],
125         },],
126         ['OS=="android"', {
127           'defines': [
128             'WEBRTC_THREAD_RR',
129             # TODO(leozwang): Investigate CLOCK_REALTIME and CLOCK_MONOTONIC
130             # support on Android. Keep WEBRTC_CLOCK_TYPE_REALTIME for now,
131             # remove it after I verify that CLOCK_MONOTONIC is fully functional
132             # with condition and event functions in system_wrappers.
133             'WEBRTC_CLOCK_TYPE_REALTIME',
134            ],
135           'dependencies': [ 'cpu_features_android', ],
136           'link_settings': {
137             'libraries': [
138               '-llog',
139             ],
140           },
141         }, {  # OS!="android"
142           'sources!': [
143             '../interface/logcat_trace_context.h',
144             'logcat_trace_context.cc',
145           ],
146         }],
147         ['OS=="linux"', {
148           'defines': [
149             'WEBRTC_THREAD_RR',
150             # TODO(andrew): can we select this automatically?
151             # Define this if the Linux system does not support CLOCK_MONOTONIC.
152             #'WEBRTC_CLOCK_TYPE_REALTIME',
153           ],
154           'link_settings': {
155             'libraries': [ '-lrt', ],
156           },
157         }],
158         ['OS=="mac"', {
159           'link_settings': {
160             'libraries': [ '$(SDKROOT)/System/Library/Frameworks/ApplicationServices.framework', ],
161           },
162           'sources!': [
163             'atomic32_posix.cc',
164           ],
165         }],
166         ['OS=="ios" or OS=="mac"', {
167           'defines': [
168             'WEBRTC_THREAD_RR',
169             'WEBRTC_CLOCK_TYPE_REALTIME',
170           ],
171         }],
172         ['OS=="win"', {
173           'link_settings': {
174             'libraries': [ '-lwinmm.lib', ],
175           },
176         }],
177       ], # conditions
178       'target_conditions': [
179         # We need to do this in a target_conditions block to override the
180         # filename_rules filters.
181         ['OS=="ios"', {
182           # Pull in specific Mac files for iOS (which have been filtered out
183           # by file name rules).
184           'sources/': [
185             ['include', '^atomic32_mac\\.'],
186           ],
187           'sources!': [
188             'atomic32_posix.cc',
189           ],
190         }],
191       ],
192       # Disable warnings to enable Win64 build, issue 1323.
193       'msvs_disabled_warnings': [
194         4267,  # size_t to int truncation.
195         4334,  # Ignore warning on shift operator promotion.
196       ],
197     }, {
198       'target_name': 'field_trial_default',
199       'type': 'static_library',
200       'sources': [
201         'field_trial_default.cc',
202       ],
203       'dependencies': [
204         'system_wrappers',
205       ]
206     },
207   ], # targets
208   'conditions': [
209     ['OS=="android"', {
210       'targets': [
211         {
212           'target_name': 'cpu_features_android',
213           'type': 'static_library',
214           'sources': [
215             'cpu_features_android.c',
216           ],
217           'conditions': [
218             ['android_webview_build == 1', {
219               'libraries': [
220                 'cpufeatures.a'
221               ],
222             }, {
223               'dependencies': [
224                 '<(android_ndk_root)/android_tools_ndk.gyp:cpu_features',
225               ],
226             }],
227           ],
228         },
229       ],
230     }],
231   ], # conditions
232 }
233