Roll harfbuzz-ng to 1.0.2
[chromium-blink-merge.git] / third_party / mesa / BUILD.gn
blob40d63af00671a14e62ffa4fbb86bf7e106880d2a
1 # Copyright 2014 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.
5 import("//build/config/ui.gni")
7 config("mesa_headers_config") {
8   include_dirs = [ "src/include" ]
9   if (use_x11) {
10     defines = [ "MESA_EGL_NO_X11_HEADERS" ]
11   }
14 # This directory contains checked-in files generated from the Mesa build.
15 generated_src_dir = "src/chromium_gensrc"
17 source_set("mesa_headers") {
18   public_configs = [ ":mesa_headers_config" ]
21 # This config must generally be prepended to the configs list so that the Mesa
22 # dirs appear before the system ones on Windows. This is necessary so that
23 # #include "GL/gl.h" means to include Mesa's, not the system's.
24 config("mesa_internal_config") {
25   cflags = []
26   defines = [
27     "MAPI_ABI_HEADER=\"glapi_mapi_tmp_shared.h\"",
28     "PACKAGE_NAME=\"Mesa\"",
29     "PACKAGE_TARNAME=\"mesa\"",
30     "PACKAGE_VERSION=\"9.0.3\"",
31     "PACKAGE_STRING=\"Mesa\ 9.0.3\"",
32     "PACKAGE_BUGREPORT=\"https://bugs.freedesktop.org/enter_bug.cgi\?product=Mesa\"",
33     "PACKAGE_URL=\"\"",
34     "PACKAGE=\"mesa\"",
35     "VERSION=\"9.0.3\"",
36     "STDC_HEADERS=1",
37     "HAVE_SYS_TYPES_H=1",
38     "HAVE_SYS_STAT_H=1",
39     "HAVE_STDLIB_H=1",
40     "HAVE_STRING_H=1",
41     "HAVE_MEMORY_H=1",
42     "HAVE_STRINGS_H=1",
43     "HAVE_INTTYPES_H=1",
44     "HAVE_STDINT_H=1",
45     "HAVE_DLFCN_H=1",
46     "LT_OBJDIR=\".libs/\"",
47     "YYTEXT_POINTER=1",
48     "HAVE_LIBEXPAT=1",
49     "HAVE_LIBXCB_DRI2=1",
50     "FEATURE_GL=1",
51     "MAPI_MODE_GLAPI",
53     #"USE_X86_64_ASM",
54     "IN_DRI_DRIVER",
55     "USE_XCB",
56     "GLX_INDIRECT_RENDERING",
57     "GLX_DIRECT_RENDERING",
58     "USE_EXTERNAL_DXTN_LIB=1",
59     "IN_DRI_DRIVER",
60     "HAVE_ALIAS",
61     "HAVE_MINCORE",
62     "HAVE_LIBUDEV",
63     "_GLAPI_NO_EXPORTS",
64   ]
65   include_dirs = [
66     "src/src/gallium/auxiliary",
67     "src/src/gallium/include",
68     "src/src/glsl",
69     "src/src/glsl/glcpp",
70     "src/src/mapi",
71     "src/src/mapi/glapi",
72     "src/src/mesa",
73     "src/src/mesa/main",
74     "src/include",
75     "$generated_src_dir/mesa/",
76     "$generated_src_dir/mesa/main",
77     "$generated_src_dir/mesa/program",
78     "$generated_src_dir/mesa/glapi",
79   ]
81   if (is_android) {
82     defines += [
83       "__GLIBC__",
84       "_GNU_SOURCE",
85     ]
86   }
88   if (is_linux) {
89     defines += [ "_GNU_SOURCE" ]
90   }
92   if (is_win) {
93     defines += [
94       # Generated files use const only if __cplusplus or __STDC__ is defined.
95       # On Windows, neither is defined, so define YY_USE_CONST to explicitly
96       # enable const.
97       "YY_USE_CONST",
98     ]
99   }
101   if (is_posix) {
102     defines += [
103       "HAVE_DLOPEN",
104       "HAVE_PTHREAD=1",
105       "HAVE_UNISTD_H=1",
106     ]
108     if (!is_android) {
109       defines += [ "HAVE_POSIX_MEMALIGN" ]
110     }
112     if (!is_android && !is_mac) {
113       cflags += [ "-fPIC" ]
114     }
115   }
118 # mesa_internal_config is prepended to the config lists.  Flags that
119 # disable warnings need to be appended instead so that they show up
120 # after flags like -Wall. (gn orders flags on a target before flags from
121 # configs.)
122 config("mesa_internal_warnings") {
123   cflags = []
124   if (is_clang) {
125     cflags += [
126       "-Wno-tautological-constant-out-of-range-compare",
127       "-Wno-mismatched-tags",  # Fixed upstream.
129       # mesa's STATIC_ASSERT() macro expands to an ununused typedef.
130       "-Wno-unused-local-typedef",
131     ]
132   }
133   if (is_win) {
134     # TODO(scottmg): http://crbug.com/143877 These should be removed if
135     # Mesa is ever rolled and the warnings are fixed.
136     cflags += [
137       "/wd4005",  # Macro defined twice.
138       "/wd4018",  # Signed/unsigned mismatch in comparison.
139       "/wd4065",  # Switch statement contains 'default' but no 'case' labels.
140       "/wd4090",  # 'Operation' : different 'modifier' qualifiers
141       "/wd4099",  # Type name struct-vs-class doesn't match.
142       "/wd4273",  # Inconsistent DLL linkage.
143       "/wd4291",  # No matching operator delete found for placement new.
144       "/wd4305",  # Truncation from int to float.
145       "/wd4334",  # Result of 32-bit shift implicitly converted to 64 bits.
146       "/wd4345",  # POD-type default initializers.
147     ]
148   }
151 static_library("mesa_libglslcommon") {
152   sources = [
153     "$generated_src_dir/mesa/glcpp-lex.c",
154     "$generated_src_dir/mesa/glcpp-parse.c",
155     "$generated_src_dir/mesa/glcpp-parse.h",
156     "$generated_src_dir/mesa/glsl_lexer.cc",
157     "$generated_src_dir/mesa/glsl_parser.cc",
158     "$generated_src_dir/mesa/main/dispatch.h",
159     "src/src/glsl/ast_expr.cpp",
160     "src/src/glsl/ast_function.cpp",
161     "src/src/glsl/ast_to_hir.cpp",
162     "src/src/glsl/ast_type.cpp",
163     "src/src/glsl/builtin_variables.cpp",
164     "src/src/glsl/glcpp/glcpp.h",
165     "src/src/glsl/glcpp/pp.c",
166     "src/src/glsl/glsl_parser_extras.cpp",
167     "src/src/glsl/glsl_parser_extras.h",
168     "src/src/glsl/glsl_symbol_table.cpp",
169     "src/src/glsl/glsl_symbol_table.h",
170     "src/src/glsl/glsl_types.cpp",
171     "src/src/glsl/glsl_types.h",
172     "src/src/glsl/hir_field_selection.cpp",
173     "src/src/glsl/ir.cpp",
174     "src/src/glsl/ir.h",
175     "src/src/glsl/ir_basic_block.cpp",
176     "src/src/glsl/ir_basic_block.h",
177     "src/src/glsl/ir_builder.cpp",
178     "src/src/glsl/ir_builder.h",
179     "src/src/glsl/ir_clone.cpp",
180     "src/src/glsl/ir_constant_expression.cpp",
181     "src/src/glsl/ir_expression_flattening.cpp",
182     "src/src/glsl/ir_expression_flattening.h",
183     "src/src/glsl/ir_function.cpp",
184     "src/src/glsl/ir_function_can_inline.cpp",
185     "src/src/glsl/ir_function_detect_recursion.cpp",
186     "src/src/glsl/ir_hierarchical_visitor.cpp",
187     "src/src/glsl/ir_hierarchical_visitor.h",
188     "src/src/glsl/ir_hv_accept.cpp",
189     "src/src/glsl/ir_import_prototypes.cpp",
190     "src/src/glsl/ir_print_visitor.cpp",
191     "src/src/glsl/ir_print_visitor.h",
192     "src/src/glsl/ir_reader.cpp",
193     "src/src/glsl/ir_reader.h",
194     "src/src/glsl/ir_rvalue_visitor.cpp",
195     "src/src/glsl/ir_rvalue_visitor.h",
196     "src/src/glsl/ir_set_program_inouts.cpp",
197     "src/src/glsl/ir_validate.cpp",
198     "src/src/glsl/ir_variable_refcount.cpp",
199     "src/src/glsl/ir_variable_refcount.h",
200     "src/src/glsl/link_functions.cpp",
201     "src/src/glsl/link_uniform_initializers.cpp",
202     "src/src/glsl/link_uniforms.cpp",
203     "src/src/glsl/linker.cpp",
204     "src/src/glsl/linker.h",
205     "src/src/glsl/loop_analysis.cpp",
206     "src/src/glsl/loop_analysis.h",
207     "src/src/glsl/loop_controls.cpp",
208     "src/src/glsl/loop_unroll.cpp",
209     "src/src/glsl/lower_clip_distance.cpp",
210     "src/src/glsl/lower_discard.cpp",
211     "src/src/glsl/lower_discard_flow.cpp",
212     "src/src/glsl/lower_if_to_cond_assign.cpp",
213     "src/src/glsl/lower_instructions.cpp",
214     "src/src/glsl/lower_jumps.cpp",
215     "src/src/glsl/lower_mat_op_to_vec.cpp",
216     "src/src/glsl/lower_noise.cpp",
217     "src/src/glsl/lower_output_reads.cpp",
218     "src/src/glsl/lower_texture_projection.cpp",
219     "src/src/glsl/lower_ubo_reference.cpp",
220     "src/src/glsl/lower_variable_index_to_cond_assign.cpp",
221     "src/src/glsl/lower_vec_index_to_cond_assign.cpp",
222     "src/src/glsl/lower_vec_index_to_swizzle.cpp",
223     "src/src/glsl/lower_vector.cpp",
224     "src/src/glsl/opt_algebraic.cpp",
225     "src/src/glsl/opt_array_splitting.cpp",
226     "src/src/glsl/opt_constant_folding.cpp",
227     "src/src/glsl/opt_constant_propagation.cpp",
228     "src/src/glsl/opt_constant_variable.cpp",
229     "src/src/glsl/opt_copy_propagation.cpp",
230     "src/src/glsl/opt_copy_propagation_elements.cpp",
231     "src/src/glsl/opt_dead_code.cpp",
232     "src/src/glsl/opt_dead_code_local.cpp",
233     "src/src/glsl/opt_dead_functions.cpp",
234     "src/src/glsl/opt_function_inlining.cpp",
235     "src/src/glsl/opt_if_simplification.cpp",
236     "src/src/glsl/opt_noop_swizzle.cpp",
237     "src/src/glsl/opt_redundant_jumps.cpp",
238     "src/src/glsl/opt_structure_splitting.cpp",
239     "src/src/glsl/opt_swizzle_swizzle.cpp",
240     "src/src/glsl/opt_tree_grafting.cpp",
241     "src/src/glsl/program.h",
242     "src/src/glsl/ralloc.c",
243     "src/src/glsl/ralloc.h",
244     "src/src/glsl/s_expression.cpp",
245     "src/src/glsl/s_expression.h",
247     # Skipped in the GN build. This file duplicates symbols from errors.c and
248     # happens to link in GYP due to static library link ordering.
249     #"src/src/glsl/standalone_scaffolding.cpp",
250     #"src/src/glsl/standalone_scaffolding.h",
251     "src/src/glsl/strtod.c",
252     "src/src/glsl/strtod.h",
253   ]
255   config("mesa_libglslcommon_warnings") {
256     if (is_clang) {
257       cflags = [
258         # https://bugs.freedesktop.org/show_bug.cgi?id=91645:
259         "-Wno-overloaded-virtual",
260       ]
261     }
262   }
264   configs -= [ "//build/config/compiler:chromium_code" ]
265   configs += [ "//build/config/compiler:no_chromium_code" ]
266   previous_configs = configs
267   configs = []
268   configs = [ ":mesa_internal_config" ] + previous_configs + [
269               ":mesa_internal_warnings",
270               ":mesa_libglslcommon_warnings",
271             ]
273   if (is_clang) {
274     # Mesa triggers some of these Clang warnings.
275     configs -= [ "//build/config/clang:extra_warnings" ]
276   }
278   deps = [
279     ":mesa_headers",
280   ]
283 static_library("mesa") {
284   sources = [
285     "$generated_src_dir/mesa/builtin_function.cpp",
286     "$generated_src_dir/mesa/enums.c",
287     "$generated_src_dir/mesa/glapi_mapi_tmp_shared.h",
288     "$generated_src_dir/mesa/lex.yy.c",
289     "$generated_src_dir/mesa/program/program_parse.tab.c",
290     "$generated_src_dir/mesa/program/program_parse.tab.h",
291     "src/src/mapi/mapi/entry.c",
292     "src/src/mapi/mapi/entry.h",
293     "src/src/mapi/mapi/mapi_glapi.c",
294     "src/src/mapi/mapi/stub.c",
295     "src/src/mapi/mapi/stub.h",
296     "src/src/mapi/mapi/table.c",
297     "src/src/mapi/mapi/table.h",
298     "src/src/mapi/mapi/u_current.c",
299     "src/src/mapi/mapi/u_current.h",
300     "src/src/mapi/mapi/u_execmem.c",
301     "src/src/mapi/mapi/u_execmem.h",
302     "src/src/mesa/main/accum.c",
303     "src/src/mesa/main/accum.h",
304     "src/src/mesa/main/api_arrayelt.c",
305     "src/src/mesa/main/api_arrayelt.h",
306     "src/src/mesa/main/api_exec.c",
307     "src/src/mesa/main/api_exec.h",
308     "src/src/mesa/main/api_loopback.c",
309     "src/src/mesa/main/api_loopback.h",
310     "src/src/mesa/main/api_validate.c",
311     "src/src/mesa/main/api_validate.h",
312     "src/src/mesa/main/arbprogram.c",
313     "src/src/mesa/main/arbprogram.h",
314     "src/src/mesa/main/arrayobj.c",
315     "src/src/mesa/main/arrayobj.h",
316     "src/src/mesa/main/atifragshader.c",
317     "src/src/mesa/main/atifragshader.h",
318     "src/src/mesa/main/attrib.c",
319     "src/src/mesa/main/attrib.h",
320     "src/src/mesa/main/blend.c",
321     "src/src/mesa/main/blend.h",
322     "src/src/mesa/main/bufferobj.c",
323     "src/src/mesa/main/bufferobj.h",
324     "src/src/mesa/main/buffers.c",
325     "src/src/mesa/main/buffers.h",
326     "src/src/mesa/main/clear.c",
327     "src/src/mesa/main/clear.h",
328     "src/src/mesa/main/clip.c",
329     "src/src/mesa/main/clip.h",
330     "src/src/mesa/main/colortab.c",
331     "src/src/mesa/main/colortab.h",
332     "src/src/mesa/main/condrender.c",
333     "src/src/mesa/main/condrender.h",
334     "src/src/mesa/main/context.c",
335     "src/src/mesa/main/context.h",
336     "src/src/mesa/main/convolve.c",
337     "src/src/mesa/main/convolve.h",
338     "src/src/mesa/main/cpuinfo.c",
339     "src/src/mesa/main/cpuinfo.h",
340     "src/src/mesa/main/debug.c",
341     "src/src/mesa/main/debug.h",
342     "src/src/mesa/main/depth.c",
343     "src/src/mesa/main/depth.h",
344     "src/src/mesa/main/dlist.c",
345     "src/src/mesa/main/dlist.h",
346     "src/src/mesa/main/drawpix.c",
347     "src/src/mesa/main/drawpix.h",
348     "src/src/mesa/main/drawtex.c",
349     "src/src/mesa/main/drawtex.h",
350     "src/src/mesa/main/enable.c",
351     "src/src/mesa/main/enable.h",
352     "src/src/mesa/main/enums.h",
353     "src/src/mesa/main/errors.c",
354     "src/src/mesa/main/errors.h",
355     "src/src/mesa/main/eval.c",
356     "src/src/mesa/main/eval.h",
357     "src/src/mesa/main/execmem.c",
358     "src/src/mesa/main/extensions.c",
359     "src/src/mesa/main/extensions.h",
360     "src/src/mesa/main/fbobject.c",
361     "src/src/mesa/main/fbobject.h",
362     "src/src/mesa/main/feedback.c",
363     "src/src/mesa/main/feedback.h",
364     "src/src/mesa/main/ff_fragment_shader.cpp",
365     "src/src/mesa/main/ffvertex_prog.c",
366     "src/src/mesa/main/ffvertex_prog.h",
367     "src/src/mesa/main/fog.c",
368     "src/src/mesa/main/fog.h",
369     "src/src/mesa/main/format_pack.c",
370     "src/src/mesa/main/format_pack.h",
371     "src/src/mesa/main/format_unpack.c",
372     "src/src/mesa/main/format_unpack.h",
373     "src/src/mesa/main/formats.c",
374     "src/src/mesa/main/formats.h",
375     "src/src/mesa/main/framebuffer.c",
376     "src/src/mesa/main/framebuffer.h",
377     "src/src/mesa/main/get.c",
378     "src/src/mesa/main/get.h",
379     "src/src/mesa/main/getstring.c",
380     "src/src/mesa/main/glformats.c",
381     "src/src/mesa/main/glformats.h",
382     "src/src/mesa/main/hash.c",
383     "src/src/mesa/main/hash.h",
384     "src/src/mesa/main/hint.c",
385     "src/src/mesa/main/hint.h",
386     "src/src/mesa/main/histogram.c",
387     "src/src/mesa/main/histogram.h",
388     "src/src/mesa/main/image.c",
389     "src/src/mesa/main/image.h",
390     "src/src/mesa/main/imports.c",
391     "src/src/mesa/main/imports.h",
392     "src/src/mesa/main/light.c",
393     "src/src/mesa/main/light.h",
394     "src/src/mesa/main/lines.c",
395     "src/src/mesa/main/lines.h",
396     "src/src/mesa/main/matrix.c",
397     "src/src/mesa/main/matrix.h",
398     "src/src/mesa/main/mipmap.c",
399     "src/src/mesa/main/mipmap.h",
400     "src/src/mesa/main/mm.c",
401     "src/src/mesa/main/mm.h",
402     "src/src/mesa/main/multisample.c",
403     "src/src/mesa/main/multisample.h",
404     "src/src/mesa/main/nvprogram.c",
405     "src/src/mesa/main/nvprogram.h",
406     "src/src/mesa/main/pack.c",
407     "src/src/mesa/main/pack.h",
408     "src/src/mesa/main/pbo.c",
409     "src/src/mesa/main/pbo.h",
410     "src/src/mesa/main/pixel.c",
411     "src/src/mesa/main/pixel.h",
412     "src/src/mesa/main/pixelstore.c",
413     "src/src/mesa/main/pixelstore.h",
414     "src/src/mesa/main/pixeltransfer.c",
415     "src/src/mesa/main/pixeltransfer.h",
416     "src/src/mesa/main/points.c",
417     "src/src/mesa/main/points.h",
418     "src/src/mesa/main/polygon.c",
419     "src/src/mesa/main/polygon.h",
420     "src/src/mesa/main/queryobj.c",
421     "src/src/mesa/main/queryobj.h",
422     "src/src/mesa/main/rastpos.c",
423     "src/src/mesa/main/rastpos.h",
424     "src/src/mesa/main/readpix.c",
425     "src/src/mesa/main/readpix.h",
426     "src/src/mesa/main/remap.c",
427     "src/src/mesa/main/remap.h",
428     "src/src/mesa/main/renderbuffer.c",
429     "src/src/mesa/main/renderbuffer.h",
430     "src/src/mesa/main/samplerobj.c",
431     "src/src/mesa/main/samplerobj.h",
432     "src/src/mesa/main/scissor.c",
433     "src/src/mesa/main/scissor.h",
434     "src/src/mesa/main/shader_query.cpp",
435     "src/src/mesa/main/shaderapi.c",
436     "src/src/mesa/main/shaderapi.h",
437     "src/src/mesa/main/shaderobj.c",
438     "src/src/mesa/main/shaderobj.h",
439     "src/src/mesa/main/shared.c",
440     "src/src/mesa/main/shared.h",
441     "src/src/mesa/main/state.c",
442     "src/src/mesa/main/state.h",
443     "src/src/mesa/main/stencil.c",
444     "src/src/mesa/main/stencil.h",
445     "src/src/mesa/main/syncobj.c",
446     "src/src/mesa/main/syncobj.h",
447     "src/src/mesa/main/texcompress.c",
448     "src/src/mesa/main/texcompress.h",
449     "src/src/mesa/main/texcompress_cpal.c",
450     "src/src/mesa/main/texcompress_cpal.h",
451     "src/src/mesa/main/texcompress_etc.c",
452     "src/src/mesa/main/texcompress_etc.h",
453     "src/src/mesa/main/texcompress_fxt1.c",
454     "src/src/mesa/main/texcompress_fxt1.h",
455     "src/src/mesa/main/texcompress_rgtc.c",
456     "src/src/mesa/main/texcompress_rgtc.h",
457     "src/src/mesa/main/texcompress_s3tc.c",
458     "src/src/mesa/main/texcompress_s3tc.h",
459     "src/src/mesa/main/texenv.c",
460     "src/src/mesa/main/texenv.h",
461     "src/src/mesa/main/texformat.c",
462     "src/src/mesa/main/texformat.h",
463     "src/src/mesa/main/texgen.c",
464     "src/src/mesa/main/texgen.h",
465     "src/src/mesa/main/texgetimage.c",
466     "src/src/mesa/main/texgetimage.h",
467     "src/src/mesa/main/teximage.c",
468     "src/src/mesa/main/teximage.h",
469     "src/src/mesa/main/texobj.c",
470     "src/src/mesa/main/texobj.h",
471     "src/src/mesa/main/texparam.c",
472     "src/src/mesa/main/texparam.h",
473     "src/src/mesa/main/texstate.c",
474     "src/src/mesa/main/texstate.h",
475     "src/src/mesa/main/texstorage.c",
476     "src/src/mesa/main/texstorage.h",
477     "src/src/mesa/main/texstore.c",
478     "src/src/mesa/main/texstore.h",
479     "src/src/mesa/main/texturebarrier.c",
480     "src/src/mesa/main/texturebarrier.h",
481     "src/src/mesa/main/transformfeedback.c",
482     "src/src/mesa/main/transformfeedback.h",
483     "src/src/mesa/main/uniform_query.cpp",
484     "src/src/mesa/main/uniforms.c",
485     "src/src/mesa/main/uniforms.h",
486     "src/src/mesa/main/varray.c",
487     "src/src/mesa/main/varray.h",
488     "src/src/mesa/main/version.c",
489     "src/src/mesa/main/version.h",
490     "src/src/mesa/main/viewport.c",
491     "src/src/mesa/main/viewport.h",
492     "src/src/mesa/main/vtxfmt.c",
493     "src/src/mesa/main/vtxfmt.h",
494     "src/src/mesa/math/m_debug_clip.c",
495     "src/src/mesa/math/m_debug_norm.c",
496     "src/src/mesa/math/m_debug_xform.c",
497     "src/src/mesa/math/m_eval.c",
498     "src/src/mesa/math/m_eval.h",
499     "src/src/mesa/math/m_matrix.c",
500     "src/src/mesa/math/m_matrix.h",
501     "src/src/mesa/math/m_translate.c",
502     "src/src/mesa/math/m_translate.h",
503     "src/src/mesa/math/m_vector.c",
504     "src/src/mesa/math/m_vector.h",
505     "src/src/mesa/math/m_xform.c",
506     "src/src/mesa/math/m_xform.h",
507     "src/src/mesa/program/arbprogparse.c",
508     "src/src/mesa/program/arbprogparse.h",
509     "src/src/mesa/program/hash_table.c",
510     "src/src/mesa/program/hash_table.h",
511     "src/src/mesa/program/ir_to_mesa.cpp",
512     "src/src/mesa/program/ir_to_mesa.h",
513     "src/src/mesa/program/nvfragparse.c",
514     "src/src/mesa/program/nvfragparse.h",
515     "src/src/mesa/program/nvvertparse.c",
516     "src/src/mesa/program/nvvertparse.h",
517     "src/src/mesa/program/prog_cache.c",
518     "src/src/mesa/program/prog_cache.h",
519     "src/src/mesa/program/prog_execute.c",
520     "src/src/mesa/program/prog_execute.h",
521     "src/src/mesa/program/prog_instruction.c",
522     "src/src/mesa/program/prog_instruction.h",
523     "src/src/mesa/program/prog_noise.c",
524     "src/src/mesa/program/prog_noise.h",
525     "src/src/mesa/program/prog_opt_constant_fold.c",
526     "src/src/mesa/program/prog_optimize.c",
527     "src/src/mesa/program/prog_optimize.h",
528     "src/src/mesa/program/prog_parameter.c",
529     "src/src/mesa/program/prog_parameter.h",
530     "src/src/mesa/program/prog_parameter_layout.c",
531     "src/src/mesa/program/prog_parameter_layout.h",
532     "src/src/mesa/program/prog_print.c",
533     "src/src/mesa/program/prog_print.h",
534     "src/src/mesa/program/prog_statevars.c",
535     "src/src/mesa/program/prog_statevars.h",
536     "src/src/mesa/program/program.c",
537     "src/src/mesa/program/program.h",
538     "src/src/mesa/program/program_parse_extra.c",
539     "src/src/mesa/program/programopt.c",
540     "src/src/mesa/program/programopt.h",
541     "src/src/mesa/program/register_allocate.c",
542     "src/src/mesa/program/register_allocate.h",
543     "src/src/mesa/program/sampler.cpp",
544     "src/src/mesa/program/sampler.h",
545     "src/src/mesa/program/string_to_uint_map.cpp",
546     "src/src/mesa/program/symbol_table.c",
547     "src/src/mesa/program/symbol_table.h",
548     "src/src/mesa/swrast/s_aaline.c",
549     "src/src/mesa/swrast/s_aaline.h",
550     "src/src/mesa/swrast/s_aatriangle.c",
551     "src/src/mesa/swrast/s_aatriangle.h",
552     "src/src/mesa/swrast/s_alpha.c",
553     "src/src/mesa/swrast/s_alpha.h",
554     "src/src/mesa/swrast/s_atifragshader.c",
555     "src/src/mesa/swrast/s_atifragshader.h",
556     "src/src/mesa/swrast/s_bitmap.c",
557     "src/src/mesa/swrast/s_blend.c",
558     "src/src/mesa/swrast/s_blend.h",
559     "src/src/mesa/swrast/s_blit.c",
560     "src/src/mesa/swrast/s_clear.c",
561     "src/src/mesa/swrast/s_context.c",
562     "src/src/mesa/swrast/s_context.h",
563     "src/src/mesa/swrast/s_copypix.c",
564     "src/src/mesa/swrast/s_depth.c",
565     "src/src/mesa/swrast/s_depth.h",
566     "src/src/mesa/swrast/s_drawpix.c",
567     "src/src/mesa/swrast/s_feedback.c",
568     "src/src/mesa/swrast/s_feedback.h",
569     "src/src/mesa/swrast/s_fog.c",
570     "src/src/mesa/swrast/s_fog.h",
571     "src/src/mesa/swrast/s_fragprog.c",
572     "src/src/mesa/swrast/s_fragprog.h",
573     "src/src/mesa/swrast/s_lines.c",
574     "src/src/mesa/swrast/s_lines.h",
575     "src/src/mesa/swrast/s_logic.c",
576     "src/src/mesa/swrast/s_logic.h",
577     "src/src/mesa/swrast/s_masking.c",
578     "src/src/mesa/swrast/s_masking.h",
579     "src/src/mesa/swrast/s_points.c",
580     "src/src/mesa/swrast/s_points.h",
581     "src/src/mesa/swrast/s_renderbuffer.c",
582     "src/src/mesa/swrast/s_renderbuffer.h",
583     "src/src/mesa/swrast/s_span.c",
584     "src/src/mesa/swrast/s_span.h",
585     "src/src/mesa/swrast/s_stencil.c",
586     "src/src/mesa/swrast/s_stencil.h",
587     "src/src/mesa/swrast/s_texcombine.c",
588     "src/src/mesa/swrast/s_texcombine.h",
589     "src/src/mesa/swrast/s_texfetch.c",
590     "src/src/mesa/swrast/s_texfetch.h",
591     "src/src/mesa/swrast/s_texfilter.c",
592     "src/src/mesa/swrast/s_texfilter.h",
593     "src/src/mesa/swrast/s_texrender.c",
594     "src/src/mesa/swrast/s_texture.c",
595     "src/src/mesa/swrast/s_triangle.c",
596     "src/src/mesa/swrast/s_triangle.h",
597     "src/src/mesa/swrast/s_zoom.c",
598     "src/src/mesa/swrast/s_zoom.h",
599     "src/src/mesa/swrast_setup/ss_context.c",
600     "src/src/mesa/swrast_setup/ss_context.h",
601     "src/src/mesa/swrast_setup/ss_triangle.c",
602     "src/src/mesa/swrast_setup/ss_triangle.h",
603     "src/src/mesa/tnl/t_context.c",
604     "src/src/mesa/tnl/t_context.h",
605     "src/src/mesa/tnl/t_draw.c",
606     "src/src/mesa/tnl/t_pipeline.c",
607     "src/src/mesa/tnl/t_pipeline.h",
608     "src/src/mesa/tnl/t_rasterpos.c",
609     "src/src/mesa/tnl/t_vb_fog.c",
610     "src/src/mesa/tnl/t_vb_light.c",
611     "src/src/mesa/tnl/t_vb_normals.c",
612     "src/src/mesa/tnl/t_vb_points.c",
613     "src/src/mesa/tnl/t_vb_program.c",
614     "src/src/mesa/tnl/t_vb_render.c",
615     "src/src/mesa/tnl/t_vb_texgen.c",
616     "src/src/mesa/tnl/t_vb_texmat.c",
617     "src/src/mesa/tnl/t_vb_vertex.c",
618     "src/src/mesa/tnl/t_vertex.c",
619     "src/src/mesa/tnl/t_vertex.h",
620     "src/src/mesa/tnl/t_vertex_generic.c",
621     "src/src/mesa/tnl/t_vertex_sse.c",
622     "src/src/mesa/tnl/t_vp_build.c",
623     "src/src/mesa/tnl/t_vp_build.h",
624     "src/src/mesa/vbo/vbo_context.c",
625     "src/src/mesa/vbo/vbo_context.h",
626     "src/src/mesa/vbo/vbo_exec.c",
627     "src/src/mesa/vbo/vbo_exec.h",
628     "src/src/mesa/vbo/vbo_exec_api.c",
629     "src/src/mesa/vbo/vbo_exec_array.c",
630     "src/src/mesa/vbo/vbo_exec_draw.c",
631     "src/src/mesa/vbo/vbo_exec_eval.c",
632     "src/src/mesa/vbo/vbo_noop.c",
633     "src/src/mesa/vbo/vbo_noop.h",
634     "src/src/mesa/vbo/vbo_primitive_restart.c",
635     "src/src/mesa/vbo/vbo_rebase.c",
636     "src/src/mesa/vbo/vbo_save.c",
637     "src/src/mesa/vbo/vbo_save.h",
638     "src/src/mesa/vbo/vbo_save_api.c",
639     "src/src/mesa/vbo/vbo_save_draw.c",
640     "src/src/mesa/vbo/vbo_save_loopback.c",
641     "src/src/mesa/vbo/vbo_split.c",
642     "src/src/mesa/vbo/vbo_split.h",
643     "src/src/mesa/vbo/vbo_split_copy.c",
644     "src/src/mesa/vbo/vbo_split_inplace.c",
645     "src/src/mesa/x86-64/x86-64.c",
646     "src/src/mesa/x86-64/x86-64.h",
647   ]
649   configs -= [ "//build/config/compiler:chromium_code" ]
650   configs += [ "//build/config/compiler:no_chromium_code" ]
651   previous_configs = configs
652   configs = []
653   configs = [ ":mesa_internal_config" ] + previous_configs +
654             [ ":mesa_internal_warnings" ]
656   if (is_clang) {
657     # Mesa triggers some of these Clang warnings.
658     configs -= [ "//build/config/clang:extra_warnings" ]
659   }
661   cflags = []
663   if (is_android && !is_clang) {
664     # Disable sincos() optimization to avoid a linker error
665     # since Android's math library doesn't have sincos().
666     # Either -fno-builtin-sin or -fno-builtin-cos works.
667     cflags += [ "-fno-builtin-sin" ]
668   }
670   if (is_win) {
671     defines = [
672       # Because we're building as a static library
673       "_GLAPI_NO_EXPORTS",
674     ]
675   }
677   deps = [
678     ":mesa_headers",
679   ]
682 if (!is_android) {  # TODO(GYP) enable for Android.
683   # Building this target will hide the native OpenGL shared library and
684   # replace it with a slow software renderer.
685   #
686   # Note: on x64 Windows this target gives warnings to the effect of:
687   #   osmesa.osmesa.obj : warning LNK4197: export 'OSMesaGetIntegerv' specified
688   #   multiple times; using first specification
689   # This also happens with the GYP build.
690   shared_library("osmesa") {
691     sources = [
692       "src/src/mesa/drivers/common/driverfuncs.c",
693       "src/src/mesa/drivers/common/driverfuncs.h",
694       "src/src/mesa/drivers/common/meta.c",
695       "src/src/mesa/drivers/common/meta.h",
696       "src/src/mesa/drivers/osmesa/osmesa.c",
697     ]
699     configs -= [ "//build/config/compiler:chromium_code" ]
700     configs += [
701       ":mesa_headers_config",
702       "//build/config/compiler:no_chromium_code",
703     ]
704     previous_configs = configs
705     configs = []
706     configs = [ ":mesa_internal_config" ] + previous_configs +
707               [ ":mesa_internal_warnings" ]
709     include_dirs = [ "src/src/mesa/drivers" ]
711     if (is_clang) {
712       # Mesa triggers some of these Clang warnings.
713       configs -= [ "//build/config/clang:extra_warnings" ]
714     }
716     if (is_win) {
717       ldflags =
718           [ "/DEF:" + rebase_path("src/src/mesa/drivers/osmesa/osmesa.def",
719                                   root_build_dir) ]
720     }
722     deps = [
723       ":mesa_headers",
724       ":mesa",
725       ":mesa_libglslcommon",
726     ]
728     if (is_win) {
729       defines = [
730         "BUILD_GL32",
731         "KEYWORD1=GLAPI",
732         "KEYWORD2=GLAPIENTRY",
733       ]
734     }
735   }
736 } else {
737   #  Placeholder to allow targets to unconditionally depend on this.
738   group("osmesa") {
739   }
740 }  # !is_android
741 # TODO(GYP) Android osmesa_in_lib_dir target.