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