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