Home | History | Annotate | Download | only in mesa
      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.
      4 
      5 {
      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   },
     66 
     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.
     77 
     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   ],
    636 }
    637