[Sync] Fix namespace for sync_driver component
[chromium-blink-merge.git] / third_party / mesa / mesa_gensrc.gypi
blobb5e6529771e9c212c63449dfc1a96fd69e1c38a1
1 # Copyright (c) 2013 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     'xmlfiles': [
8       'src/src/mapi/glapi/gen/EXT_draw_buffers2.xml',
9       'src/src/mapi/glapi/gen/NV_texture_barrier.xml',
10       'src/src/mapi/glapi/gen/NV_primitive_restart.xml',
11       'src/src/mapi/glapi/gen/ARB_base_instance.xml',
12       'src/src/mapi/glapi/gen/EXT_packed_depth_stencil.xml',
13       'src/src/mapi/glapi/gen/ARB_sync.xml',
14       'src/src/mapi/glapi/gen/ARB_draw_buffers.xml',
15       'src/src/mapi/glapi/gen/ARB_geometry_shader4.xml',
16       'src/src/mapi/glapi/gen/ARB_draw_buffers_blend.xml',
17       'src/src/mapi/glapi/gen/GL3x.xml',
18       'src/src/mapi/glapi/gen/ARB_blend_func_extended.xml',
19       'src/src/mapi/glapi/gen/EXT_gpu_shader4.xml',
20       'src/src/mapi/glapi/gen/ARB_robustness.xml',
21       'src/src/mapi/glapi/gen/ARB_ES2_compatibility.xml',
22       'src/src/mapi/glapi/gen/ARB_map_buffer_range.xml',
23       'src/src/mapi/glapi/gen/OES_single_precision.xml',
24       'src/src/mapi/glapi/gen/ARB_debug_output.xml',
25       'src/src/mapi/glapi/gen/ARB_draw_instanced.xml',
26       'src/src/mapi/glapi/gen/ARB_copy_buffer.xml',
27       'src/src/mapi/glapi/gen/glX_API.xml',
28       'src/src/mapi/glapi/gen/ARB_framebuffer_object.xml',
29       'src/src/mapi/glapi/gen/OES_EGL_image.xml',
30       'src/src/mapi/glapi/gen/gl_and_es_API.xml',
31       'src/src/mapi/glapi/gen/ARB_color_buffer_float.xml',
32       'src/src/mapi/glapi/gen/ARB_instanced_arrays.xml',
33       'src/src/mapi/glapi/gen/APPLE_object_purgeable.xml',
34       'src/src/mapi/glapi/gen/APPLE_vertex_array_object.xml',
35       'src/src/mapi/glapi/gen/ARB_texture_rgb10_a2ui.xml',
36       'src/src/mapi/glapi/gen/ARB_sampler_objects.xml',
37       'src/src/mapi/glapi/gen/OES_fixed_point.xml',
38       'src/src/mapi/glapi/gen/EXT_provoking_vertex.xml',
39       'src/src/mapi/glapi/gen/ARB_texture_float.xml',
40       'src/src/mapi/glapi/gen/EXT_texture_integer.xml',
41       'src/src/mapi/glapi/gen/es_EXT.xml',
42       'src/src/mapi/glapi/gen/gl_and_glX_API.xml',
43       'src/src/mapi/glapi/gen/EXT_transform_feedback.xml',
44       'src/src/mapi/glapi/gen/ARB_texture_buffer_object.xml',
45       'src/src/mapi/glapi/gen/EXT_framebuffer_object.xml',
46       'src/src/mapi/glapi/gen/ARB_uniform_buffer_object.xml',
47       'src/src/mapi/glapi/gen/ARB_texture_rg.xml',
48       'src/src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml',
49       'src/src/mapi/glapi/gen/ARB_seamless_cube_map.xml',
50       'src/src/mapi/glapi/gen/EXT_texture_array.xml',
51       'src/src/mapi/glapi/gen/ARB_vertex_array_object.xml',
52       'src/src/mapi/glapi/gen/ARB_invalidate_subdata.xml',
53       'src/src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml',
54       'src/src/mapi/glapi/gen/AMD_draw_buffers_blend.xml',
55       'src/src/mapi/glapi/gen/ARB_get_program_binary.xml',
56       'src/src/mapi/glapi/gen/gl_API.xml',
57       'src/src/mapi/glapi/gen/ARB_depth_clamp.xml',
58       'src/src/mapi/glapi/gen/ARB_texture_storage.xml',
59       'src/src/mapi/glapi/gen/ARB_depth_buffer_float.xml',
60       'src/src/mapi/glapi/gen/EXT_separate_shader_objects.xml',
61       'src/src/mapi/glapi/gen/ARB_texture_compression_rgtc.xml',
62       'src/src/mapi/glapi/gen/NV_conditional_render.xml',
63       'src/src/mesa/main/APIspec.xml',
64     ],
65   },
67   'targets': [
68     # The targets below generate all of the sources Mesa generates
69     # during its build process. Mesa's XML processors like gl_XML.py
70     # rely heavily on Python's libxml2 bindings. Specifically, the
71     # processors require validation against the DTD for default values
72     # for attributes, and none of Python's built-in XML parsers support
73     # validation. It's infeasible to use any third-party XML parser for
74     # Python which relies on native code due to the large number of
75     # host platforms Chromium must build on, and pure Python validators
76     # are in short supply.
78     # The main target is generate_mesa_sources, which must be run
79     # manually on a host platform with libxml2's Python bindings
80     # installed. (Most Linux distributions should fulfill this
81     # requirement.)
82     {
83       'target_name': 'mesa_builtin_compiler',
84       'type': 'executable',
85       'include_dirs': [
86         'src/src/gallium/auxiliary',
87         'src/src/gallium/include',
88         'src/src/glsl',
89         'src/src/glsl/glcpp',
90         'src/src/mapi',
91         'src/src/mapi/glapi',
92         'src/src/mesa',
93         'src/src/mesa/main',
94         '<(generated_src_dir)/mesa/',
95         '<(generated_src_dir)/mesa/main',
96         '<(generated_src_dir)/mesa/program',
97         '<(generated_src_dir)/mesa/glapi',
98       ],
99       'dependencies': [
100         'generate_main_mesa_sources',
101         'mesa_headers',
102         'mesa_libglslcommon', # implicit dependency on generate_main_mesa_sources
103       ],
104       'sources': [
105         'src/src/mesa/program/hash_table.c',
106         'src/src/mesa/program/symbol_table.c',
107         'src/src/glsl/standalone_scaffolding.cpp',
108         'src/src/glsl/main.cpp',
109         'src/src/glsl/builtin_stubs.cpp',
110       ],
111       'conditions': [
112         ['clang == 1', {
113           'xcode_settings': {
114             'WARNING_CFLAGS': [
115               '-Wno-tautological-constant-out-of-range-compare',
116             ],
117             'WARNING_CFLAGS!': [
118               # Don't warn about string->bool used in asserts.
119               '-Wstring-conversion',
120             ],
121           },
122           'cflags': [
123             '-Wtautological-constant-out-of-range-compare',
124           ],
125           'cflags!': [
126             '-Wstring-conversion',
127           ],
128         }],
129       ],
130     },
131     {
132       'target_name': 'generate_mesa_sources',
133       'type': 'none',
134       'dependencies': [
135         'mesa_builtin_compiler',
136       ],
137       'actions': [
138         {
139           'action_name': 'generateBuiltins',
140           'inputs': [
141             '<(PRODUCT_DIR)/mesa_builtin_compiler',
142             'src/src/glsl/builtins/tools/generate_builtins.py'
143           ],
144           'outputs': [
145             '<(generated_src_dir)/mesa/builtin_function.cpp',
146           ],
147           'action': [
148             'python',
149             'redirectoutput.py',
150             '<(generated_src_dir)/mesa/builtin_function.cpp',
151             'src/src/glsl/builtins/tools/generate_builtins.py',
152             '<(PRODUCT_DIR)/mesa_builtin_compiler',
153           ],
154           'message': "Generating Mesa builtins ...",
155         }
156       ],
157     },
158     {
159       'target_name': 'generate_main_mesa_sources',
160       'type': 'none',
161       'actions': [
162         {
163           'action_name': 'glsl_parser_cc',
164           'inputs': [
165             'src/src/glsl/glsl_parser.yy',
166           ],
167           'outputs': [
168             '<(generated_src_dir)/mesa/glsl_parser.cc',
169             '<(generated_src_dir)/mesa/glsl_parser.h',
170           ],
171           'action': [
172             'bison',
173             '-y',
174             '-v',
175             '-o',
176             '<(generated_src_dir)/mesa/glsl_parser.cc',
177             '-p',
178             '_mesa_glsl_',
179             '--defines=<(generated_src_dir)/mesa/glsl_parser.h',
180             'src/src/glsl/glsl_parser.yy'
181           ],
182           'message': "Generating glsl parser ...",
183         },
184         {
185           'action_name': 'lex_yy_c',
186           'inputs': [
187             'src/src/mesa/program/program_lexer.l',
188           ],
189           'outputs': [
190             '<(generated_src_dir)/mesa/lex.yy.c',
191           ],
192           'action': [
193             'flex',
194             '--never-interactive',
195             '--outfile=<(generated_src_dir)/mesa/lex.yy.c',
196             'src/src/mesa/program/program_lexer.l'
197           ],
198           'message': "Generating lex.yy.c ...",
199         },
200         {
201           'action_name': 'glsl_lexer_cc',
202           'inputs': [
203             'src/src/glsl/glsl_lexer.ll',
204           ],
205           'outputs': [
206             '<(generated_src_dir)/mesa/glsl_lexer.cc',
207           ],
208           'action': [
209             'flex',
210             '--nounistd',
211             '--outfile=<(generated_src_dir)/mesa/glsl_lexer.cc',
212             'src/src/glsl/glsl_lexer.ll',
213           ],
214           'message': "Generating glsl lexer ...",
215         },
216         {
217           'action_name': 'glcpp_lex_c',
218           'inputs': [
219             'src/src/glsl/glcpp/glcpp-lex.l',
220           ],
221           'outputs': [
222             '<(generated_src_dir)/mesa/glcpp-lex.c',
223           ],
224           'action': [
225             'flex',
226             '--nounistd',
227             '--outfile=<(generated_src_dir)/mesa/glcpp-lex.c',
228             'src/src/glsl/glcpp/glcpp-lex.l',
229           ],
230           'message': "Generating glcpp-lex.c ...",
231         },
232         {
233           'action_name': 'glcpp_parse_c',
234           'inputs': [
235             'src/src/glsl/glcpp/glcpp-parse.y',
236           ],
237           'outputs': [
238             '<(generated_src_dir)/mesa/glcpp-parse.c',
239             '<(generated_src_dir)/mesa/glcpp-parse.h',
240           ],
241           'action': [
242             'bison',
243             '-y',
244             '-v',
245             '-d',
246             '-p',
247             'glcpp_parser_',
248             '-o',
249             '<(generated_src_dir)/mesa/glcpp-parse.c',
250             '--defines=<(generated_src_dir)/mesa/glcpp-parse.h',
251             'src/src/glsl/glcpp/glcpp-parse.y',
252           ],
253           'message': "Generating glcpp parser ...",
254         },
255         {
256           'action_name': 'program_parse_tab_c',
257           'inputs': [
258             'src/src/mesa/program/program_parse.y',
259           ],
260           'outputs': [
261             '<(generated_src_dir)/mesa/program/program_parse.tab.c',
262           ],
263           'action': [
264             'bison',
265             '-y',
266             '-v',
267             '-d',
268             '-p',
269             '_mesa_program_',
270             '--output=<(generated_src_dir)/mesa/program/program_parse.tab.c',
271             'src/src/mesa/program/program_parse.y',
272           ],
273           'message': "Generating program_parse.y ...",
274         },
275         {
276           'action_name': 'glapi_mapi_tmp_h',
277           'inputs': [
278             '<@(xmlfiles)',
279             'redirectoutput.py',
280             'src/src/mapi/mapi/mapi_abi.py',
281           ],
282           'outputs': [
283             '<(generated_src_dir)/mesa/glapi_mapi_tmp.h',
284           ],
285           'action': [
286             'python',
287             'redirectoutput.py',
288             '<(generated_src_dir)/mesa/glapi_mapi_tmp.h',
289             'src/src/mapi/mapi/mapi_abi.py',
290             '--printer',
291             'glapi',
292             '--mode',
293             'lib',
294             'src/src/mapi/glapi/gen/gl_and_es_API.xml',
295           ],
296           'message': "Generating glapi_mapi_tmp.h ...",
297         },
298         {
299           'action_name': 'glapi_mapi_tmp_shared_h',
300           'inputs': [
301             '<@(xmlfiles)',
302             'redirectoutput.py',
303             'src/src/mapi/mapi/mapi_abi.py',
304           ],
305           'outputs': [
306             '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
307           ],
308           'action': [
309             'python',
310             'redirectoutput.py',
311             '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
312             'src/src/mapi/mapi/mapi_abi.py',
313             '--printer',
314             'shared-glapi',
315             '--mode',
316             'lib',
317             'src/src/mapi/glapi/gen/gl_and_es_API.xml',
318           ],
319           'message': "Generating glapi_mapi_tmp_shared.h ...",
320         },
321         {
322           'action_name': 'glprocs_h',
323           'inputs': [
324             '<@(xmlfiles)',
325             'redirectoutput.py',
326             'src/src/mapi/glapi/gen/gl_procs.py',
327           ],
328           'outputs': [
329             '<(generated_src_dir)/mesa/glprocs.h',
330           ],
331           'action': [
332             'python',
333             'redirectoutput.py',
334             '<(generated_src_dir)/mesa/glprocs.h',
335             'src/src/mapi/glapi/gen/gl_procs.py',
336             '-f',
337             'src/src/mapi/glapi/gen/gl_API.xml',
338           ],
339           'message': "Generating glprocs.h ...",
340         },
341         {
342           'action_name': 'glapitemp_h',
343           'inputs': [
344             '<@(xmlfiles)',
345             'redirectoutput.py',
346             'src/src/mapi/glapi/gen/gl_apitemp.py',
347           ],
348           'outputs': [
349             '<(generated_src_dir)/mesa/glapi/glapitemp.h',
350           ],
351           'action': [
352             'python',
353             'redirectoutput.py',
354             '<(generated_src_dir)/mesa/glapi/glapitemp.h',
355             'src/src/mapi/glapi/gen/gl_apitemp.py',
356             '-f',
357             'src/src/mapi/glapi/gen/gl_API.xml',
358           ],
359           'message': "Generating glapitemp.h ...",
360         },
361         {
362           'action_name': 'glapitable_h',
363           'inputs': [
364             '<@(xmlfiles)',
365             'redirectoutput.py',
366             'src/src/mapi/glapi/gen/gl_table.py',
367           ],
368           'outputs': [
369             '<(generated_src_dir)/mesa/glapi/glapitable.h',
370           ],
371           'action': [
372             'python',
373             'redirectoutput.py',
374             '<(generated_src_dir)/mesa/glapi/glapitable.h',
375             'src/src/mapi/glapi/gen/gl_table.py',
376             '-f',
377             'src/src/mapi/glapi/gen/gl_API.xml',
378           ],
379           'message': "Generating glapitable.h ...",
380         },
381         {
382           'action_name': 'glapi_gentable_c',
383           'inputs': [
384             '<@(xmlfiles)',
385             'redirectoutput.py',
386             'src/src/mapi/glapi/gen/gl_gentable.py',
387           ],
388           'outputs': [
389             '<(generated_src_dir)/mesa/glapi_gentable.c',
390           ],
391           'action': [
392             'python',
393             'redirectoutput.py',
394             '<(generated_src_dir)/mesa/glapi_gentable.c',
395             'src/src/mapi/glapi/gen/gl_gentable.py',
396             '-f',
397             'src/src/mapi/glapi/gen/gl_API.xml',
398           ],
399           'message': "Generating glapi_gentable.c ...",
400         },
401         {
402           'action_name': 'glapi_x86_64_S',
403           'inputs': [
404             '<@(xmlfiles)',
405             'redirectoutput.py',
406             'src/src/mapi/glapi/gen/gl_x86-64_asm.py',
407           ],
408           'outputs': [
409             '<(generated_src_dir)/mesa/glapi_x86-64.S',
410           ],
411           'action': [
412             'python',
413             'redirectoutput.py',
414             '<(generated_src_dir)/mesa/glapi_x86-64.S',
415             'src/src/mapi/glapi/gen/gl_x86-64_asm.py',
416             '-f',
417             'src/src/mapi/glapi/gen/gl_API.xml',
418           ],
419           'message': "Generating glapi_x86-64.S ...",
420         },
421         {
422           'action_name': 'enums_c',
423           'inputs': [
424             '<@(xmlfiles)',
425             'redirectoutput.py',
426             'src/src/mapi/glapi/gen/gl_enums.py',
427           ],
428           'outputs': [
429             '<(generated_src_dir)/mesa/enums.c',
430           ],
431           'action': [
432             'python',
433             'redirectoutput.py',
434             '<(generated_src_dir)/mesa/enums.c',
435             'src/src/mapi/glapi/gen/gl_enums.py',
436             '-f',
437             'src/src/mapi/glapi/gen/gl_and_es_API.xml',
438           ],
439           'message': "Generating enums.c ...",
440         },
441         {
442           'action_name': 'dispatch_h',
443           'inputs': [
444             '<@(xmlfiles)',
445             'redirectoutput.py',
446             'src/src/mapi/glapi/gen/gl_table.py',
447           ],
448           'outputs': [
449             '<(generated_src_dir)/mesa/main/dispatch.h',
450           ],
451           'action': [
452             'python',
453             'redirectoutput.py',
454             '<(generated_src_dir)/mesa/main/dispatch.h',
455             'src/src/mapi/glapi/gen/gl_table.py',
456             '-f',
457             'src/src/mapi/glapi/gen/gl_API.xml',
458             '-m',
459             'remap_table',
460           ],
461           'message': "Generating dispatch.h ...",
462         },
463         {
464           'action_name': 'remap_helper_h',
465           'inputs': [
466             '<@(xmlfiles)',
467             'redirectoutput.py',
468             'src/src/mapi/glapi/gen/remap_helper.py',
469           ],
470           'outputs': [
471             '<(generated_src_dir)/mesa/main/remap_helper.h',
472           ],
473           'action': [
474             'python',
475             'redirectoutput.py',
476             '<(generated_src_dir)/mesa/main/remap_helper.h',
477             'src/src/mapi/glapi/gen/remap_helper.py',
478             '-f',
479             'src/src/mapi/glapi/gen/gl_API.xml',
480           ],
481           'message': "Generating remap_helper.h ...",
482         },
483         {
484           'action_name': 'indirect_c',
485           'inputs': [
486             '<@(xmlfiles)',
487             'src/src/mapi/glapi/gen/glX_proto_send.py',
488             'redirectoutput.py',
489           ],
490           'outputs': [
491             '<(generated_src_dir)/mesa/indirect.c',
492           ],
493           'action': [
494             'python',
495             'redirectoutput.py',
496             '<(generated_src_dir)/mesa/indirect.c',
497             'src/src/mapi/glapi/gen/glX_proto_send.py',
498             '-f',
499             'src/src/mapi/glapi/gen/gl_API.xml',
500             '-m',
501             'proto',
502           ],
503           'message': "Generating indirect.c ...",
504         },
505         {
506           'action_name': 'indirect_h',
507           'inputs': [
508             '<@(xmlfiles)',
509             'redirectoutput.py',
510             'src/src/mapi/glapi/gen/glX_proto_send.py',
511           ],
512           'outputs': [
513             '<(generated_src_dir)/mesa/indirect.h',
514           ],
515           'action': [
516             'python',
517             'redirectoutput.py',
518             '<(generated_src_dir)/mesa/indirect.h',
519             'src/src/mapi/glapi/gen/glX_proto_send.py',
520             '-f',
521             'src/src/mapi/glapi/gen/gl_API.xml',
522             '-m',
523             'init_h',
524           ],
525           'message': "Generating indirect.h ...",
526         },
527         {
528           'action_name': 'indirect_init_c',
529           'inputs': [
530             '<@(xmlfiles)',
531             'redirectoutput.py',
532             'src/src/mapi/glapi/gen/glX_proto_send.py',
533           ],
534           'outputs': [
535             '<(generated_src_dir)/mesa/indirect_init.c',
536           ],
537           'action': [
538             'python',
539             'redirectoutput.py',
540             '<(generated_src_dir)/mesa/indirect_init.c',
541             'src/src/mapi/glapi/gen/glX_proto_send.py',
542             '-f',
543             'src/src/mapi/glapi/gen/gl_API.xml',
544             '-m',
545             'init_c',
546           ],
547           'message': "Generating indirect_init.c ...",
548         },
549         {
550           'action_name': 'indirect_size_h',
551           'inputs': [
552             '<@(xmlfiles)',
553             'redirectoutput.py',
554             'src/src/mapi/glapi/gen/glX_proto_size.py',
555           ],
556           'outputs': [
557             '<(generated_src_dir)/mesa/indirect_size.h',
558           ],
559           'action': [
560             'python',
561             'redirectoutput.py',
562             '<(generated_src_dir)/mesa/indirect_size.h',
563             'src/src/mapi/glapi/gen/glX_proto_size.py',
564             '-f',
565             'src/src/mapi/glapi/gen/gl_API.xml',
566             '-m',
567             'size_h',
568             '--only-set',
569             '-h',
570             '_INDIRECT_SIZE_H_',
571           ],
572           'message': "Generating indirect_size.h ...",
573         },
574         {
575           'action_name': 'indirect_size_c',
576           'inputs': [
577             '<@(xmlfiles)',
578             'redirectoutput.py',
579             'src/src/mapi/glapi/gen/glX_proto_size.py',
580           ],
581           'outputs': [
582             '<(generated_src_dir)/mesa/indirect_size.c',
583           ],
584           'action': [
585             'python',
586             'redirectoutput.py',
587             '<(generated_src_dir)/mesa/indirect_size.c',
588             'src/src/mapi/glapi/gen/glX_proto_size.py',
589             '-f',
590             'src/src/mapi/glapi/gen/gl_API.xml',
591             '-m',
592             'size_c',
593             '--only-set',
594           ],
595           'message': "Generating indirect_size.c ...",
596         },
597         {
598           'action_name': 'api_exec_es1_c',
599           'inputs': [
600             '<@(xmlfiles)',
601             'redirectoutput.py',
602             'src/src/mesa/main/es_generator.py',
603           ],
604           'outputs': [
605             '<(generated_src_dir)/mesa/api_exec_es1.c',
606           ],
607           'action': [
608             'python',
609             'redirectoutput.py',
610             '<(generated_src_dir)/mesa/api_exec_es1.c',
611             'src/src/mesa/main/es_generator.py',
612             '-S',
613             'src/src/mesa/main/APIspec.xml',
614             '-V',
615             'GLES1.1',
616           ],
617           'message': "Generating api_exec_es1.c ...",
618         },
619         {
620           'action_name': 'git_sha1_h',
621           'inputs': [
622           ],
623           'outputs': [
624             '<(generated_src_dir)/mesa/git_sha1.h',
625           ],
626           'action': [
627             'python',
628             'generate_git_sha1.py',
629             '<(generated_src_dir)/mesa/git_sha1.h',
630           ],
631           'message': "Generating Mesa sources ...",
632         },
633       ],
634     },
635   ],