Replace the deprecated __attribute__((no_address_safety_analysis))
[chromium-blink-merge.git] / gpu / gpu.gyp
blob72c27571ca38f37acc26f537f0d3b8a85f125b02
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         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
20         '../third_party/khronos/khronos.gyp:khronos_headers',
21         '../ui/gl/gl.gyp:gl',
22         '../ui/gfx/gfx.gyp:gfx',
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         'command_buffer/client/gl_in_process_context.h',
32         'command_buffer/client/gl_in_process_context.cc',
33       ],
34       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
35       'msvs_disabled_warnings': [4267, ],
36     },
37     {
38       # Library emulates GLES2 using command_buffers.
39       'target_name': 'gles2_implementation_client_side_arrays',
40       'type': '<(component)',
41       'defines': [
42         'GLES2_IMPL_IMPLEMENTATION',
43         'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1',
44       ],
45       'dependencies': [
46         '../base/base.gyp:base',
47         '../third_party/khronos/khronos.gyp:khronos_headers',
48         '../ui/gl/gl.gyp:gl',
49         'command_buffer/command_buffer.gyp:gles2_utils',
50         'gles2_cmd_helper',
51       ],
52       'sources': [
53         '<@(gles2_implementation_source_files)',
54       ],
55       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
56       'msvs_disabled_warnings': [ 4267, ],
57     },
58     {
59       # Library emulates GLES2 using command_buffers.
60       'target_name': 'gles2_implementation_client_side_arrays_no_check',
61       'type': '<(component)',
62       'defines': [
63         'GLES2_IMPL_IMPLEMENTATION',
64         'GLES2_SUPPORT_CLIENT_SIDE_ARRAYS=1',
65         'GLES2_CONFORMANCE_TESTS=1',
66       ],
67       'dependencies': [
68         '../base/base.gyp:base',
69         '../third_party/khronos/khronos.gyp:khronos_headers',
70         'command_buffer/command_buffer.gyp:gles2_utils',
71         'gles2_cmd_helper',
72       ],
73       'sources': [
74         '<@(gles2_implementation_source_files)',
75       ],
76       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
77       'msvs_disabled_warnings': [ 4267, ],
78     },
79     {
80       # Stub to expose gles2_implemenation in C instead of C++.
81       # so GLES2 C programs can work with no changes.
82       'target_name': 'gles2_c_lib',
83       'type': '<(component)',
84       'dependencies': [
85         '../base/base.gyp:base',
86         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
87         'command_buffer/command_buffer.gyp:gles2_utils',
88         'command_buffer_client',
89         'gles2_implementation',
90       ],
91       'defines': [
92         'GLES2_C_LIB_IMPLEMENTATION',
93       ],
94       'sources': [
95         '<@(gles2_c_lib_source_files)',
96       ],
97       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
98       'msvs_disabled_warnings': [4267, ],
99     },
100     {
101       # Same as gles2_c_lib except with no parameter checking. Required for
102       # OpenGL ES 2.0 conformance tests.
103       'target_name': 'gles2_c_lib_nocheck',
104       'type': '<(component)',
105       'defines': [
106         'GLES2_C_LIB_IMPLEMENTATION',
107         'GLES2_CONFORMANCE_TESTS=1',
108       ],
109       'dependencies': [
110         '../base/base.gyp:base',
111         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
112         'command_buffer/command_buffer.gyp:gles2_utils',
113         'command_buffer_client',
114         'gles2_implementation_client_side_arrays_no_check',
115       ],
116       'sources': [
117         '<@(gles2_c_lib_source_files)',
118       ],
119     },
120     {
121       'target_name': 'angle_unittests',
122       'type': '<(gtest_target_type)',
123       'dependencies': [
124         '../base/base.gyp:base',
125         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
126         '../testing/gmock.gyp:gmock',
127         '../testing/gtest.gyp:gtest',
128         '../third_party/angle_dx11/src/build_angle.gyp:translator_static',
129       ],
130       'variables': {
131         'ANGLE_DIR': '../third_party/angle_dx11',
132       },
133       'includes': [
134         '../third_party/angle_dx11/tests/preprocessor_tests/preprocessor_tests.gypi',
135         '../third_party/angle_dx11/tests/compiler_tests/compiler_tests.gypi',
136       ],
137       'include_dirs': [
138         '..',
139         '../third_party/angle_dx11/include',
140         '../third_party/angle_dx11/src',
141         '../third_party/angle_dx11/src/compiler/preprocessor',
142         '../third_party/angle_dx11/tests',
143       ],
144       'sources': [
145         'angle_unittest_main.cc',
146       ],
147     },
148     {
149       'target_name': 'gpu_unittests',
150       'type': '<(gtest_target_type)',
151       'dependencies': [
152         '../base/base.gyp:base',
153         '../base/base.gyp:test_support_base',
154         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
155         '../testing/gmock.gyp:gmock',
156         '../testing/gtest.gyp:gtest',
157         '../third_party/angle_dx11/src/build_angle.gyp:translator',
158         '../ui/gl/gl.gyp:gl',
159         '../ui/gfx/gfx.gyp:gfx',
160         'command_buffer/command_buffer.gyp:gles2_utils',
161         'command_buffer_client',
162         'command_buffer_common',
163         'command_buffer_service',
164         'gpu',
165         'gpu_unittest_utils',
166         'gles2_implementation_client_side_arrays',
167         'gles2_cmd_helper',
168       ],
169       'defines': [
170         'GLES2_C_LIB_IMPLEMENTATION',
171       ],
172       'sources': [
173         '<@(gles2_c_lib_source_files)',
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_interface_stub.cc',
180         'command_buffer/client/gles2_interface_stub.h',
181         'command_buffer/client/gles2_implementation_unittest.cc',
182         'command_buffer/client/mapped_memory_unittest.cc',
183         'command_buffer/client/query_tracker_unittest.cc',
184         'command_buffer/client/program_info_manager_unittest.cc',
185         'command_buffer/client/ring_buffer_test.cc',
186         'command_buffer/client/transfer_buffer_unittest.cc',
187         'command_buffer/client/vertex_array_object_manager_unittest.cc',
188         'command_buffer/common/bitfield_helpers_test.cc',
189         'command_buffer/common/command_buffer_mock.cc',
190         'command_buffer/common/command_buffer_mock.h',
191         'command_buffer/common/command_buffer_shared_test.cc',
192         'command_buffer/common/debug_marker_manager_unittest.cc',
193         'command_buffer/common/gles2_cmd_format_test.cc',
194         'command_buffer/common/gles2_cmd_format_test_autogen.h',
195         'command_buffer/common/gles2_cmd_utils_unittest.cc',
196         'command_buffer/common/id_allocator_test.cc',
197         'command_buffer/common/trace_event.h',
198         'command_buffer/common/unittest_main.cc',
199         'command_buffer/service/async_pixel_transfer_delegate_mock.h',
200         'command_buffer/service/async_pixel_transfer_delegate_mock.cc',
201         'command_buffer/service/async_pixel_transfer_manager_mock.h',
202         'command_buffer/service/async_pixel_transfer_manager_mock.cc',
203         'command_buffer/service/buffer_manager_unittest.cc',
204         'command_buffer/service/cmd_parser_test.cc',
205         'command_buffer/service/command_buffer_service_unittest.cc',
206         'command_buffer/service/common_decoder_unittest.cc',
207         'command_buffer/service/context_group_unittest.cc',
208         'command_buffer/service/feature_info_unittest.cc',
209         'command_buffer/service/framebuffer_manager_unittest.cc',
210         'command_buffer/service/gles2_cmd_decoder_unittest.cc',
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_base.cc',
219         'command_buffer/service/gles2_cmd_decoder_unittest_base.h',
220         'command_buffer/service/gl_surface_mock.cc',
221         'command_buffer/service/gl_surface_mock.h',
222         'command_buffer/service/gpu_scheduler_unittest.cc',
223         'command_buffer/service/id_manager_unittest.cc',
224         'command_buffer/service/mailbox_manager_unittest.cc',
225         'command_buffer/service/memory_program_cache_unittest.cc',
226         'command_buffer/service/mocks.cc',
227         'command_buffer/service/mocks.h',
228         'command_buffer/service/program_manager_unittest.cc',
229         'command_buffer/service/query_manager_unittest.cc',
230         'command_buffer/service/renderbuffer_manager_unittest.cc',
231         'command_buffer/service/program_cache_unittest.cc',
232         'command_buffer/service/shader_manager_unittest.cc',
233         'command_buffer/service/shader_translator_unittest.cc',
234         'command_buffer/service/stream_texture_mock.cc',
235         'command_buffer/service/stream_texture_mock.h',
236         'command_buffer/service/stream_texture_manager_mock.cc',
237         'command_buffer/service/stream_texture_manager_mock.h',
238         'command_buffer/service/test_helper.cc',
239         'command_buffer/service/test_helper.h',
240         'command_buffer/service/texture_manager_unittest.cc',
241         'command_buffer/service/transfer_buffer_manager_unittest.cc',
242         'command_buffer/service/vertex_attrib_manager_unittest.cc',
243         'command_buffer/service/vertex_array_manager_unittest.cc',
244         'config/gpu_blacklist_unittest.cc',
245         'config/gpu_control_list_entry_unittest.cc',
246         'config/gpu_control_list_machine_model_info_unittest.cc',
247         'config/gpu_control_list_number_info_unittest.cc',
248         'config/gpu_control_list_os_info_unittest.cc',
249         'config/gpu_control_list_string_info_unittest.cc',
250         'config/gpu_control_list_unittest.cc',
251         'config/gpu_control_list_version_info_unittest.cc',
252         'config/gpu_driver_bug_list_unittest.cc',
253         'config/gpu_info_collector_unittest.cc',
254         'config/gpu_info_unittest.cc',
255         'config/gpu_test_config_unittest.cc',
256         'config/gpu_test_expectations_parser_unittest.cc',
257         'config/gpu_util_unittest.cc',
258       ],
259       'conditions': [
260         ['OS == "android" and gtest_target_type == "shared_library"', {
261           'dependencies': [
262             '../testing/android/native_test.gyp:native_test_native_code',
263           ],
264         }],
265         # See http://crbug.com/162998#c4 for why this is needed.
266         ['OS=="linux" and linux_use_tcmalloc==1', {
267           'dependencies': [
268             '../base/allocator/allocator.gyp:allocator',
269           ],
270         }],
271       ],
272       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
273       'msvs_disabled_warnings': [ 4267, ],
274     },
275     {
276       'target_name': 'gl_tests',
277       'type': '<(gtest_target_type)',
278       'dependencies': [
279         '../base/base.gyp:base',
280         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
281         '../testing/gmock.gyp:gmock',
282         '../testing/gtest.gyp:gtest',
283         '../third_party/angle_dx11/src/build_angle.gyp:translator',
284         '../ui/gfx/gfx.gyp:gfx',
285         'command_buffer/command_buffer.gyp:gles2_utils',
286         'command_buffer_client',
287         'command_buffer_common',
288         'command_buffer_service',
289         'gpu',
290         'gpu_unittest_utils',
291         'gles2_implementation_client_side_arrays',
292         'gles2_cmd_helper',
293         #'gl_unittests',
294       ],
295       'defines': [
296         'GLES2_C_LIB_IMPLEMENTATION',
297         'GL_GLEXT_PROTOTYPES',
298       ],
299       'sources': [
300         '<@(gles2_c_lib_source_files)',
301         'command_buffer/tests/compressed_texture_test.cc',
302         'command_buffer/tests/gl_bind_uniform_location_unittest.cc',
303         'command_buffer/tests/gl_chromium_framebuffer_multisample_unittest.cc',
304         'command_buffer/tests/gl_copy_texture_CHROMIUM_unittest.cc',
305         'command_buffer/tests/gl_depth_texture_unittest.cc',
306         'command_buffer/tests/gl_gpu_memory_buffer_unittests.cc',
307         'command_buffer/tests/gl_lose_context_chromium_unittests.cc',
308         'command_buffer/tests/gl_manager.cc',
309         'command_buffer/tests/gl_manager.h',
310         'command_buffer/tests/gl_pointcoord_unittest.cc',
311         'command_buffer/tests/gl_program_unittests.cc',
312         'command_buffer/tests/gl_query_unittests.cc',
313         'command_buffer/tests/gl_readback_unittests.cc',
314         'command_buffer/tests/gl_shared_resources_unittests.cc',
315         'command_buffer/tests/gl_stream_draw_unittests.cc',
316         'command_buffer/tests/gl_test_utils.cc',
317         'command_buffer/tests/gl_test_utils.h',
318         'command_buffer/tests/gl_tests_main.cc',
319         'command_buffer/tests/gl_texture_mailbox_unittests.cc',
320         'command_buffer/tests/gl_texture_storage_unittests.cc',
321         'command_buffer/tests/gl_unittests.cc',
322         'command_buffer/tests/gl_unittests_android.cc',
323         'command_buffer/tests/gl_virtual_contexts_unittests.cc',
324         'command_buffer/tests/occlusion_query_unittests.cc',
325       ],
326       'conditions': [
327         ['OS == "android" and gtest_target_type == "shared_library"', {
328           'dependencies': [
329             '../testing/android/native_test.gyp:native_test_native_code',
330           ],
331         }],
332       ],
333       # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
334       'msvs_disabled_warnings': [ 4267, ],
335     },
336     {
337       'target_name': 'gpu_unittest_utils',
338       'type': 'static_library',
339       'dependencies': [
340         '../testing/gmock.gyp:gmock',
341         '../testing/gtest.gyp:gtest',
342         '../third_party/khronos/khronos.gyp:khronos_headers',
343         '../ui/gl/gl.gyp:gl_unittest_utils',
344         'gpu',
345       ],
346       'include_dirs': [
347         '..',
348       ],
349       'sources': [
350         'command_buffer/service/gles2_cmd_decoder_mock.cc',
351         'command_buffer/service/error_state_mock.cc',
352       ],
353     },
354   ],
355   'conditions': [
356     ['component=="static_library"', {
357       'targets': [
358          {
359           'target_name': 'disk_cache_proto',
360           'type': 'static_library',
361           'sources': [ 'command_buffer/service/disk_cache_proto.proto' ],
362           'variables': {
363             'proto_in_dir': 'command_buffer/service',
364             'proto_out_dir': 'gpu/command_buffer/service',
365           },
366           'includes': [ '../build/protoc.gypi' ],
367         },
368         {
369           'target_name': 'gpu',
370           'type': 'none',
371           'dependencies': [
372             'command_buffer_client',
373             'command_buffer_common',
374             'command_buffer_service',
375             'gles2_cmd_helper',
376             'gpu_config',
377             'gpu_ipc',
378           ],
379           'sources': [
380             'gpu_export.h',
381           ],
382           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
383           'msvs_disabled_warnings': [4267, ],
384         },
385         {
386           'target_name': 'command_buffer_common',
387           'type': 'static_library',
388           'includes': [
389             'command_buffer_common.gypi',
390           ],
391           'dependencies': [
392             '../base/base.gyp:base',
393             'command_buffer/command_buffer.gyp:gles2_utils',
394           ],
395           'export_dependent_settings': [
396             '../base/base.gyp:base',
397           ],
398         },
399         {
400           # Library helps make GLES2 command buffers.
401           'target_name': 'gles2_cmd_helper',
402           'type': 'static_library',
403           'includes': [
404             'gles2_cmd_helper.gypi',
405           ],
406           'dependencies': [
407             'command_buffer_client',
408           ],
409           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
410           'msvs_disabled_warnings': [4267, ],
411         },
412         {
413           'target_name': 'command_buffer_client',
414           'type': 'static_library',
415           'includes': [
416             'command_buffer_client.gypi',
417           ],
418           'dependencies': [
419             'command_buffer_common',
420           ],
421           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
422           'msvs_disabled_warnings': [4267, ],
423         },
424         {
425           'target_name': 'command_buffer_service',
426           'type': 'static_library',
427           'includes': [
428             'command_buffer_service.gypi',
429           ],
430           'dependencies': [
431             'command_buffer_common',
432             'disk_cache_proto',
433           ],
434           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
435           'msvs_disabled_warnings': [4267, ],
436         },
437         {
438           'target_name': 'gpu_ipc',
439           'type': 'static_library',
440           'includes': [
441             'gpu_ipc.gypi',
442           ],
443           'dependencies': [
444             'command_buffer_common',
445           ],
446         },
447         {
448           'target_name': 'gpu_config',
449           'type': 'static_library',
450           'includes': [
451             'gpu_config.gypi',
452           ],
453         },
454       ],
455     },
456     { # component != static_library
457       'targets': [
458          {
459           'target_name': 'disk_cache_proto',
460           'type': 'static_library',
461           'sources': [ 'command_buffer/service/disk_cache_proto.proto' ],
462           'variables': {
463             'proto_in_dir': 'command_buffer/service',
464             'proto_out_dir': 'gpu/command_buffer/service',
465           },
466           'includes': [ '../build/protoc.gypi' ],
467         },
468         {
469           'target_name': 'gpu',
470           'type': 'shared_library',
471           'includes': [
472             'command_buffer_client.gypi',
473             'command_buffer_common.gypi',
474             'command_buffer_service.gypi',
475             'gles2_cmd_helper.gypi',
476             'gpu_config.gypi',
477             'gpu_ipc.gypi',
478           ],
479           'defines': [
480             'GPU_IMPLEMENTATION',
481           ],
482           'sources': [
483             'gpu_export.h',
484           ],
485           'dependencies': [
486             '../base/base.gyp:base',
487             'command_buffer/command_buffer.gyp:gles2_utils',
488             'disk_cache_proto',
489           ],
490           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
491           'msvs_disabled_warnings': [4267, ],
492         },
493         {
494           'target_name': 'command_buffer_common',
495           'type': 'none',
496           'dependencies': [
497             'gpu',
498           ],
499         },
500         {
501           # Library helps make GLES2 command buffers.
502           'target_name': 'gles2_cmd_helper',
503           'type': 'none',
504           'dependencies': [
505             'gpu',
506           ],
507           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
508           'msvs_disabled_warnings': [4267, ],
509         },
510         {
511           'target_name': 'command_buffer_client',
512           'type': 'none',
513           'dependencies': [
514             'gpu',
515           ],
516         },
517         {
518           'target_name': 'command_buffer_service',
519           'type': 'none',
520           'dependencies': [
521             'gpu',
522           ],
523         },
524         {
525           'target_name': 'gpu_ipc',
526           'type': 'none',
527           'dependencies': [
528             'gpu',
529           ],
530         },
531       ],
532     }],
533     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
534       'targets': [
535         {
536           'target_name': 'gpu_ipc_win64',
537           'type': 'static_library',
538           'variables': {
539             'nacl_win64_target': 1,
540           },
541           'includes': [
542             'gpu_ipc.gypi',
543           ],
544           'dependencies': [
545             '../base/base.gyp:base_nacl_win64',
546             '../ipc/ipc.gyp:ipc_win64',
547           ],
548           'defines': [
549             '<@(nacl_win64_defines)',
550             'GPU_IMPLEMENTATION',
551           ],
552           'configurations': {
553             'Common_Base': {
554               'msvs_target_platform': 'x64',
555             },
556           },
557         },
558       ],
559     }],
560     ['OS == "android" and gtest_target_type == "shared_library"', {
561       'targets': [
562         {
563           'target_name': 'gl_tests_apk',
564           'type': 'none',
565           'dependencies': [
566             'gl_tests',
567           ],
568           'variables': {
569             'test_suite_name': 'gl_tests',
570             'input_shlib_path': '<(SHARED_LIB_DIR)/<(SHARED_LIB_PREFIX)gl_tests<(SHARED_LIB_SUFFIX)',
571           },
572           'includes': [
573             '../build/apk_test.gypi',
574           ],
575         },
576       ],
577     }],
578   ],