1# Copyright © 2017 Intel Corporation 2# SPDX-License-Identifier: MIT 3 4glapi_gen_gl_xml = files('../registry/gl.xml') 5glapi_gen_mapi_deps = [ 6 glapi_gen_gl_xml, 7 genCommon_py, 8] 9 10gl_and_es_api_files = files('gl_and_es_API.xml') 11 12api_xml_files = files( 13 'gl_API.xml', 14 'es_EXT.xml', 15 'gl_and_es_API.xml', 16 'gl_and_glX_API.xml', 17 'ARB_base_instance.xml', 18 'ARB_blend_func_extended.xml', 19 'ARB_bindless_texture.xml', 20 'ARB_clear_buffer_object.xml', 21 'ARB_clear_texture.xml', 22 'ARB_clip_control.xml', 23 'ARB_color_buffer_float.xml', 24 'ARB_compressed_texture_pixel_storage.xml', 25 'ARB_compute_shader.xml', 26 'ARB_compute_variable_group_size.xml', 27 'ARB_copy_buffer.xml', 28 'ARB_copy_image.xml', 29 'ARB_debug_output.xml', 30 'ARB_depth_buffer_float.xml', 31 'ARB_depth_clamp.xml', 32 'ARB_direct_state_access.xml', 33 'ARB_draw_buffers.xml', 34 'ARB_draw_buffers_blend.xml', 35 'ARB_draw_elements_base_vertex.xml', 36 'ARB_draw_indirect.xml', 37 'ARB_draw_instanced.xml', 38 'ARB_ES2_compatibility.xml', 39 'ARB_ES3_compatibility.xml', 40 'ARB_framebuffer_no_attachments.xml', 41 'ARB_framebuffer_object.xml', 42 'ARB_get_program_binary.xml', 43 'ARB_get_texture_sub_image.xml', 44 'ARB_gl_spirv.xml', 45 'ARB_gpu_shader_fp64.xml', 46 'ARB_gpu_shader_int64.xml', 47 'ARB_gpu_shader5.xml', 48 'ARB_indirect_parameters.xml', 49 'ARB_instanced_arrays.xml', 50 'ARB_internalformat_query.xml', 51 'ARB_internalformat_query2.xml', 52 'ARB_invalidate_subdata.xml', 53 'ARB_map_buffer_range.xml', 54 'ARB_multi_bind.xml', 55 'ARB_pipeline_statistics_query.xml', 56 'ARB_program_interface_query.xml', 57 'ARB_robustness.xml', 58 'ARB_sample_shading.xml', 59 'ARB_sampler_objects.xml', 60 'ARB_seamless_cube_map.xml', 61 'ARB_separate_shader_objects.xml', 62 'ARB_shader_atomic_counters.xml', 63 'ARB_shader_image_load_store.xml', 64 'ARB_shader_subroutine.xml', 65 'ARB_shader_storage_buffer_object.xml', 66 'ARB_sparse_buffer.xml', 67 'ARB_sparse_texture.xml', 68 'ARB_spirv_extensions.xml', 69 'ARB_sync.xml', 70 'ARB_tessellation_shader.xml', 71 'ARB_texture_barrier.xml', 72 'ARB_texture_buffer_object.xml', 73 'ARB_texture_buffer_range.xml', 74 'ARB_texture_compression_rgtc.xml', 75 'ARB_texture_cube_map_array.xml', 76 'ARB_texture_float.xml', 77 'ARB_texture_gather.xml', 78 'ARB_texture_multisample.xml', 79 'ARB_texture_rgb10_a2ui.xml', 80 'ARB_texture_rg.xml', 81 'ARB_texture_storage_multisample.xml', 82 'ARB_texture_storage.xml', 83 'ARB_texture_view.xml', 84 'ARB_uniform_buffer_object.xml', 85 'ARB_vertex_array_object.xml', 86 'ARB_vertex_attrib_64bit.xml', 87 'ARB_vertex_attrib_binding.xml', 88 'ARB_viewport_array.xml', 89 'AMD_depth_clamp_separate.xml', 90 'AMD_draw_buffers_blend.xml', 91 'AMD_gpu_shader_int64.xml', 92 'AMD_performance_monitor.xml', 93 'ARB_vertex_type_2_10_10_10_rev.xml', 94 'APPLE_object_purgeable.xml', 95 'APPLE_vertex_array_object.xml', 96 'EXT_direct_state_access.xml', 97 'EXT_draw_buffers2.xml', 98 'EXT_external_objects.xml', 99 'EXT_external_objects_fd.xml', 100 'EXT_external_objects_win32.xml', 101 'EXT_framebuffer_object.xml', 102 'EXT_gpu_shader4.xml', 103 'EXT_multisampled_render_to_texture.xml', 104 'EXT_packed_depth_stencil.xml', 105 'EXT_provoking_vertex.xml', 106 'EXT_separate_shader_objects.xml', 107 'EXT_shader_image_load_store.xml', 108 'EXT_texture_array.xml', 109 'EXT_texture_integer.xml', 110 'EXT_texture_storage.xml', 111 'EXT_texture_storage_compression.xml', 112 'EXT_transform_feedback.xml', 113 'EXT_vertex_attrib_64bit.xml', 114 'EXT_window_rectangles.xml', 115 'GREMEDY_string_marker.xml', 116 'INTEL_performance_query.xml', 117 'KHR_debug.xml', 118 'KHR_context_flush_control.xml', 119 'KHR_robustness.xml', 120 'KHR_robustness_es.xml', 121 'KHR_shader_subgroup.xml', 122 'KHR_texture_compression_astc.xml', 123 'NV_alpha_to_coverage_dither_control.xml', 124 'NV_copy_image.xml', 125 'NV_conditional_render.xml', 126 'NV_primitive_restart.xml', 127 'NV_texture_barrier.xml', 128 'NV_vdpau_interop.xml', 129 'NV_viewport_swizzle.xml', 130 'OES_EGL_image.xml', 131 'OES_fixed_point.xml', 132 'OES_single_precision.xml', 133 'OES_texture_compression_astc.xml', 134 'OVR_multiview.xml', 135 'GL3x.xml', 136 'GL4x.xml', 137) 138 139glapi_gen_depends = files( 140 'gl_XML.py', 141 'glX_XML.py', 142 'license.py', 143 'static_data.py', 144 'typeexpr.py', 145) + api_xml_files 146 147glx_gen_depends = files( 148 'glX_API.xml', 149 'glX_XML.py', 150 'glX_proto_common.py', 151) + api_xml_files 152 153glapi_mapi_tmp_h = custom_target( 154 'glapi_mapi_tmp.h', 155 input : [mapi_abi_py, 'gl_and_es_API.xml'], 156 output : 'glapi_mapi_tmp.h', 157 command : [prog_python, '@INPUT0@', '--printer', 'glapi', '@INPUT1@'], 158 depend_files : glapi_gen_depends, 159 capture : true, 160) 161 162glprocs_h = custom_target( 163 'glprocs.h', 164 input : ['gl_procs.py', 'gl_and_es_API.xml'], 165 output : 'glprocs.h', 166 command : [prog_python, '@INPUT0@', '-c', '-f', '@INPUT1@'], 167 depend_files : glapi_gen_depends, 168 capture : true, 169) 170 171glapitemp_h = custom_target( 172 'glapitemp.h', 173 input : ['gl_apitemp.py', 'gl_and_es_API.xml'], 174 output : 'glapitemp.h', 175 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 176 depend_files : glapi_gen_depends, 177 capture : true, 178) 179 180glapitable_h = custom_target( 181 'glapitable.h', 182 input : ['gl_table.py', 'gl_and_es_API.xml'], 183 output : 'glapitable.h', 184 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 185 depend_files : glapi_gen_depends, 186 capture : true, 187) 188 189glapi_gentable_c = custom_target( 190 'glapi_gentable.c', 191 input : ['gl_gentable.py', 'gl_and_es_API.xml'], 192 output : 'glapi_gentable.c', 193 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 194 depend_files : glapi_gen_depends, 195 capture : true, 196) 197 198main_enums_c = custom_target( 199 'enums.c', 200 input : ['gl_enums.py', files('../registry/gl.xml')], 201 output : 'enums.c', 202 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 203 capture : true, 204) 205 206main_api_exec_c = custom_target( 207 'api_exec_init.c', 208 input : ['api_exec_init.py', 'gl_and_es_API.xml'], 209 output : 'api_exec_init.c', 210 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 211 depend_files : files('apiexec.py') + glapi_gen_depends, 212 capture : true, 213) 214 215main_api_exec_decl_h = custom_target( 216 'api_exec_decl.h', 217 input : ['api_exec_decl_h.py', 'gl_and_es_API.xml'], 218 output : 'api_exec_decl.h', 219 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 220 depend_files : files('apiexec.py') + glapi_gen_depends, 221 capture : true, 222) 223 224main_api_save_init_h = custom_target( 225 'api_save_init.h', 226 input : ['api_save_init_h.py', 'gl_and_es_API.xml'], 227 output : 'api_save_init.h', 228 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 229 depend_files : files('apiexec.py') + glapi_gen_depends, 230 capture : true, 231) 232 233main_api_save_h = custom_target( 234 'api_save.h', 235 input : ['api_save_h.py', 'gl_and_es_API.xml'], 236 output : 'api_save.h', 237 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 238 depend_files : files('apiexec.py') + glapi_gen_depends, 239 capture : true, 240) 241 242main_api_beginend_init_h = custom_target( 243 'api_beginend_init.h', 244 input : ['api_beginend_init_h.py', 'gl_and_es_API.xml'], 245 output : 'api_beginend_init.h', 246 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 247 depend_files : files('apiexec.py') + glapi_gen_depends, 248 capture : true, 249) 250 251main_api_hw_select_init_h = custom_target( 252 'api_hw_select_init.h', 253 input : ['api_hw_select_init_h.py', 'gl_API.xml'], 254 output : 'api_hw_select_init.h', 255 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 256 depend_files : files('apiexec.py') + glapi_gen_depends, 257 capture : true, 258) 259 260main_unmarshal_table_c = custom_target( 261 'unmarshal_table.c', 262 input : ['gl_unmarshal_table.py', 'gl_and_es_API.xml'], 263 output : 'unmarshal_table.c', 264 command : [prog_python, '@INPUT0@', '@INPUT1@', sizeof_pointer], 265 depend_files : files('marshal_XML.py') + glapi_gen_depends, 266 capture : true, 267) 268 269main_marshal_generated_c = [] 270foreach x : ['0', '1', '2', '3', '4', '5', '6', '7'] 271 main_marshal_generated_c += custom_target( 272 'marshal_generated' + x + '.c', 273 input : ['gl_marshal.py', 'gl_and_es_API.xml'], 274 output : 'marshal_generated' + x + '.c', 275 command : [prog_python, '@INPUT0@', '@INPUT1@', x, '8', sizeof_pointer], 276 depend_files : files('marshal_XML.py') + glapi_gen_depends, 277 capture : true, 278 ) 279endforeach 280 281glx_generated = [] 282 283foreach x : [['indirect.c', 'proto'], ['indirect.h', 'init_h'], ['indirect_init.c', 'init_c']] 284 glx_generated += custom_target( 285 x[0], 286 input : ['glX_proto_send.py', 'gl_API.xml'], 287 output : x[0], 288 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@', '-m', x[1]], 289 depend_files : glx_gen_depends, 290 capture : true, 291 ) 292endforeach 293 294foreach x : [['indirect_size.h', ['-m', 'size_h', '--header-tag', '_INDIRECT_SIZE_H_']], 295 ['indirect_size.c', ['-m', 'size_c']]] 296 glx_generated += custom_target( 297 x[0], 298 input : ['glX_proto_size.py', 'gl_API.xml'], 299 output : x[0], 300 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@', '--only-set', x[1]], 301 depend_files : glx_gen_depends, 302 capture : true, 303 ) 304endforeach 305glx_indirect_size_h = glx_generated[3] 306 307glapi_x86_s = custom_target( 308 'glapi_x86.S', 309 input : ['gl_x86_asm.py', gl_and_es_api_files], 310 output : 'glapi_x86.S', 311 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 312 depend_files : glapi_gen_depends, 313 capture : true, 314) 315 316glapi_x86_64_s = custom_target( 317 'glapi_x86-64.S', 318 input : ['gl_x86-64_asm.py', gl_and_es_api_files], 319 output : 'glapi_x86-64.S', 320 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 321 depend_files : glapi_gen_depends, 322 capture : true, 323) 324 325glapi_sparc_s = custom_target( 326 'glapi_sparc.S', 327 input : ['gl_SPARC_asm.py', gl_and_es_api_files], 328 output : 'glapi_sparc.S', 329 command : [prog_python, '@INPUT0@', '-f', '@INPUT1@'], 330 depend_files : glapi_gen_depends, 331 capture : true, 332) 333