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    'generated_src_dir': 'src/chromium_gensrc',
8  },
9  'target_defaults': {
10    'defines': [
11      'MAPI_ABI_HEADER="glapi_mapi_tmp_shared.h"',
12      "PACKAGE_NAME=\"Mesa\"",
13      "PACKAGE_TARNAME=\"mesa\"",
14      "PACKAGE_VERSION=\"9.0.3\"",
15      "PACKAGE_STRING=\"Mesa\ 9.0.3\"",
16      "PACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"",
17      "PACKAGE_URL=\"\"",
18      "PACKAGE=\"mesa\"",
19      "VERSION=\"9.0.3\"",
20      "STDC_HEADERS=1",
21      "HAVE_SYS_TYPES_H=1",
22      "HAVE_SYS_STAT_H=1",
23      "HAVE_STDLIB_H=1",
24      "HAVE_STRING_H=1",
25      "HAVE_MEMORY_H=1",
26      "HAVE_STRINGS_H=1",
27      "HAVE_INTTYPES_H=1",
28      "HAVE_STDINT_H=1",
29      "HAVE_DLFCN_H=1",
30      "LT_OBJDIR=\".libs/\"",
31      "YYTEXT_POINTER=1",
32      "HAVE_LIBEXPAT=1",
33      "HAVE_LIBXCB_DRI2=1",
34      "FEATURE_GL=1",
35      'MAPI_MODE_GLAPI',
36      #"USE_X86_64_ASM",
37      "IN_DRI_DRIVER",
38      "USE_XCB",
39      "GLX_INDIRECT_RENDERING",
40      "GLX_DIRECT_RENDERING",
41      "USE_EXTERNAL_DXTN_LIB=1",
42      "IN_DRI_DRIVER",
43      "HAVE_ALIAS",
44      "HAVE_MINCORE",
45      "HAVE_LIBUDEV",
46      "_GLAPI_NO_EXPORTS",
47    ],
48    'conditions': [
49      ['OS=="android"', {
50        'defines': [
51          '__GLIBC__',
52          '_GNU_SOURCE',
53        ],
54      }],
55      ['OS=="linux"', {
56        'defines': [
57          '_GNU_SOURCE',
58        ],
59      }],
60      ['os_posix == 1', {
61        'defines': [
62          'HAVE_DLOPEN',
63          'HAVE_PTHREAD=1',
64          'HAVE_UNISTD_H=1',
65        ],
66      }],
67      ['os_posix == 1 and OS != "android"', {
68        'defines': [
69          'HAVE_POSIX_MEMALIGN',
70        ],
71      }],
72      ['os_posix == 1 and OS != "mac" and OS != "android"', {
73        'cflags': [
74          '-fPIC',
75        ],
76      }],
77      ['ubsan_vptr == 1', {
78        'cflags!': [
79          # UBsan's vptr is not compatible with -fno-rtti,
80          # which is used by gallium/auxiliary/Makefile.
81          '-fsanitize=null',
82          '-fsanitize=vptr',
83        ],
84      }],
85    ],
86  },
87  'targets': [
88    {
89      'target_name': 'mesa_headers',
90      'type': 'none',
91      'direct_dependent_settings': {
92        'include_dirs': [
93          'src/include',
94        ],
95      },
96      'conditions': [
97        ['use_x11==0', {
98          'direct_dependent_settings': {
99            'defines': [
100              'MESA_EGL_NO_X11_HEADERS',
101            ],
102          },
103        }],
104      ],
105    },
106    {
107      'target_name': 'mesa_libglslcommon',
108      'type': 'static_library',
109      'include_dirs': [
110        'src/src/gallium/auxiliary',
111        'src/src/gallium/include',
112        'src/src/glsl',
113        'src/src/glsl/glcpp',
114        'src/src/mapi',
115        'src/src/mapi/glapi',
116        'src/src/mesa',
117        'src/src/mesa/main',
118        'src/include',
119        '<(generated_src_dir)/mesa/',
120        '<(generated_src_dir)/mesa/main',
121        '<(generated_src_dir)/mesa/program',
122        '<(generated_src_dir)/mesa/glapi',
123      ],
124      'dependencies': [
125        'mesa_headers',
126      ],
127      # TODO(scottmg): http://crbug.com/143877 These should be removed if
128      # Mesa is ever rolled and the warnings are fixed.
129      'msvs_disabled_warnings': [
130          4005, 4018, 4065, 4090, 4099, 4291, 4345, 4267,
131      ],
132      'variables': {
133        'clang_warning_flags': [
134          '-Wno-tautological-constant-out-of-range-compare',
135          '-Wno-mismatched-tags',  # Fixed upstream.
136        ],
137        'clang_warning_flags_unset': [
138          # Don't warn about string->bool used in asserts.
139          '-Wstring-conversion',
140        ],
141      },
142      'sources': [
143        '<(generated_src_dir)/mesa/main/dispatch.h',
144        'src/src/glsl/ast_expr.cpp',
145        'src/src/glsl/ast_function.cpp',
146        'src/src/glsl/ast_to_hir.cpp',
147        'src/src/glsl/ast_type.cpp',
148        'src/src/glsl/builtin_variables.cpp',
149        '<(generated_src_dir)/mesa/glcpp-lex.c',
150        '<(generated_src_dir)/mesa/glcpp-parse.c',
151        '<(generated_src_dir)/mesa/glcpp-parse.h',
152        'src/src/glsl/glcpp/glcpp.h',
153        'src/src/glsl/glcpp/pp.c',
154        '<(generated_src_dir)/mesa/glsl_lexer.cc',
155        '<(generated_src_dir)/mesa/glsl_parser.cc',
156        'src/src/glsl/glsl_parser_extras.cpp',
157        'src/src/glsl/glsl_parser_extras.h',
158        'src/src/glsl/glsl_symbol_table.cpp',
159        'src/src/glsl/glsl_symbol_table.h',
160        'src/src/glsl/glsl_types.cpp',
161        'src/src/glsl/glsl_types.h',
162        'src/src/glsl/hir_field_selection.cpp',
163        'src/src/glsl/ir.cpp',
164        'src/src/glsl/ir.h',
165        'src/src/glsl/ir_basic_block.cpp',
166        'src/src/glsl/ir_basic_block.h',
167        'src/src/glsl/ir_builder.cpp',
168        'src/src/glsl/ir_builder.h',
169        'src/src/glsl/ir_clone.cpp',
170        'src/src/glsl/ir_constant_expression.cpp',
171        'src/src/glsl/ir_expression_flattening.cpp',
172        'src/src/glsl/ir_expression_flattening.h',
173        'src/src/glsl/ir_function.cpp',
174        'src/src/glsl/ir_function_can_inline.cpp',
175        'src/src/glsl/ir_function_detect_recursion.cpp',
176        'src/src/glsl/ir_hierarchical_visitor.cpp',
177        'src/src/glsl/ir_hierarchical_visitor.h',
178        'src/src/glsl/ir_hv_accept.cpp',
179        'src/src/glsl/ir_import_prototypes.cpp',
180        'src/src/glsl/ir_print_visitor.cpp',
181        'src/src/glsl/ir_print_visitor.h',
182        'src/src/glsl/ir_reader.cpp',
183        'src/src/glsl/ir_reader.h',
184        'src/src/glsl/ir_rvalue_visitor.cpp',
185        'src/src/glsl/ir_rvalue_visitor.h',
186        'src/src/glsl/ir_set_program_inouts.cpp',
187        'src/src/glsl/ir_validate.cpp',
188        'src/src/glsl/ir_variable_refcount.cpp',
189        'src/src/glsl/ir_variable_refcount.h',
190        'src/src/glsl/link_functions.cpp',
191        'src/src/glsl/link_uniform_initializers.cpp',
192        'src/src/glsl/link_uniforms.cpp',
193        'src/src/glsl/linker.cpp',
194        'src/src/glsl/linker.h',
195        'src/src/glsl/loop_analysis.cpp',
196        'src/src/glsl/loop_analysis.h',
197        'src/src/glsl/loop_controls.cpp',
198        'src/src/glsl/loop_unroll.cpp',
199        'src/src/glsl/lower_clip_distance.cpp',
200        'src/src/glsl/lower_discard.cpp',
201        'src/src/glsl/lower_discard_flow.cpp',
202        'src/src/glsl/lower_if_to_cond_assign.cpp',
203        'src/src/glsl/lower_instructions.cpp',
204        'src/src/glsl/lower_jumps.cpp',
205        'src/src/glsl/lower_mat_op_to_vec.cpp',
206        'src/src/glsl/lower_noise.cpp',
207        'src/src/glsl/lower_output_reads.cpp',
208        'src/src/glsl/lower_texture_projection.cpp',
209        'src/src/glsl/lower_ubo_reference.cpp',
210        'src/src/glsl/lower_variable_index_to_cond_assign.cpp',
211        'src/src/glsl/lower_vec_index_to_cond_assign.cpp',
212        'src/src/glsl/lower_vec_index_to_swizzle.cpp',
213        'src/src/glsl/lower_vector.cpp',
214        'src/src/glsl/opt_algebraic.cpp',
215        'src/src/glsl/opt_array_splitting.cpp',
216        'src/src/glsl/opt_constant_folding.cpp',
217        'src/src/glsl/opt_constant_propagation.cpp',
218        'src/src/glsl/opt_constant_variable.cpp',
219        'src/src/glsl/opt_copy_propagation.cpp',
220        'src/src/glsl/opt_copy_propagation_elements.cpp',
221        'src/src/glsl/opt_dead_code.cpp',
222        'src/src/glsl/opt_dead_code_local.cpp',
223        'src/src/glsl/opt_dead_functions.cpp',
224        'src/src/glsl/opt_function_inlining.cpp',
225        'src/src/glsl/opt_if_simplification.cpp',
226        'src/src/glsl/opt_noop_swizzle.cpp',
227        'src/src/glsl/opt_redundant_jumps.cpp',
228        'src/src/glsl/opt_structure_splitting.cpp',
229        'src/src/glsl/opt_swizzle_swizzle.cpp',
230        'src/src/glsl/opt_tree_grafting.cpp',
231        'src/src/glsl/program.h',
232        'src/src/glsl/ralloc.c',
233        'src/src/glsl/ralloc.h',
234        'src/src/glsl/s_expression.cpp',
235        'src/src/glsl/s_expression.h',
236        # This file is not needed and has duplicate symbols (although it
237        # happens to link because of static library link ordering).
238        #'src/src/glsl/standalone_scaffolding.cpp',
239        #'src/src/glsl/standalone_scaffolding.h',
240        'src/src/glsl/strtod.c',
241        'src/src/glsl/strtod.h',
242      ],
243    },
244    {
245      'target_name': 'mesa',
246      'type': 'static_library',
247      'include_dirs': [
248        'src/src/gallium/auxiliary',
249        'src/src/gallium/include',
250        'src/src/glsl',
251        'src/src/glsl/glcpp',
252        'src/src/mapi',
253        'src/src/mapi/glapi',
254        'src/src/mesa',
255        'src/src/mesa/main',
256        '<(generated_src_dir)/mesa/',
257        '<(generated_src_dir)/mesa/main',
258        '<(generated_src_dir)/mesa/program',
259        '<(generated_src_dir)/mesa/glapi',
260      ],
261      'dependencies': [
262        'mesa_headers',
263        'mesa_libglslcommon',
264      ],
265      # TODO(scottmg): http://crbug.com/143877 These should be removed if
266      # Mesa is ever rolled and the warnings are fixed.
267      'msvs_disabled_warnings': [
268          4005, 4018, 4090, 4099, 4146, 4291, 4305, 4334, 4748, 4267,
269      ],
270      'variables': {
271        'clang_warning_flags': [
272          '-Wno-tautological-constant-out-of-range-compare',
273          '-Wno-absolute-value',  # Fires on st_atom_array.c, might be a bug
274          '-Wno-mismatched-tags',  # Fixed upstream.
275        ],
276        'clang_warning_flags_unset': [
277          # Don't warn about string->bool used in asserts.
278          '-Wstring-conversion',
279        ],
280      },
281      'sources': [
282        '<(generated_src_dir)/mesa/builtin_function.cpp',
283        '<(generated_src_dir)/mesa/glapi_mapi_tmp_shared.h',
284        'src/src/mapi/mapi/entry.c',
285        'src/src/mapi/mapi/entry.h',
286        'src/src/mapi/mapi/mapi_glapi.c',
287        'src/src/mapi/mapi/stub.c',
288        'src/src/mapi/mapi/stub.h',
289        'src/src/mapi/mapi/table.c',
290        'src/src/mapi/mapi/table.h',
291        'src/src/mapi/mapi/u_current.c',
292        'src/src/mapi/mapi/u_current.h',
293        'src/src/mapi/mapi/u_execmem.c',
294        'src/src/mapi/mapi/u_execmem.h',
295        'src/src/mesa/main/accum.c',
296        'src/src/mesa/main/accum.h',
297        'src/src/mesa/main/api_arrayelt.c',
298        'src/src/mesa/main/api_arrayelt.h',
299        'src/src/mesa/main/api_exec.c',
300        'src/src/mesa/main/api_exec.h',
301        '<(generated_src_dir)/mesa/api_exec_es1.c',
302        'src/src/mesa/main/api_loopback.c',
303        'src/src/mesa/main/api_loopback.h',
304        'src/src/mesa/main/api_validate.c',
305        'src/src/mesa/main/api_validate.h',
306        'src/src/mesa/main/arbprogram.c',
307        'src/src/mesa/main/arbprogram.h',
308        'src/src/mesa/main/arrayobj.c',
309        'src/src/mesa/main/arrayobj.h',
310        'src/src/mesa/main/atifragshader.c',
311        'src/src/mesa/main/atifragshader.h',
312        'src/src/mesa/main/attrib.c',
313        'src/src/mesa/main/attrib.h',
314        'src/src/mesa/main/blend.c',
315        'src/src/mesa/main/blend.h',
316        'src/src/mesa/main/bufferobj.c',
317        'src/src/mesa/main/bufferobj.h',
318        'src/src/mesa/main/buffers.c',
319        'src/src/mesa/main/buffers.h',
320        'src/src/mesa/main/clear.c',
321        'src/src/mesa/main/clear.h',
322        'src/src/mesa/main/clip.c',
323        'src/src/mesa/main/clip.h',
324        'src/src/mesa/main/colortab.c',
325        'src/src/mesa/main/colortab.h',
326        'src/src/mesa/main/condrender.c',
327        'src/src/mesa/main/condrender.h',
328        'src/src/mesa/main/context.c',
329        'src/src/mesa/main/context.h',
330        'src/src/mesa/main/convolve.c',
331        'src/src/mesa/main/convolve.h',
332        'src/src/mesa/main/cpuinfo.c',
333        'src/src/mesa/main/cpuinfo.h',
334        'src/src/mesa/main/debug.c',
335        'src/src/mesa/main/debug.h',
336        'src/src/mesa/main/depth.c',
337        'src/src/mesa/main/depth.h',
338        'src/src/mesa/main/dlist.c',
339        'src/src/mesa/main/dlist.h',
340        'src/src/mesa/main/drawpix.c',
341        'src/src/mesa/main/drawpix.h',
342        'src/src/mesa/main/drawtex.c',
343        'src/src/mesa/main/drawtex.h',
344        'src/src/mesa/main/enable.c',
345        'src/src/mesa/main/enable.h',
346        '<(generated_src_dir)/mesa/enums.c',
347        'src/src/mesa/main/enums.h',
348        'src/src/mesa/main/errors.c',
349        'src/src/mesa/main/errors.h',
350        'src/src/mesa/main/es1_conversion.c',
351        'src/src/mesa/main/es1_conversion.h',
352        'src/src/mesa/main/eval.c',
353        'src/src/mesa/main/eval.h',
354        'src/src/mesa/main/execmem.c',
355        'src/src/mesa/main/extensions.c',
356        'src/src/mesa/main/extensions.h',
357        'src/src/mesa/main/fbobject.c',
358        'src/src/mesa/main/fbobject.h',
359        'src/src/mesa/main/feedback.c',
360        'src/src/mesa/main/feedback.h',
361        'src/src/mesa/main/ff_fragment_shader.cpp',
362        'src/src/mesa/main/ffvertex_prog.c',
363        'src/src/mesa/main/ffvertex_prog.h',
364        'src/src/mesa/main/fog.c',
365        'src/src/mesa/main/fog.h',
366        'src/src/mesa/main/format_pack.c',
367        'src/src/mesa/main/format_pack.h',
368        'src/src/mesa/main/format_unpack.c',
369        'src/src/mesa/main/format_unpack.h',
370        'src/src/mesa/main/formats.c',
371        'src/src/mesa/main/formats.h',
372        'src/src/mesa/main/framebuffer.c',
373        'src/src/mesa/main/framebuffer.h',
374        'src/src/mesa/main/get.c',
375        'src/src/mesa/main/get.h',
376        'src/src/mesa/main/getstring.c',
377        'src/src/mesa/main/glformats.c',
378        'src/src/mesa/main/glformats.h',
379        'src/src/mesa/main/hash.c',
380        'src/src/mesa/main/hash.h',
381        'src/src/mesa/main/hint.c',
382        'src/src/mesa/main/hint.h',
383        'src/src/mesa/main/histogram.c',
384        'src/src/mesa/main/histogram.h',
385        'src/src/mesa/main/image.c',
386        'src/src/mesa/main/image.h',
387        'src/src/mesa/main/imports.c',
388        'src/src/mesa/main/imports.h',
389        'src/src/mesa/main/light.c',
390        'src/src/mesa/main/light.h',
391        'src/src/mesa/main/lines.c',
392        'src/src/mesa/main/lines.h',
393        'src/src/mesa/main/matrix.c',
394        'src/src/mesa/main/matrix.h',
395        'src/src/mesa/main/mipmap.c',
396        'src/src/mesa/main/mipmap.h',
397        'src/src/mesa/main/mm.c',
398        'src/src/mesa/main/mm.h',
399        'src/src/mesa/main/multisample.c',
400        'src/src/mesa/main/multisample.h',
401        'src/src/mesa/main/nvprogram.c',
402        'src/src/mesa/main/nvprogram.h',
403        'src/src/mesa/main/pack.c',
404        'src/src/mesa/main/pack.h',
405        'src/src/mesa/main/pbo.c',
406        'src/src/mesa/main/pbo.h',
407        'src/src/mesa/main/pixel.c',
408        'src/src/mesa/main/pixel.h',
409        'src/src/mesa/main/pixelstore.c',
410        'src/src/mesa/main/pixelstore.h',
411        'src/src/mesa/main/pixeltransfer.c',
412        'src/src/mesa/main/pixeltransfer.h',
413        'src/src/mesa/main/points.c',
414        'src/src/mesa/main/points.h',
415        'src/src/mesa/main/polygon.c',
416        'src/src/mesa/main/polygon.h',
417        'src/src/mesa/main/querymatrix.c',
418        'src/src/mesa/main/queryobj.c',
419        'src/src/mesa/main/queryobj.h',
420        'src/src/mesa/main/rastpos.c',
421        'src/src/mesa/main/rastpos.h',
422        'src/src/mesa/main/readpix.c',
423        'src/src/mesa/main/readpix.h',
424        'src/src/mesa/main/remap.c',
425        'src/src/mesa/main/remap.h',
426        'src/src/mesa/main/renderbuffer.c',
427        'src/src/mesa/main/renderbuffer.h',
428        'src/src/mesa/main/samplerobj.c',
429        'src/src/mesa/main/samplerobj.h',
430        'src/src/mesa/main/scissor.c',
431        'src/src/mesa/main/scissor.h',
432        'src/src/mesa/main/shader_query.cpp',
433        'src/src/mesa/main/shaderapi.c',
434        'src/src/mesa/main/shaderapi.h',
435        'src/src/mesa/main/shaderobj.c',
436        'src/src/mesa/main/shaderobj.h',
437        'src/src/mesa/main/shared.c',
438        'src/src/mesa/main/shared.h',
439        'src/src/mesa/main/state.c',
440        'src/src/mesa/main/state.h',
441        'src/src/mesa/main/stencil.c',
442        'src/src/mesa/main/stencil.h',
443        'src/src/mesa/main/syncobj.c',
444        'src/src/mesa/main/syncobj.h',
445        'src/src/mesa/main/texcompress.c',
446        'src/src/mesa/main/texcompress.h',
447        'src/src/mesa/main/texcompress_cpal.c',
448        'src/src/mesa/main/texcompress_cpal.h',
449        'src/src/mesa/main/texcompress_etc.c',
450        'src/src/mesa/main/texcompress_etc.h',
451        'src/src/mesa/main/texcompress_fxt1.c',
452        'src/src/mesa/main/texcompress_fxt1.h',
453        'src/src/mesa/main/texcompress_rgtc.c',
454        'src/src/mesa/main/texcompress_rgtc.h',
455        'src/src/mesa/main/texcompress_s3tc.c',
456        'src/src/mesa/main/texcompress_s3tc.h',
457        'src/src/mesa/main/texenv.c',
458        'src/src/mesa/main/texenv.h',
459        'src/src/mesa/main/texformat.c',
460        'src/src/mesa/main/texformat.h',
461        'src/src/mesa/main/texgen.c',
462        'src/src/mesa/main/texgen.h',
463        'src/src/mesa/main/texgetimage.c',
464        'src/src/mesa/main/texgetimage.h',
465        'src/src/mesa/main/teximage.c',
466        'src/src/mesa/main/teximage.h',
467        'src/src/mesa/main/texobj.c',
468        'src/src/mesa/main/texobj.h',
469        'src/src/mesa/main/texparam.c',
470        'src/src/mesa/main/texparam.h',
471        'src/src/mesa/main/texstate.c',
472        'src/src/mesa/main/texstate.h',
473        'src/src/mesa/main/texstorage.c',
474        'src/src/mesa/main/texstorage.h',
475        'src/src/mesa/main/texstore.c',
476        'src/src/mesa/main/texstore.h',
477        'src/src/mesa/main/texturebarrier.c',
478        'src/src/mesa/main/texturebarrier.h',
479        'src/src/mesa/main/transformfeedback.c',
480        'src/src/mesa/main/transformfeedback.h',
481        'src/src/mesa/main/uniform_query.cpp',
482        'src/src/mesa/main/uniforms.c',
483        'src/src/mesa/main/uniforms.h',
484        'src/src/mesa/main/varray.c',
485        'src/src/mesa/main/varray.h',
486        'src/src/mesa/main/version.c',
487        'src/src/mesa/main/version.h',
488        'src/src/mesa/main/viewport.c',
489        'src/src/mesa/main/viewport.h',
490        'src/src/mesa/main/vtxfmt.c',
491        'src/src/mesa/main/vtxfmt.h',
492        'src/src/mesa/math/m_debug_clip.c',
493        'src/src/mesa/math/m_debug_norm.c',
494        'src/src/mesa/math/m_debug_xform.c',
495        'src/src/mesa/math/m_eval.c',
496        'src/src/mesa/math/m_eval.h',
497        'src/src/mesa/math/m_matrix.c',
498        'src/src/mesa/math/m_matrix.h',
499        'src/src/mesa/math/m_translate.c',
500        'src/src/mesa/math/m_translate.h',
501        'src/src/mesa/math/m_vector.c',
502        'src/src/mesa/math/m_vector.h',
503        'src/src/mesa/math/m_xform.c',
504        'src/src/mesa/math/m_xform.h',
505        'src/src/mesa/program/arbprogparse.c',
506        'src/src/mesa/program/arbprogparse.h',
507        'src/src/mesa/program/hash_table.c',
508        'src/src/mesa/program/hash_table.h',
509        'src/src/mesa/program/ir_to_mesa.cpp',
510        'src/src/mesa/program/ir_to_mesa.h',
511        '<(generated_src_dir)/mesa/lex.yy.c',
512        'src/src/mesa/program/nvfragparse.c',
513        'src/src/mesa/program/nvfragparse.h',
514        'src/src/mesa/program/nvvertparse.c',
515        'src/src/mesa/program/nvvertparse.h',
516        'src/src/mesa/program/prog_cache.c',
517        'src/src/mesa/program/prog_cache.h',
518        'src/src/mesa/program/prog_execute.c',
519        'src/src/mesa/program/prog_execute.h',
520        'src/src/mesa/program/prog_instruction.c',
521        'src/src/mesa/program/prog_instruction.h',
522        'src/src/mesa/program/prog_noise.c',
523        'src/src/mesa/program/prog_noise.h',
524        'src/src/mesa/program/prog_opt_constant_fold.c',
525        'src/src/mesa/program/prog_optimize.c',
526        'src/src/mesa/program/prog_optimize.h',
527        'src/src/mesa/program/prog_parameter.c',
528        'src/src/mesa/program/prog_parameter.h',
529        'src/src/mesa/program/prog_parameter_layout.c',
530        'src/src/mesa/program/prog_parameter_layout.h',
531        'src/src/mesa/program/prog_print.c',
532        'src/src/mesa/program/prog_print.h',
533        'src/src/mesa/program/prog_statevars.c',
534        'src/src/mesa/program/prog_statevars.h',
535        'src/src/mesa/program/program.c',
536        'src/src/mesa/program/program.h',
537        '<(generated_src_dir)/mesa/program/program_parse.tab.c',
538        '<(generated_src_dir)/mesa/program/program_parse.tab.h',
539        'src/src/mesa/program/program_parse_extra.c',
540        'src/src/mesa/program/programopt.c',
541        'src/src/mesa/program/programopt.h',
542        'src/src/mesa/program/register_allocate.c',
543        'src/src/mesa/program/register_allocate.h',
544        'src/src/mesa/program/sampler.cpp',
545        'src/src/mesa/program/sampler.h',
546        'src/src/mesa/program/string_to_uint_map.cpp',
547        'src/src/mesa/program/symbol_table.c',
548        'src/src/mesa/program/symbol_table.h',
549        'src/src/mesa/swrast/s_aaline.c',
550        'src/src/mesa/swrast/s_aaline.h',
551        'src/src/mesa/swrast/s_aatriangle.c',
552        'src/src/mesa/swrast/s_aatriangle.h',
553        'src/src/mesa/swrast/s_alpha.c',
554        'src/src/mesa/swrast/s_alpha.h',
555        'src/src/mesa/swrast/s_atifragshader.c',
556        'src/src/mesa/swrast/s_atifragshader.h',
557        'src/src/mesa/swrast/s_bitmap.c',
558        'src/src/mesa/swrast/s_blend.c',
559        'src/src/mesa/swrast/s_blend.h',
560        'src/src/mesa/swrast/s_blit.c',
561        'src/src/mesa/swrast/s_clear.c',
562        'src/src/mesa/swrast/s_context.c',
563        'src/src/mesa/swrast/s_context.h',
564        'src/src/mesa/swrast/s_copypix.c',
565        'src/src/mesa/swrast/s_depth.c',
566        'src/src/mesa/swrast/s_depth.h',
567        'src/src/mesa/swrast/s_drawpix.c',
568        'src/src/mesa/swrast/s_feedback.c',
569        'src/src/mesa/swrast/s_feedback.h',
570        'src/src/mesa/swrast/s_fog.c',
571        'src/src/mesa/swrast/s_fog.h',
572        'src/src/mesa/swrast/s_fragprog.c',
573        'src/src/mesa/swrast/s_fragprog.h',
574        'src/src/mesa/swrast/s_lines.c',
575        'src/src/mesa/swrast/s_lines.h',
576        'src/src/mesa/swrast/s_logic.c',
577        'src/src/mesa/swrast/s_logic.h',
578        'src/src/mesa/swrast/s_masking.c',
579        'src/src/mesa/swrast/s_masking.h',
580        'src/src/mesa/swrast/s_points.c',
581        'src/src/mesa/swrast/s_points.h',
582        'src/src/mesa/swrast/s_renderbuffer.c',
583        'src/src/mesa/swrast/s_renderbuffer.h',
584        'src/src/mesa/swrast/s_span.c',
585        'src/src/mesa/swrast/s_span.h',
586        'src/src/mesa/swrast/s_stencil.c',
587        'src/src/mesa/swrast/s_stencil.h',
588        'src/src/mesa/swrast/s_texcombine.c',
589        'src/src/mesa/swrast/s_texcombine.h',
590        'src/src/mesa/swrast/s_texfetch.c',
591        'src/src/mesa/swrast/s_texfetch.h',
592        'src/src/mesa/swrast/s_texfilter.c',
593        'src/src/mesa/swrast/s_texfilter.h',
594        'src/src/mesa/swrast/s_texrender.c',
595        'src/src/mesa/swrast/s_texture.c',
596        'src/src/mesa/swrast/s_triangle.c',
597        'src/src/mesa/swrast/s_triangle.h',
598        'src/src/mesa/swrast/s_zoom.c',
599        'src/src/mesa/swrast/s_zoom.h',
600        'src/src/mesa/swrast_setup/ss_context.c',
601        'src/src/mesa/swrast_setup/ss_context.h',
602        'src/src/mesa/swrast_setup/ss_triangle.c',
603        'src/src/mesa/swrast_setup/ss_triangle.h',
604        'src/src/mesa/tnl/t_context.c',
605        'src/src/mesa/tnl/t_context.h',
606        'src/src/mesa/tnl/t_draw.c',
607        'src/src/mesa/tnl/t_pipeline.c',
608        'src/src/mesa/tnl/t_pipeline.h',
609        'src/src/mesa/tnl/t_rasterpos.c',
610        'src/src/mesa/tnl/t_vb_fog.c',
611        'src/src/mesa/tnl/t_vb_light.c',
612        'src/src/mesa/tnl/t_vb_normals.c',
613        'src/src/mesa/tnl/t_vb_points.c',
614        'src/src/mesa/tnl/t_vb_program.c',
615        'src/src/mesa/tnl/t_vb_render.c',
616        'src/src/mesa/tnl/t_vb_texgen.c',
617        'src/src/mesa/tnl/t_vb_texmat.c',
618        'src/src/mesa/tnl/t_vb_vertex.c',
619        'src/src/mesa/tnl/t_vertex.c',
620        'src/src/mesa/tnl/t_vertex.h',
621        'src/src/mesa/tnl/t_vertex_generic.c',
622        'src/src/mesa/tnl/t_vertex_sse.c',
623        'src/src/mesa/tnl/t_vp_build.c',
624        'src/src/mesa/tnl/t_vp_build.h',
625        'src/src/mesa/vbo/vbo_context.c',
626        'src/src/mesa/vbo/vbo_context.h',
627        'src/src/mesa/vbo/vbo_exec.c',
628        'src/src/mesa/vbo/vbo_exec.h',
629        'src/src/mesa/vbo/vbo_exec_api.c',
630        'src/src/mesa/vbo/vbo_exec_array.c',
631        'src/src/mesa/vbo/vbo_exec_draw.c',
632        'src/src/mesa/vbo/vbo_exec_eval.c',
633        'src/src/mesa/vbo/vbo_noop.c',
634        'src/src/mesa/vbo/vbo_noop.h',
635        'src/src/mesa/vbo/vbo_primitive_restart.c',
636        'src/src/mesa/vbo/vbo_rebase.c',
637        'src/src/mesa/vbo/vbo_save.c',
638        'src/src/mesa/vbo/vbo_save.h',
639        'src/src/mesa/vbo/vbo_save_api.c',
640        'src/src/mesa/vbo/vbo_save_draw.c',
641        'src/src/mesa/vbo/vbo_save_loopback.c',
642        'src/src/mesa/vbo/vbo_split.c',
643        'src/src/mesa/vbo/vbo_split.h',
644        'src/src/mesa/vbo/vbo_split_copy.c',
645        'src/src/mesa/vbo/vbo_split_inplace.c',
646        'src/src/mesa/x86-64/x86-64.c',
647        'src/src/mesa/x86-64/x86-64.h',
648      ],
649      'conditions': [
650        ['OS=="android" and clang==0', {
651          # Disable sincos() optimization to avoid a linker error
652          # since Android's math library doesn't have sincos().
653          # Either -fno-builtin-sin or -fno-builtin-cos works.
654          'cflags': [
655            '-fno-builtin-sin',
656          ],
657        }],
658        ['OS=="win"', {
659          'defines': [
660            # Because we're building as a static library
661            '_GLAPI_NO_EXPORTS',
662          ],
663        }],
664      ],
665    },
666    # Building this target will hide the native OpenGL shared library and
667    # replace it with a slow software renderer.
668    {
669      'target_name': 'osmesa',
670      'type': 'loadable_module',
671      'mac_bundle': 0,
672      'dependencies': [
673        'mesa_headers',
674        'mesa',
675      ],
676      'xcode_settings': {
677        'OTHER_LDFLAGS': [
678          '-lstdc++',
679        ],
680      },
681      'conditions': [
682        ['OS=="win"', {
683          'defines': [
684            'BUILD_GL32',
685            'KEYWORD1=GLAPI',
686            'KEYWORD2=GLAPIENTRY',
687          ],
688        }],
689      ],
690      'include_dirs': [
691        'src/src/mapi',
692        'src/src/mesa',
693        'src/src/mesa/drivers',
694        '<(generated_src_dir)/mesa',
695      ],
696      'msvs_disabled_warnings': [
697          4005, 4018, 4065, 4090, 4099, 4291, 4345, 4267,
698      ],
699      'sources': [
700        'src/src/mesa/drivers/common/driverfuncs.c',
701        'src/src/mesa/drivers/common/driverfuncs.h',
702        'src/src/mesa/drivers/common/meta.c',
703        'src/src/mesa/drivers/common/meta.h',
704        'src/src/mesa/drivers/osmesa/osmesa.c',
705        'src/src/mesa/drivers/osmesa/osmesa.def',
706      ],
707    },
708  ],
709  'conditions': [
710    ['OS=="android"', {
711      'targets': [
712        {
713          # Copies libosmesa.so to the out/$BUILDTYPE/lib/ directory so that
714          # the write_ordered_libraries.py script won't assume it to be a
715          # system library. This will cause the library to be stripped allowing
716          # targets to embed it in the to-be-generated APK.
717          'target_name': 'osmesa_in_lib_dir',
718          'type': 'none',
719          'dependencies': [
720            'osmesa',
721          ],
722          'actions': [
723            {
724              'action_name': 'copy_libosmesa',
725              'inputs': ['<(PRODUCT_DIR)/libosmesa.so'],
726              'outputs': ['<(SHARED_LIB_DIR)/libosmesa.so'],
727              'action': [
728                'cp',
729                '<(PRODUCT_DIR)/libosmesa.so',
730                '<(SHARED_LIB_DIR)/libosmesa.so',
731              ],
732            },
733          ],
734        },
735      ],
736    }],
737  ],
738}
739