Extract SIGPIPE ignoring code to a common place.
[chromium-blink-merge.git] / gpu / gpu.gyp
blob437ce51778fd5473a1ba78a6c77bcba0a47cd47e
1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
6   'variables': {
7     'nacl_win64_target': 0,
8   },
9   'includes': [
10     'gpu_common.gypi',
11   ],
12   'targets': [
13     {
14       # Library emulates GLES2 using command_buffers.
15       'target_name': 'gles2_implementation',
16       'type': '<(component)',
17       'dependencies': [
18         '../base/base.gyp:base',
19         '../ui/gl/gl.gyp:gl',
20         'command_buffer/command_buffer.gyp:gles2_utils',
21         'gles2_cmd_helper',
22       ],
23       'all_dependent_settings': {
24         'include_dirs': [
25           # For GLES2/gl2.h
26           '<(DEPTH)/third_party/khronos',
27         ],
28       },
29       'defines': [
30         'GLES2_IMPL_IMPLEMENTATION',
31       ],
32       'sources': [
33         '<@(gles2_implementation_source_files)',
34       ],
35     },
36     {
37       # Library emulates GLES2 using command_buffers.
38       'target_name': 'gles2_implementation_client_side_arrays',
39       'type': '<(component)',
40       'defines': [
41         'GLES2_IMPL_IMPLEMENTATION',
42         'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1',
43       ],
44       'dependencies': [
45         '../base/base.gyp:base',
46         '../ui/gl/gl.gyp:gl',
47         'command_buffer/command_buffer.gyp:gles2_utils',
48         'gles2_cmd_helper',
49       ],
50       'all_dependent_settings': {
51         'include_dirs': [
52           # For GLES2/gl2.h
53           '<(DEPTH)/third_party/khronos',
54         ],
55       },
56       'sources': [
57         '<@(gles2_implementation_source_files)',
58       ],
59     },
60     {
61       # Library emulates GLES2 using command_buffers.
62       'target_name': 'gles2_implementation_client_side_arrays_no_check',
63       'type': '<(component)',
64       'defines': [
65         'GLES2_IMPL_IMPLEMENTATION',
66         'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1',
67         'GLES2_CONFORMANCE_TESTS=1',
68       ],
69       'dependencies': [
70         '../base/base.gyp:base',
71         'command_buffer/command_buffer.gyp:gles2_utils',
72         'gles2_cmd_helper',
73       ],
74       'all_dependent_settings': {
75         'include_dirs': [
76           # For GLES2/gl2.h
77           '<(DEPTH)/third_party/khronos',
78         ],
79       },
80       'sources': [
81         '<@(gles2_implementation_source_files)',
82       ],
83     },
84     {
85       # Stub to expose gles2_implemenation in C instead of C++.
86       # so GLES2 C programs can work with no changes.
87       'target_name': 'gles2_c_lib',
88       'type': '<(component)',
89       'dependencies': [
90         '../base/base.gyp:base',
91         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
92         'command_buffer/command_buffer.gyp:gles2_utils',
93         'command_buffer_client',
94         'gles2_implementation',
95       ],
96       'defines': [
97         'GLES2_C_LIB_IMPLEMENTATION',
98       ],
99       'sources': [
100         '<@(gles2_c_lib_source_files)',
101       ],
102     },
103     {
104       # Same as gles2_c_lib except with no parameter checking. Required for
105       # OpenGL ES 2.0 conformance tests.
106       'target_name': 'gles2_c_lib_nocheck',
107       'type': '<(component)',
108       'defines': [
109         'GLES2_C_LIB_IMPLEMENTATION',
110         'GLES2_CONFORMANCE_TESTS=1',
111       ],
112       'dependencies': [
113         '../base/base.gyp:base',
114         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
115         'command_buffer/command_buffer.gyp:gles2_utils',
116         'command_buffer_client',
117         'gles2_implementation_client_side_arrays_no_check',
118       ],
119       'sources': [
120         '<@(gles2_c_lib_source_files)',
121       ],
122     },
123     {
124       'target_name': 'gpu_unittests',
125       'type': '<(gtest_target_type)',
126       'dependencies': [
127         '../base/base.gyp:base',
128         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
129         '../testing/gmock.gyp:gmock',
130         '../testing/gtest.gyp:gtest',
131         '../third_party/angle/src/build_angle.gyp:translator_glsl',
132         '../ui/gl/gl.gyp:gl',
133         '../ui/ui.gyp:ui',
134         'command_buffer/command_buffer.gyp:gles2_utils',
135         'command_buffer_client',
136         'command_buffer_common',
137         'command_buffer_service',
138         'gpu',
139         'gpu_unittest_utils',
140         'gles2_implementation_client_side_arrays',
141         'gles2_cmd_helper',
142       ],
143       'defines': [
144         'GLES2_C_LIB_IMPLEMENTATION',
145       ],
146       'sources': [
147         '<@(gles2_c_lib_source_files)',
148         'command_buffer/client/client_test_helper.cc',
149         'command_buffer/client/client_test_helper.h',
150         'command_buffer/client/cmd_buffer_helper_test.cc',
151         'command_buffer/client/fenced_allocator_test.cc',
152         'command_buffer/client/gles2_interface_stub.cc',
153         'command_buffer/client/gles2_interface_stub.h',
154         'command_buffer/client/gles2_implementation_unittest.cc',
155         'command_buffer/client/mapped_memory_unittest.cc',
156         'command_buffer/client/query_tracker_unittest.cc',
157         'command_buffer/client/program_info_manager_unittest.cc',
158         'command_buffer/client/ring_buffer_test.cc',
159         'command_buffer/client/transfer_buffer_unittest.cc',
160         'command_buffer/common/bitfield_helpers_test.cc',
161         'command_buffer/common/command_buffer_mock.cc',
162         'command_buffer/common/command_buffer_mock.h',
163         'command_buffer/common/command_buffer_shared_test.cc',
164         'command_buffer/common/debug_marker_manager_unittest.cc',
165         'command_buffer/common/gles2_cmd_format_test.cc',
166         'command_buffer/common/gles2_cmd_format_test_autogen.h',
167         'command_buffer/common/gles2_cmd_utils_unittest.cc',
168         'command_buffer/common/id_allocator_test.cc',
169         'command_buffer/common/trace_event.h',
170         'command_buffer/common/unittest_main.cc',
171         'command_buffer/service/buffer_manager_unittest.cc',
172         'command_buffer/service/cmd_parser_test.cc',
173         'command_buffer/service/command_buffer_service_unittest.cc',
174         'command_buffer/service/common_decoder_unittest.cc',
175         'command_buffer/service/context_group_unittest.cc',
176         'command_buffer/service/feature_info_unittest.cc',
177         'command_buffer/service/framebuffer_manager_unittest.cc',
178         'command_buffer/service/gles2_cmd_decoder_unittest.cc',
179         'command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h',
180         'command_buffer/service/gles2_cmd_decoder_unittest_1.cc',
181         'command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h',
182         'command_buffer/service/gles2_cmd_decoder_unittest_2.cc',
183         'command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h',
184         'command_buffer/service/gles2_cmd_decoder_unittest_3.cc',
185         'command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h',
186         'command_buffer/service/gles2_cmd_decoder_unittest_base.cc',
187         'command_buffer/service/gles2_cmd_decoder_unittest_base.h',
188         'command_buffer/service/gl_surface_mock.cc',
189         'command_buffer/service/gl_surface_mock.h',
190         'command_buffer/service/gpu_scheduler_unittest.cc',
191         'command_buffer/service/id_manager_unittest.cc',
192         'command_buffer/service/memory_program_cache_unittest.cc',
193         'command_buffer/service/mocks.cc',
194         'command_buffer/service/mocks.h',
195         'command_buffer/service/program_manager_unittest.cc',
196         'command_buffer/service/query_manager_unittest.cc',
197         'command_buffer/service/renderbuffer_manager_unittest.cc',
198         'command_buffer/service/program_cache_lru_helper_unittest.cc',
199         'command_buffer/service/program_cache_unittest.cc',
200         'command_buffer/service/shader_manager_unittest.cc',
201         'command_buffer/service/shader_translator_unittest.cc',
202         'command_buffer/service/stream_texture_mock.cc',
203         'command_buffer/service/stream_texture_mock.h',
204         'command_buffer/service/stream_texture_manager_mock.cc',
205         'command_buffer/service/stream_texture_manager_mock.h',
206         'command_buffer/service/test_helper.cc',
207         'command_buffer/service/test_helper.h',
208         'command_buffer/service/texture_manager_unittest.cc',
209         'command_buffer/service/transfer_buffer_manager_unittest.cc',
210         'command_buffer/service/vertex_attrib_manager_unittest.cc',
211         'command_buffer/service/vertex_array_manager_unittest.cc',
212       ],
213       'conditions': [
214         ['OS == "android" and gtest_target_type == "shared_library"', {
215           'dependencies': [
216             '../testing/android/native_test.gyp:native_test_native_code',
217           ],
218         }],
219       ],
220     },
221     {
222       'target_name': 'gl_tests',
223       'type': 'executable',
224       'dependencies': [
225         '../base/base.gyp:base',
226         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
227         '../testing/gmock.gyp:gmock',
228         '../testing/gtest.gyp:gtest',
229         '../third_party/angle/src/build_angle.gyp:translator_glsl',
230         '../ui/ui.gyp:ui',
231         'command_buffer/command_buffer.gyp:gles2_utils',
232         'command_buffer_client',
233         'command_buffer_common',
234         'command_buffer_service',
235         'gpu',
236         'gpu_unittest_utils',
237         'gles2_implementation_client_side_arrays',
238         'gles2_cmd_helper',
239         #'gl_unittests',
240       ],
241       'defines': [
242         'GLES2_C_LIB_IMPLEMENTATION',
243         'GL_GLEXT_PROTOTYPES',
244       ],
245       'sources': [
246         '<@(gles2_c_lib_source_files)',
247         'command_buffer/tests/gl_bind_uniform_location_unittest.cc',
248         'command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc',
249         'command_buffer/tests/gl_depth_texture_unittest.cc',
250         'command_buffer/tests/gl_query_unittests.cc',
251         'command_buffer/tests/gl_manager.cc',
252         'command_buffer/tests/gl_manager.h',
253         'command_buffer/tests/gl_pointcoord_unittest.cc',
254         'command_buffer/tests/gl_program_unittests.cc',
255         'command_buffer/tests/gl_shared_resources_unittests.cc',
256         'command_buffer/tests/gl_tests_main.cc',
257         'command_buffer/tests/gl_test_utils.cc',
258         'command_buffer/tests/gl_test_utils.h',
259         'command_buffer/tests/gl_texture_mailbox_unittests.cc',
260         'command_buffer/tests/gl_unittests.cc',
261         'command_buffer/tests/gl_virtual_contexts_unittests.cc',
262         'command_buffer/tests/occlusion_query_unittests.cc',
263       ],
264     },
265     {
266       'target_name': 'gpu_unittest_utils',
267       'type': 'static_library',
268       'dependencies': [
269         '../testing/gmock.gyp:gmock',
270         '../testing/gtest.gyp:gtest',
271         '../ui/gl/gl.gyp:gl',
272       ],
273       'include_dirs': [
274         '..',
275         '<(DEPTH)/third_party/khronos',
276       ],
277       'sources': [
278         'command_buffer/common/gl_mock.h',
279         'command_buffer/common/gl_mock.cc',
280         'command_buffer/service/gles2_cmd_decoder_mock.cc',
281         'command_buffer/service/gles2_cmd_decoder_mock.cc',
282       ],
283     },
284   ],
285   'conditions': [
286     ['component=="static_library"', {
287       'targets': [
288         {
289           'target_name': 'gpu',
290           'type': 'none',
291           'dependencies': [
292             'command_buffer_client',
293             'command_buffer_common',
294             'command_buffer_service',
295             'gles2_cmd_helper',
296             'gpu_ipc',
297           ],
298           'sources': [
299             'gpu_export.h',
300           ],
301         },
302         {
303           'target_name': 'command_buffer_common',
304           'type': 'static_library',
305           'includes': [
306             'command_buffer_common.gypi',
307           ],
308           'dependencies': [
309             '../base/base.gyp:base',
310             'command_buffer/command_buffer.gyp:gles2_utils',
311           ],
312           'export_dependent_settings': [
313             '../base/base.gyp:base',
314           ],
315         },
316         {
317           # Library helps make GLES2 command buffers.
318           'target_name': 'gles2_cmd_helper',
319           'type': 'static_library',
320           'includes': [
321             'gles2_cmd_helper.gypi',
322           ],
323           'dependencies': [
324             'command_buffer_client',
325           ],
326         },
327         {
328           'target_name': 'command_buffer_client',
329           'type': 'static_library',
330           'includes': [
331             'command_buffer_client.gypi',
332           ],
333           'dependencies': [
334             'command_buffer_common',
335           ],
336         },
337         {
338           'target_name': 'command_buffer_service',
339           'type': 'static_library',
340           'includes': [
341             'command_buffer_service.gypi',
342           ],
343           'dependencies': [
344             'command_buffer_common',
345           ],
346         },
347         {
348           'target_name': 'gpu_ipc',
349           'type': 'static_library',
350           'includes': [
351             'gpu_ipc.gypi',
352           ],
353           'dependencies': [
354             'command_buffer_common',
355           ],
356         },
357       ],
358     },
359     { # component != static_library
360       'targets': [
361         {
362           'target_name': 'gpu',
363           'type': 'shared_library',
364           'includes': [
365             'command_buffer_client.gypi',
366             'command_buffer_common.gypi',
367             'command_buffer_service.gypi',
368             'gles2_cmd_helper.gypi',
369             'gpu_ipc.gypi',
370           ],
371           'defines': [
372             'GPU_IMPLEMENTATION',
373           ],
374           'sources': [
375             'gpu_export.h',
376           ],
377           'dependencies': [
378             '../base/base.gyp:base',
379             'command_buffer/command_buffer.gyp:gles2_utils',
380           ],
381         },
382         {
383           'target_name': 'command_buffer_common',
384           'type': 'none',
385           'dependencies': [
386             'gpu',
387           ],
388         },
389         {
390           # Library helps make GLES2 command buffers.
391           'target_name': 'gles2_cmd_helper',
392           'type': 'none',
393           'dependencies': [
394             'gpu',
395           ],
396         },
397         {
398           'target_name': 'command_buffer_client',
399           'type': 'none',
400           'dependencies': [
401             'gpu',
402           ],
403         },
404         {
405           'target_name': 'command_buffer_service',
406           'type': 'none',
407           'dependencies': [
408             'gpu',
409           ],
410         },
411         {
412           'target_name': 'gpu_ipc',
413           'type': 'none',
414           'dependencies': [
415             'gpu',
416           ],
417         },
418       ],
419     }],
420     ['disable_nacl!=1 and OS=="win"', {
421       'targets': [
422         {
423           'target_name': 'gpu_ipc_win64',
424           'type': 'static_library',
425           'variables': {
426             'nacl_win64_target': 1,
427           },
428           'includes': [
429             'gpu_ipc.gypi',
430           ],
431           'dependencies': [
432             '../base/base.gyp:base_nacl_win64',
433             '../ipc/ipc.gyp:ipc_win64',
434           ],
435           'defines': [
436             '<@(nacl_win64_defines)',
437             'GPU_IMPLEMENTATION',
438           ],
439           'configurations': {
440             'Common_Base': {
441               'msvs_target_platform': 'x64',
442             },
443           },
444         },
445       ],
446     }],
447   ],