This sets up API to release OutputSurface from LTHClient.
[chromium-blink-merge.git] / gpu / gpu.gyp
blob8f8e2c69283fb2ac88195f09065d3c4b41af11ce
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       # GN version: //gpu/command_buffer/client:gles2_implementation
16       'target_name': 'gles2_implementation',
17       'type': '<(component)',
18       'dependencies': [
19         '../base/base.gyp:base',
20         '../third_party/khronos/khronos.gyp:khronos_headers',
21         '../ui/gfx/gfx.gyp:gfx_geometry',
22         '../ui/gl/gl.gyp:gl',
23         'command_buffer/command_buffer.gyp:gles2_utils',
24         'gles2_cmd_helper',
25       ],
26       'defines': [
27         'GLES2_IMPL_IMPLEMENTATION',
28       ],
29       'sources': [
30         '<@(gles2_implementation_source_files)',
31       ],
32       'includes': [
33         # Disable LTO due to ELF section name out of range
34         # crbug.com/422251
35         '../build/android/disable_gcc_lto.gypi',
36       ],
37       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
38       'msvs_disabled_warnings': [4267, ],
39     },
40     {
41       # GN version: //gpu/command_buffer/client:gl_in_process_context
42       'target_name': 'gl_in_process_context',
43       'type': '<(component)',
44       'dependencies': [
45         'command_buffer/command_buffer.gyp:gles2_utils',
46         'gles2_implementation',
47         'gpu',
48         '../base/base.gyp:base',
49         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
50         '../ui/gfx/gfx.gyp:gfx_geometry',
51         '../ui/gl/gl.gyp:gl',
52       ],
53       'defines': [
54         'GL_IN_PROCESS_CONTEXT_IMPLEMENTATION',
55       ],
56       'sources': [
57         'command_buffer/client/gl_in_process_context.cc',
58         'command_buffer/client/gl_in_process_context.h',
59         'command_buffer/client/gl_in_process_context_export.h',
60       ],
61     },
62     {
63       # Library emulates GLES2 using command_buffers.
64       'target_name': 'gles2_implementation_no_check',
65       'type': '<(component)',
66       'defines': [
67         'GLES2_IMPL_IMPLEMENTATION',
68         'GLES2_CONFORMANCE_TESTS=1',
69       ],
70       'dependencies': [
71         '../base/base.gyp:base',
72         '../third_party/khronos/khronos.gyp:khronos_headers',
73         '../ui/gfx/gfx.gyp:gfx',
74         '../ui/gfx/gfx.gyp:gfx_geometry',
75         'command_buffer/command_buffer.gyp:gles2_utils',
76         'gles2_cmd_helper',
77       ],
78       'sources': [
79         '<@(gles2_implementation_source_files)',
80       ],
81       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
82       'msvs_disabled_warnings': [ 4267, ],
83     },
84     {
85       # Stub to expose gles2_implemenation in C instead of C++.
86       # so GLES2 C programs can work with no changes.
87       # GN version: //gpu/command_buffer/client:gles2_c_lib
88       'target_name': 'gles2_c_lib',
89       'type': '<(component)',
90       'dependencies': [
91         '../base/base.gyp:base',
92         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
93         'command_buffer/command_buffer.gyp:gles2_utils',
94         'command_buffer_client',
95       ],
96       'defines': [
97         'GLES2_C_LIB_IMPLEMENTATION',
98       ],
99       'sources': [
100         '<@(gles2_c_lib_source_files)',
101       ],
102       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
103       'msvs_disabled_warnings': [4267, ],
104     },
105     {
106       # GN version: //gpu/command_buffer/client:gles2_c_lib_nocheck
107       # Same as gles2_c_lib except with no parameter checking. Required for
108       # OpenGL ES 2.0 conformance tests.
109       'target_name': 'gles2_c_lib_nocheck',
110       'type': '<(component)',
111       'defines': [
112         'GLES2_C_LIB_IMPLEMENTATION',
113         'GLES2_CONFORMANCE_TESTS=1',
114       ],
115       'dependencies': [
116         '../base/base.gyp:base',
117         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
118         'command_buffer/command_buffer.gyp:gles2_utils',
119         'command_buffer_client',
120         'gles2_implementation_no_check',
121       ],
122       'sources': [
123         '<@(gles2_c_lib_source_files)',
124       ],
125     },
126     {
127       # GN version: //third_party/angle/src/tests:angle_unittests
128       'target_name': 'angle_unittests',
129       'type': '<(gtest_target_type)',
130       'includes': [
131         '../third_party/angle/build/common_defines.gypi',
132         '../third_party/angle/src/tests/angle_unittests.gypi',
133       ],
134       'dependencies': [
135         '../base/base.gyp:base',
136         '../base/base.gyp:test_support_base',
137       ],
138       'include_dirs': [
139         '..',
140         '../third_party/angle/include',
141       ],
142       'sources': [
143         'angle_unittest_main.cc',
144       ],
145     },
146     {
147       # GN version: //gpu:gpu_unittests
148       'target_name': 'gpu_unittests',
149       'type': '<(gtest_target_type)',
150       'dependencies': [
151         '../base/base.gyp:base',
152         '../base/base.gyp:test_support_base',
153         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
154         '../testing/gmock.gyp:gmock',
155         '../testing/gtest.gyp:gtest',
156         '<(angle_path)/src/angle.gyp:translator',
157         '../ui/gfx/gfx.gyp:gfx',
158         '../ui/gfx/gfx.gyp:gfx_geometry',
159         '../ui/gfx/gfx.gyp:gfx_test_support',
160         '../ui/gl/gl.gyp:gl',
161         '../ui/gl/gl.gyp:gl_test_support',
162         'command_buffer/command_buffer.gyp:gles2_utils',
163         'command_buffer_client',
164         'command_buffer_common',
165         'command_buffer_service',
166         'gpu',
167         'gpu_unittest_utils',
168         'gles2_implementation',
169         'gles2_cmd_helper',
170         'gles2_c_lib',
171       ],
172       'sources': [
173         # Note: sources list duplicated in GN build.
174         'command_buffer/client/buffer_tracker_unittest.cc',
175         'command_buffer/client/client_test_helper.cc',
176         'command_buffer/client/client_test_helper.h',
177         'command_buffer/client/cmd_buffer_helper_test.cc',
178         'command_buffer/client/fenced_allocator_test.cc',
179         'command_buffer/client/gles2_implementation_unittest.cc',
180         'command_buffer/client/mapped_memory_unittest.cc',
181         'command_buffer/client/program_info_manager_unittest.cc',
182         'command_buffer/client/query_tracker_unittest.cc',
183         'command_buffer/client/ring_buffer_test.cc',
184         'command_buffer/client/transfer_buffer_unittest.cc',
185         'command_buffer/client/vertex_array_object_manager_unittest.cc',
186         'command_buffer/common/bitfield_helpers_test.cc',
187         'command_buffer/common/command_buffer_mock.cc',
188         'command_buffer/common/command_buffer_mock.h',
189         'command_buffer/common/command_buffer_shared_test.cc',
190         'command_buffer/common/debug_marker_manager_unittest.cc',
191         'command_buffer/common/gles2_cmd_format_test.cc',
192         'command_buffer/common/gles2_cmd_format_test_autogen.h',
193         'command_buffer/common/gles2_cmd_utils_unittest.cc',
194         'command_buffer/common/id_allocator_test.cc',
195         'command_buffer/common/trace_event.h',
196         'command_buffer/common/unittest_main.cc',
197         'command_buffer/service/buffer_manager_unittest.cc',
198         'command_buffer/service/cmd_parser_test.cc',
199         'command_buffer/service/command_buffer_service_unittest.cc',
200         'command_buffer/service/common_decoder_unittest.cc',
201         'command_buffer/service/context_group_unittest.cc',
202         'command_buffer/service/context_state_unittest.cc',
203         'command_buffer/service/feature_info_unittest.cc',
204         'command_buffer/service/framebuffer_manager_unittest.cc',
205         'command_buffer/service/gl_context_mock.cc',
206         'command_buffer/service/gl_context_mock.h',
207         'command_buffer/service/gl_surface_mock.cc',
208         'command_buffer/service/gl_surface_mock.h',
209         'command_buffer/service/gles2_cmd_decoder_unittest.cc',
210         'command_buffer/service/gles2_cmd_decoder_unittest.h',
211         'command_buffer/service/gles2_cmd_decoder_unittest_0_autogen.h',
212         'command_buffer/service/gles2_cmd_decoder_unittest_1.cc',
213         'command_buffer/service/gles2_cmd_decoder_unittest_1_autogen.h',
214         'command_buffer/service/gles2_cmd_decoder_unittest_2.cc',
215         'command_buffer/service/gles2_cmd_decoder_unittest_2_autogen.h',
216         'command_buffer/service/gles2_cmd_decoder_unittest_3.cc',
217         'command_buffer/service/gles2_cmd_decoder_unittest_3_autogen.h',
218         'command_buffer/service/gles2_cmd_decoder_unittest_attribs.cc',
219         'command_buffer/service/gles2_cmd_decoder_unittest_base.cc',
220         'command_buffer/service/gles2_cmd_decoder_unittest_base.h',
221         'command_buffer/service/gles2_cmd_decoder_unittest_buffers.cc',
222         'command_buffer/service/gles2_cmd_decoder_unittest_context_lost.cc',
223         'command_buffer/service/gles2_cmd_decoder_unittest_context_state.cc',
224         'command_buffer/service/gles2_cmd_decoder_unittest_drawing.cc',
225         'command_buffer/service/gles2_cmd_decoder_unittest_extensions.cc',
226         'command_buffer/service/gles2_cmd_decoder_unittest_extensions_autogen.h',
227         'command_buffer/service/gles2_cmd_decoder_unittest_framebuffers.cc',
228         'command_buffer/service/gles2_cmd_decoder_unittest_programs.cc',
229         'command_buffer/service/gles2_cmd_decoder_unittest_textures.cc',
230         'command_buffer/service/gles2_cmd_decoder_unittest_valuebuffer.cc',
231         'command_buffer/service/gpu_scheduler_unittest.cc',
232         'command_buffer/service/gpu_service_test.cc',
233         'command_buffer/service/gpu_service_test.h',
234         'command_buffer/service/gpu_tracer_unittest.cc',
235         'command_buffer/service/id_manager_unittest.cc',
236         'command_buffer/service/mailbox_manager_unittest.cc',
237         'command_buffer/service/memory_program_cache_unittest.cc',
238         'command_buffer/service/mocks.cc',
239         'command_buffer/service/mocks.h',
240         'command_buffer/service/program_cache_unittest.cc',
241         'command_buffer/service/program_manager_unittest.cc',
242         'command_buffer/service/query_manager_unittest.cc',
243         'command_buffer/service/renderbuffer_manager_unittest.cc',
244         'command_buffer/service/shader_manager_unittest.cc',
245         'command_buffer/service/shader_translator_cache_unittest.cc',
246         'command_buffer/service/shader_translator_unittest.cc',
247         'command_buffer/service/test_helper.cc',
248         'command_buffer/service/test_helper.h',
249         'command_buffer/service/path_manager_unittest.cc',
250         'command_buffer/service/texture_manager_unittest.cc',
251         'command_buffer/service/transfer_buffer_manager_unittest.cc',
252         'command_buffer/service/valuebuffer_manager_unittest.cc',
253         'command_buffer/service/vertex_array_manager_unittest.cc',
254         'command_buffer/service/vertex_attrib_manager_unittest.cc',
255         'config/gpu_blacklist_unittest.cc',
256         'config/gpu_control_list_entry_unittest.cc',
257         'config/gpu_control_list_number_info_unittest.cc',
258         'config/gpu_control_list_os_info_unittest.cc',
259         'config/gpu_control_list_unittest.cc',
260         'config/gpu_control_list_version_info_unittest.cc',
261         'config/gpu_driver_bug_list_unittest.cc',
262         'config/gpu_info_collector_unittest.cc',
263         'config/gpu_info_unittest.cc',
264         'config/gpu_test_config_unittest.cc',
265         'config/gpu_test_expectations_parser_unittest.cc',
266         'config/gpu_util_unittest.cc',
267       ],
268       'conditions': [
269         ['OS == "android"', {
270           'dependencies': [
271             '../testing/android/native_test.gyp:native_test_native_code',
272           ],
273         }],
274         # See http://crbug.com/162998#c4 for why this is needed.
275         ['OS=="linux" and use_allocator!="none"', {
276           'dependencies': [
277             '../base/allocator/allocator.gyp:allocator',
278           ],
279         }],
280       ],
281       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
282       'msvs_disabled_warnings': [ 4267, ],
283     },
284     {
285       # GN version: //gpu/gpu_perftests
286       'target_name': 'gpu_perftests',
287       'type': '<(gtest_target_type)',
288       'dependencies': [
289         '../base/base.gyp:base',
290         '../base/base.gyp:test_support_base',
291         '../testing/gmock.gyp:gmock',
292         '../testing/gtest.gyp:gtest',
293         '../testing/perf/perf_test.gyp:perf_test',
294         '../ui/gfx/gfx.gyp:gfx_geometry',
295         '../ui/gl/gl.gyp:gl',
296         'command_buffer_service',
297       ],
298       'sources': [
299         'perftests/measurements.cc',
300         'perftests/run_all_tests.cc',
301         'perftests/texture_upload_perftest.cc',
302       ],
303       'conditions': [
304         ['OS == "android"',
305           {
306             'dependencies': [
307               '../testing/android/native_test.gyp:native_test_native_code',
308             ],
309           }
310         ],
311         # See http://crbug.com/162998#c4 for why this is needed.
312         ['OS=="linux" and use_allocator!="none"',
313           {
314             'dependencies': [
315               '../base/allocator/allocator.gyp:allocator',
316             ],
317           }
318         ],
319       ],
320     },
321     {
322       # GN version: //gpu:gl_tests
323       'target_name': 'gl_tests',
324       'type': '<(gtest_target_type)',
325       'dependencies': [
326         '../base/base.gyp:base',
327         '../base/base.gyp:test_support_base',
328         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
329         '../testing/gmock.gyp:gmock',
330         '../testing/gtest.gyp:gtest',
331         '<(angle_path)/src/angle.gyp:translator',
332         '../ui/gfx/gfx.gyp:gfx',
333         '../ui/gfx/gfx.gyp:gfx_test_support',
334         '../ui/gfx/gfx.gyp:gfx_geometry',
335         '../ui/gl/gl.gyp:gl',
336         'command_buffer/command_buffer.gyp:gles2_utils',
337         'command_buffer_client',
338         'command_buffer_common',
339         'command_buffer_service',
340         'gpu',
341         'gpu_unittest_utils',
342         'gles2_implementation',
343         'gles2_cmd_helper',
344         'gles2_c_lib',
345         #'gl_unittests',
346       ],
347       'defines': [
348         'GL_GLEXT_PROTOTYPES',
349       ],
350       'sources': [
351         # Note: sources list duplicated in GN build.
352         'command_buffer/tests/compressed_texture_test.cc',
353         'command_buffer/tests/gl_bind_uniform_location_unittest.cc',
354         'command_buffer/tests/gl_chromium_framebuffer_multisample_unittest.cc',
355         'command_buffer/tests/gl_chromium_path_rendering_unittest.cc',
356         'command_buffer/tests/gl_clear_framebuffer_unittest.cc',
357         'command_buffer/tests/gl_compressed_copy_texture_CHROMIUM_unittest.cc',
358         'command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc',
359         'command_buffer/tests/gl_cube_map_texture_unittest.cc',
360         'command_buffer/tests/gl_depth_texture_unittest.cc',
361         'command_buffer/tests/gl_gpu_memory_buffer_unittest.cc',
362         'command_buffer/tests/gl_lose_context_chromium_unittest.cc',
363         'command_buffer/tests/gl_manager.cc',
364         'command_buffer/tests/gl_manager.h',
365         'command_buffer/tests/gl_pointcoord_unittest.cc',
366         'command_buffer/tests/gl_program_unittest.cc',
367         'command_buffer/tests/gl_query_unittest.cc',
368         'command_buffer/tests/gl_readback_unittest.cc',
369         'command_buffer/tests/gl_shared_resources_unittest.cc',
370         'command_buffer/tests/gl_stream_draw_unittest.cc',
371         'command_buffer/tests/gl_test_utils.cc',
372         'command_buffer/tests/gl_test_utils.h',
373         'command_buffer/tests/gl_tests_main.cc',
374         'command_buffer/tests/gl_texture_mailbox_unittest.cc',
375         'command_buffer/tests/gl_texture_storage_unittest.cc',
376         'command_buffer/tests/gl_unittest.cc',
377         'command_buffer/tests/gl_unittests_android.cc',
378         'command_buffer/tests/gl_virtual_contexts_unittest.cc',
379         'command_buffer/tests/occlusion_query_unittest.cc',
380       ],
381       'conditions': [
382         ['OS == "android"', {
383           'dependencies': [
384             '../testing/android/native_test.gyp:native_test_native_code',
385           ],
386         }],
387         ['OS == "win"', {
388           'dependencies': [
389             '../third_party/angle/src/angle.gyp:libEGL',
390             '../third_party/angle/src/angle.gyp:libGLESv2',
391           ],
392         }],
393       ],
394       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
395       'msvs_disabled_warnings': [ 4267, ],
396     },
397     {
398       # GN version: //gpu:test_support
399       'target_name': 'gpu_unittest_utils',
400       'type': 'static_library',
401       'dependencies': [
402         '../testing/gmock.gyp:gmock',
403         '../testing/gtest.gyp:gtest',
404         '../third_party/khronos/khronos.gyp:khronos_headers',
405         '../ui/gl/gl.gyp:gl_unittest_utils',
406         'gpu',
407       ],
408       'include_dirs': [
409         '..',
410       ],
411       'sources': [
412         'command_buffer/client/gles2_interface_stub.cc',
413         'command_buffer/client/gles2_interface_stub.h',
414         'command_buffer/service/error_state_mock.cc',
415         'command_buffer/service/gles2_cmd_decoder_mock.cc',
416       ],
417     },
418     {
419       # GN version: //gpu:command_buffer_gles2
420       'target_name': 'command_buffer_gles2',
421       'type': 'shared_library',
422       'dependencies': [
423         '../base/base.gyp:base',
424         '../gpu/gpu.gyp:command_buffer_service',
425         '../ui/gfx/gfx.gyp:gfx_geometry',
426         '../ui/gl/gl.gyp:gl',
427         'gles2_c_lib',
428         'gles2_implementation',
429       ],
430       'sources': [
431         # Note: sources list duplicated in GN build.
432         # TODO(hendrikw): Move egl out of gles2_conform_support.
433         'gles2_conform_support/egl/config.cc',
434         'gles2_conform_support/egl/config.h',
435         'gles2_conform_support/egl/display.cc',
436         'gles2_conform_support/egl/display.h',
437         'gles2_conform_support/egl/egl.cc',
438         'gles2_conform_support/egl/surface.cc',
439         'gles2_conform_support/egl/surface.h',
440       ],
441       'conditions': [
442         ['OS=="win"', {
443           'defines': [
444             'COMMAND_BUFFER_GLES_LIB_SUPPORT_ONLY',
445             'EGLAPIENTRY=',
446             'EGLAPI=__declspec(dllexport)',
447           ],
448         }, { # OS!="win"
449           'defines': [
450             'COMMAND_BUFFER_GLES_LIB_SUPPORT_ONLY',
451             'EGLAPIENTRY=',
452             'EGLAPI=__attribute__((visibility(\"default\")))'
453           ],
454         }, ],
455       ],
456     }
457   ],
458   'conditions': [
459     ['component=="static_library"', {
460       'targets': [
461          {
462           # GN version: //gpu/command_buffer/service:disk_cache_proto
463           'target_name': 'disk_cache_proto',
464           'type': 'static_library',
465           'sources': [ 'command_buffer/service/disk_cache_proto.proto' ],
466           'variables': {
467             'proto_in_dir': 'command_buffer/service',
468             'proto_out_dir': 'gpu/command_buffer/service',
469           },
470           'includes': [ '../build/protoc.gypi' ],
471         },
472         {
473           # GN version: //gpu
474           'target_name': 'gpu',
475           'type': 'none',
476           'dependencies': [
477             'command_buffer_client',
478             'command_buffer_common',
479             'command_buffer_service',
480             'gles2_cmd_helper',
481             'gpu_config',
482             'gpu_ipc',
483           ],
484           'sources': [
485             'gpu_export.h',
486           ],
487           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
488           'msvs_disabled_warnings': [4267, ],
489         },
490         {
491           # GN version: //gpu/command_buffer/common
492           'target_name': 'command_buffer_common',
493           'type': 'static_library',
494           'includes': [
495             'command_buffer_common.gypi',
496           ],
497           'dependencies': [
498             '../base/base.gyp:base',
499             'command_buffer/command_buffer.gyp:gles2_utils',
500           ],
501           'export_dependent_settings': [
502             '../base/base.gyp:base',
503           ],
504         },
505         {
506           # Library helps make GLES2 command buffers.
507           # GN version: //gpu/command_buffer/client:gles2_cmd_helper
508           'target_name': 'gles2_cmd_helper',
509           'type': 'static_library',
510           'includes': [
511             'gles2_cmd_helper.gypi',
512           ],
513           'dependencies': [
514             'command_buffer_client',
515           ],
516           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
517           'msvs_disabled_warnings': [4267, ],
518         },
519         {
520           # GN version: //gpu/command_buffer/client
521           'target_name': 'command_buffer_client',
522           'type': 'static_library',
523           'includes': [
524             'command_buffer_client.gypi',
525           ],
526           'dependencies': [
527             'command_buffer_common',
528           ],
529           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
530           'msvs_disabled_warnings': [4267, ],
531         },
532         {
533           # GN version: //gpu/command_buffer/service
534           'target_name': 'command_buffer_service',
535           'type': 'static_library',
536           'includes': [
537             'command_buffer_service.gypi',
538             '../build/android/increase_size_for_speed.gypi',
539             # Disable LTO due to ELF section name out of range
540             # crbug.com/422251
541             '../build/android/disable_gcc_lto.gypi',
542           ],
543           'dependencies': [
544             'command_buffer_common',
545             'disk_cache_proto',
546             'gpu_config',
547           ],
548           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
549           'msvs_disabled_warnings': [4267, ],
550         },
551         {
552           # GN version: //gpu/ipc
553           'target_name': 'gpu_ipc',
554           'type': 'static_library',
555           'includes': [
556             'gpu_ipc.gypi',
557           ],
558           'dependencies': [
559             'command_buffer_common',
560           ],
561         },
562         {
563           'target_name': 'gpu_config',
564           'type': 'static_library',
565           'includes': [
566             'gpu_config.gypi',
567           ],
568         },
569       ],
570     },
571     { # component != static_library
572       'targets': [
573          {
574           # GN version: //gpu/command_buffer/service:disk_cache_proto
575           'target_name': 'disk_cache_proto',
576           'type': 'static_library',
577           'sources': [ 'command_buffer/service/disk_cache_proto.proto' ],
578           'variables': {
579             'proto_in_dir': 'command_buffer/service',
580             'proto_out_dir': 'gpu/command_buffer/service',
581           },
582           'includes': [ '../build/protoc.gypi' ],
583         },
584         {
585           # GN version: //gpu
586           'target_name': 'gpu',
587           'type': 'shared_library',
588           'includes': [
589             'command_buffer_client.gypi',
590             'command_buffer_common.gypi',
591             'command_buffer_service.gypi',
592             'gles2_cmd_helper.gypi',
593             'gpu_config.gypi',
594             'gpu_ipc.gypi',
595             '../build/android/increase_size_for_speed.gypi',
596           ],
597           'defines': [
598             'GPU_IMPLEMENTATION',
599           ],
600           'sources': [
601             'gpu_export.h',
602           ],
603           'dependencies': [
604             '../base/base.gyp:base',
605             'command_buffer/command_buffer.gyp:gles2_utils',
606             'disk_cache_proto',
607           ],
608           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
609           'msvs_disabled_warnings': [4267, ],
610         },
611         {
612           # GN version: //gpu/command_buffer/common
613           'target_name': 'command_buffer_common',
614           'type': 'none',
615           'dependencies': [
616             'gpu',
617           ],
618         },
619         {
620           # Library helps make GLES2 command buffers.
621           # GN version: //gpu/command_buffer/client:gles2_cmd_helper
622           'target_name': 'gles2_cmd_helper',
623           'type': 'none',
624           'dependencies': [
625             'gpu',
626           ],
627           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
628           'msvs_disabled_warnings': [4267, ],
629         },
630         {
631           # GN version: //gpu/command_buffer/client
632           'target_name': 'command_buffer_client',
633           'type': 'none',
634           'dependencies': [
635             'gpu',
636           ],
637         },
638         {
639           # GN version: //gpu/command_buffer/service
640           'target_name': 'command_buffer_service',
641           'type': 'none',
642           'dependencies': [
643             'gpu',
644           ],
645         },
646         {
647           # GN version: //gpu/ipc
648           'target_name': 'gpu_ipc',
649           'type': 'none',
650           'dependencies': [
651             'gpu',
652           ],
653         },
654       ],
655     }],
656     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
657       'targets': [
658         {
659           'target_name': 'command_buffer_common_win64',
660           'type': 'static_library',
661           'variables': {
662             'nacl_win64_target': 1,
663           },
664           'includes': [
665             'command_buffer_common.gypi',
666           ],
667           'dependencies': [
668             '../base/base.gyp:base_win64',
669           ],
670           'defines': [
671             '<@(nacl_win64_defines)',
672             'GPU_IMPLEMENTATION',
673           ],
674           'configurations': {
675             'Common_Base': {
676               'msvs_target_platform': 'x64',
677             },
678           },
679         },
680         {
681           'target_name': 'gpu_ipc_win64',
682           'type': 'static_library',
683           'variables': {
684             'nacl_win64_target': 1,
685           },
686           'includes': [
687             'gpu_ipc.gypi',
688           ],
689           'dependencies': [
690             '../base/base.gyp:base_win64',
691             '../ipc/ipc.gyp:ipc_win64',
692             'command_buffer_common_win64',
693           ],
694           'defines': [
695             '<@(nacl_win64_defines)',
696             'GPU_IMPLEMENTATION',
697           ],
698           'configurations': {
699             'Common_Base': {
700               'msvs_target_platform': 'x64',
701             },
702           },
703         },
704       ],
705     }],
706     ['OS == "android"', {
707       'targets': [
708         {
709           'target_name': 'gl_tests_apk',
710           'type': 'none',
711           'dependencies': [
712             'gl_tests',
713           ],
714           'variables': {
715             'test_suite_name': 'gl_tests',
716           },
717           'includes': [
718             '../build/apk_test.gypi',
719           ],
720         },
721         {
722           'target_name': 'gpu_unittests_apk',
723           'type': 'none',
724           'dependencies': [
725             'gpu_unittests',
726           ],
727           'variables': {
728             'test_suite_name': 'gpu_unittests',
729           },
730           'includes': [ '../build/apk_test.gypi' ],
731         },
732         {
733           'target_name': 'gpu_perftests_apk',
734           'type': 'none',
735           'dependencies': [
736             'gpu_perftests',
737           ],
738           'variables': {
739             'test_suite_name': 'gpu_perftests',
740           },
741           'includes': [ '../build/apk_test.gypi' ],
742         },
743       ],
744     }],
745     ['OS == "win" or (OS == "linux" and use_x11==1) or OS == "mac"', {
746       'targets': [
747         {
748           'target_name': 'angle_end2end_tests',
749           'type': '<(gtest_target_type)',
750           'dependencies': [
751             '../base/base.gyp:base',
752             '../base/base.gyp:test_support_base',
753           ],
754           'includes': [
755             '../third_party/angle/build/common_defines.gypi',
756             '../third_party/angle/src/tests/angle_end2end_tests.gypi',
757           ],
758           'sources': [
759             'angle_end2end_tests_main.cc',
760           ],
761         },
762       ],
763     }],
764     ['OS == "win"', {
765       'targets': [
766         {
767           # TODO(jmadill): port this target to the GN build.
768           'target_name': 'angle_perftests',
769           'type': '<(gtest_target_type)',
770           'dependencies': [
771             '../base/base.gyp:base',
772             '../base/base.gyp:test_support_base',
773           ],
774           'includes': [
775             '../third_party/angle/build/common_defines.gypi',
776             '../third_party/angle/src/tests/angle_perftests.gypi',
777           ],
778           'sources': [
779             'angle_perftests_main.cc',
780           ],
781         },
782       ],
783     }],
784     ['test_isolation_mode != "noop"', {
785       'targets': [
786         {
787           'target_name': 'gpu_unittests_run',
788           'type': 'none',
789           'dependencies': [
790             'gpu_unittests',
791           ],
792           'includes': [
793             '../build/isolate.gypi',
794           ],
795           'sources': [
796             'gpu_unittests.isolate',
797           ],
798           'conditions': [
799             ['use_x11==1',
800               {
801                 'dependencies': [
802                   '../tools/xdisplaycheck/xdisplaycheck.gyp:xdisplaycheck',
803                 ],
804               }
805             ],
806           ],
807         },
808       ],
809     }],
810     ['(OS == "win" or OS == "linux") and archive_gpu_tests==1', {
811       'targets': [
812         {
813           # Only build dEQP on test configs. Note that dEQP is test-only code,
814           # and is only a part of the Chromium build to allow easy integration
815           # with the GPU bot waterfall. (Note that dEQP uses exceptions, and
816           # currently can't build with Clang on Windows)
817           'target_name': 'angle_deqp_gles2_tests',
818           'type': '<(gtest_target_type)',
819           'dependencies': [
820             '../base/base.gyp:base',
821             '../base/base.gyp:test_support_base',
822             '../third_party/angle/src/tests/tests.gyp:angle_deqp_gtest_support',
823             '../third_party/angle/src/tests/tests.gyp:angle_deqp_libgles2',
824           ],
825           'includes': [
826             '../third_party/angle/build/common_defines.gypi',
827           ],
828           'sources': [
829             'angle_deqp_tests_main.cc',
830           ],
831         },
832         {
833           'target_name': 'angle_deqp_gles3_tests',
834           'type': '<(gtest_target_type)',
835           'dependencies': [
836             '../base/base.gyp:base',
837             '../base/base.gyp:test_support_base',
838             '../third_party/angle/src/tests/tests.gyp:angle_deqp_gtest_support',
839             '../third_party/angle/src/tests/tests.gyp:angle_deqp_libgles3',
840           ],
841           'includes': [
842             '../third_party/angle/build/common_defines.gypi',
843           ],
844           'sources': [
845             'angle_deqp_tests_main.cc',
846           ],
847         },
848       ],
849     }]
850   ],