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